Compare commits

...

5 Commits

Author SHA1 Message Date
semantic-release-bot
4fc8e752a6 chore(release): 4.33.1 [skip ci]
## [4.33.1](https://github.com/bmadcode/BMAD-METHOD/compare/v4.33.0...v4.33.1) (2025-07-29)

### Bug Fixes

* dev agent yaml syntax for develop-story command ([#362](https://github.com/bmadcode/BMAD-METHOD/issues/362)) ([bcb3728](bcb3728f88))
2025-07-29 02:05:28 +00:00
Duane Cilliers
bcb3728f88 fix: dev agent yaml syntax for develop-story command (#362) 2025-07-28 21:05:00 -05:00
semantic-release-bot
f7963cbaa9 chore(release): 4.33.0 [skip ci]
# [4.33.0](https://github.com/bmadcode/BMAD-METHOD/compare/v4.32.0...v4.33.0) (2025-07-28)

### Features

* version bump ([e9dd4e7](e9dd4e7beb))
2025-07-28 04:54:52 +00:00
Brian Madison
e9dd4e7beb feat: version bump 2025-07-27 23:54:23 -05:00
manjaroblack
a80ea150f2 eat: enhance flattener tool with improved CLI integration and custom directory support (#372)
* feat(cli): move flatten command to installer and update docs

Refactor the flatten command from tools/cli.js to tools/installer/bin/bmad.js for better integration. Add support for custom input directory and improve error handling. Update documentation in README.md and working-in-the-brownfield.md to reflect new command usage. Also clean up package-lock.json and add it to .gitignore.

* chore: update gitignore and add package-lock.json for installer tool

Remove package-lock.json from root gitignore since it's now needed for the installer tool
Add package-lock.json with dependencies for the bmad-method installer

---------

Co-authored-by: Devin Stagner <devin@blackstag.family>
2025-07-27 18:02:08 -05:00
16 changed files with 1280 additions and 1662 deletions

View File

@@ -1,15 +1,26 @@
# [4.32.0](https://github.com/bmadcode/BMAD-METHOD/compare/v4.31.0...v4.32.0) (2025-07-27)
## [4.33.1](https://github.com/bmadcode/BMAD-METHOD/compare/v4.33.0...v4.33.1) (2025-07-29)
### Bug Fixes
* Add package-lock.json to fix GitHub Actions dependency resolution ([cce7a75](https://github.com/bmadcode/BMAD-METHOD/commit/cce7a758a632053e26d143b678eb7963599b432d))
* GHA fix ([62ccccd](https://github.com/bmadcode/BMAD-METHOD/commit/62ccccdc9e85f8621f63f99bd1ce0d14abe09783))
* dev agent yaml syntax for develop-story command ([#362](https://github.com/bmadcode/BMAD-METHOD/issues/362)) ([bcb3728](https://github.com/bmadcode/BMAD-METHOD/commit/bcb3728f8868c0f83bca3d61fbd7e15c4e114526))
# [4.33.0](https://github.com/bmadcode/BMAD-METHOD/compare/v4.32.0...v4.33.0) (2025-07-28)
### Features
* Overhaul and Enhance 2D Unity Game Dev Expansion Pack ([#350](https://github.com/bmadcode/BMAD-METHOD/issues/350)) ([a7038d4](https://github.com/bmadcode/BMAD-METHOD/commit/a7038d43d18246f6aef175aa89ba059b7c94f61f))
- version bump ([e9dd4e7](https://github.com/bmadcode/BMAD-METHOD/commit/e9dd4e7beb46d0c80df0cd65ae02d1867a56d7c1))
# [4.32.0](https://github.com/bmadcode/BMAD-METHOD/compare/v4.31.0...v4.32.0) (2025-07-27)
### Bug Fixes
- Add package-lock.json to fix GitHub Actions dependency resolution ([cce7a75](https://github.com/bmadcode/BMAD-METHOD/commit/cce7a758a632053e26d143b678eb7963599b432d))
- GHA fix ([62ccccd](https://github.com/bmadcode/BMAD-METHOD/commit/62ccccdc9e85f8621f63f99bd1ce0d14abe09783))
### Features
- Overhaul and Enhance 2D Unity Game Dev Expansion Pack ([#350](https://github.com/bmadcode/BMAD-METHOD/issues/350)) ([a7038d4](https://github.com/bmadcode/BMAD-METHOD/commit/a7038d43d18246f6aef175aa89ba059b7c94f61f))
# [4.31.0](https://github.com/bmadcode/BMAD-METHOD/compare/v4.30.4...v4.31.0) (2025-07-20)

View File

@@ -126,11 +126,18 @@ The BMad-Method includes a powerful codebase flattener tool designed to prepare
```bash
# Basic usage - creates flattened-codebase.xml in current directory
npm run flatten
npx bmad-method flatten
# Specify custom input directory
npx bmad-method flatten --input /path/to/source/directory
npx bmad-method flatten -i /path/to/source/directory
# Specify custom output file
npm run flatten -- --output my-project.xml
npm run flatten -- -o /path/to/output/codebase.xml
npx bmad-method flatten --output my-project.xml
npx bmad-method flatten -o /path/to/output/codebase.xml
# Combine input and output options
npx bmad-method flatten --input /path/to/source --output /path/to/output/codebase.xml
```
### Example Output

View File

@@ -57,15 +57,15 @@ commands:
- run-tests: Execute linting and tests
- explain: teach me what and why you did whatever you just did in detail so I can learn. Explain to me as if you were training a junior engineer.
- exit: Say goodbye as the Developer, and then abandon inhabiting this persona
develop-story:
order-of-execution: "Read (first or next) task→Implement Task and its subtasks→Write tests→Execute validations→Only if ALL pass, then update the task checkbox with [x]→Update story section File List to ensure it lists and new or modified or deleted source file→repeat order-of-execution until complete"
story-file-updates-ONLY:
- CRITICAL: ONLY UPDATE THE STORY FILE WITH UPDATES TO SECTIONS INDICATED BELOW. DO NOT MODIFY ANY OTHER SECTIONS.
- CRITICAL: You are ONLY authorized to edit these specific sections of story files - Tasks / Subtasks Checkboxes, Dev Agent Record section and all its subsections, Agent Model Used, Debug Log References, Completion Notes List, File List, Change Log, Status
- CRITICAL: DO NOT modify Status, Story, Acceptance Criteria, Dev Notes, Testing sections, or any other sections not listed above
blocking: "HALT for: Unapproved deps needed, confirm with user | Ambiguous after story check | 3 failures attempting to implement or fix something repeatedly | Missing config | Failing regression"
ready-for-review: "Code matches requirements + All validations pass + Follows standards + File List complete"
completion: "All Tasks and Subtasks marked [x] and have tests→Validations and full regression passes (DON'T BE LAZY, EXECUTE ALL TESTS and CONFIRM)→Ensure File List is Complete→run the task execute-checklist for the checklist story-dod-checklist→set story status: 'Ready for Review'→HALT"
- develop-story:
- order-of-execution: "Read (first or next) task→Implement Task and its subtasks→Write tests→Execute validations→Only if ALL pass, then update the task checkbox with [x]→Update story section File List to ensure it lists and new or modified or deleted source file→repeat order-of-execution until complete"
- story-file-updates-ONLY:
- CRITICAL: ONLY UPDATE THE STORY FILE WITH UPDATES TO SECTIONS INDICATED BELOW. DO NOT MODIFY ANY OTHER SECTIONS.
- CRITICAL: You are ONLY authorized to edit these specific sections of story files - Tasks / Subtasks Checkboxes, Dev Agent Record section and all its subsections, Agent Model Used, Debug Log References, Completion Notes List, File List, Change Log, Status
- CRITICAL: DO NOT modify Status, Story, Acceptance Criteria, Dev Notes, Testing sections, or any other sections not listed above
- blocking: "HALT for: Unapproved deps needed, confirm with user | Ambiguous after story check | 3 failures attempting to implement or fix something repeatedly | Missing config | Failing regression"
- ready-for-review: "Code matches requirements + All validations pass + Follows standards + File List complete"
- completion: "All Tasks and Subtasks marked [x] and have tests→Validations and full regression passes (DON'T BE LAZY, EXECUTE ALL TESTS and CONFIRM)→Ensure File List is Complete→run the task execute-checklist for the checklist story-dod-checklist→set story status: 'Ready for Review'→HALT"
dependencies:
tasks:

View File

@@ -5,7 +5,7 @@
> Gemini Web's 1M+ token context window or Gemini CLI (when it's working) can analyze your ENTIRE codebase, or critical sections of it, all at once (obviously within reason):
>
> - Upload via GitHub URL or use gemini cli in the project folder
> - If working in the web: use the flattener-tool to flatten your project into a single file, then upload that file to your web agent.
> - If working in the web: use `npx bmad-method flatten` to flatten your project into a single file, then upload that file to your web agent.
## What is Brownfield Development?
@@ -27,7 +27,7 @@ If you have just completed an MVP with BMad, and you want to continue with post-
## The Complete Brownfield Workflow
1. **Follow the [<ins>User Guide - Installation</ins>](user-guide.md#installation) steps to setup your agent in the web.**
2. **Generate a 'flattened' single file of your entire codebase** run: ```npm run flatten```
2. **Generate a 'flattened' single file of your entire codebase** run: ```npx bmad-method flatten```
### Choose Your Approach

View File

@@ -1,5 +1,5 @@
name: bmad-2d-phaser-game-dev
version: 1.11.0
version: 1.12.0
short-title: Phaser 3 2D Game Dev Pack
description: >-
2D Game Development expansion pack for BMad Method - Phaser 3 & TypeScript

View File

@@ -1,5 +1,5 @@
name: bmad-2d-unity-game-dev
version: 1.4.4
version: 1.5.0
short-title: Unity C# 2D Game Dev Pack
description: 2D Game Development expansion pack for BMad Method - Unity & C# focused
author: pbean (PinkyD)

View File

@@ -1,5 +1,5 @@
name: bmad-infrastructure-devops
version: 1.10.0
version: 1.11.0
short-title: Infrastructure DevOps Pack
description: >-
This expansion pack extends BMad Method with comprehensive infrastructure and

2452
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,81 +1,81 @@
{
"name": "bmad-method",
"version": "4.32.0",
"description": "Breakthrough Method of Agile AI-driven Development",
"main": "tools/cli.js",
"bin": {
"bmad": "tools/bmad-npx-wrapper.js",
"bmad-method": "tools/bmad-npx-wrapper.js"
},
"scripts": {
"build": "node tools/cli.js build",
"build:agents": "node tools/cli.js build --agents-only",
"build:teams": "node tools/cli.js build --teams-only",
"list:agents": "node tools/cli.js list:agents",
"validate": "node tools/cli.js validate",
"flatten": "node tools/flattener/main.js",
"install:bmad": "node tools/installer/bin/bmad.js install",
"format": "prettier --write \"**/*.md\"",
"version:patch": "node tools/version-bump.js patch",
"version:minor": "node tools/version-bump.js minor",
"version:major": "node tools/version-bump.js major",
"version:expansion": "node tools/bump-expansion-version.js",
"version:expansion:set": "node tools/update-expansion-version.js",
"version:all": "node tools/bump-all-versions.js",
"version:all:minor": "node tools/bump-all-versions.js minor",
"version:all:major": "node tools/bump-all-versions.js major",
"version:all:patch": "node tools/bump-all-versions.js patch",
"version:expansion:all": "node tools/bump-all-versions.js",
"version:expansion:all:minor": "node tools/bump-all-versions.js minor",
"version:expansion:all:major": "node tools/bump-all-versions.js major",
"version:expansion:all:patch": "node tools/bump-all-versions.js patch",
"release": "semantic-release",
"release:test": "semantic-release --dry-run --no-ci || echo 'Config test complete - authentication errors are expected locally'",
"prepare": "husky"
},
"dependencies": {
"@kayvan/markdown-tree-parser": "^1.5.0",
"bmad-method": "^4.30.3",
"chalk": "^4.1.2",
"commander": "^14.0.0",
"fs-extra": "^11.3.0",
"glob": "^11.0.3",
"inquirer": "^8.2.6",
"js-yaml": "^4.1.0",
"minimatch": "^10.0.3",
"ora": "^5.4.1"
},
"keywords": [
"agile",
"ai",
"orchestrator",
"development",
"methodology",
"agents",
"bmad"
],
"author": "Brian (BMad) Madison",
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/bmadcode/BMAD-METHOD.git"
},
"engines": {
"node": ">=20.0.0"
},
"devDependencies": {
"@semantic-release/changelog": "^6.0.3",
"@semantic-release/git": "^10.0.1",
"husky": "^9.1.7",
"jest": "^30.0.4",
"lint-staged": "^16.1.1",
"prettier": "^3.5.3",
"semantic-release": "^22.0.0",
"yaml-lint": "^1.7.0"
},
"lint-staged": {
"**/*.md": [
"prettier --write"
]
}
"name": "bmad-method",
"version": "4.33.1",
"description": "Breakthrough Method of Agile AI-driven Development",
"main": "tools/cli.js",
"bin": {
"bmad": "tools/bmad-npx-wrapper.js",
"bmad-method": "tools/bmad-npx-wrapper.js"
},
"scripts": {
"build": "node tools/cli.js build",
"build:agents": "node tools/cli.js build --agents-only",
"build:teams": "node tools/cli.js build --teams-only",
"list:agents": "node tools/cli.js list:agents",
"validate": "node tools/cli.js validate",
"flatten": "node tools/flattener/main.js",
"install:bmad": "node tools/installer/bin/bmad.js install",
"format": "prettier --write \"**/*.md\"",
"version:patch": "node tools/version-bump.js patch",
"version:minor": "node tools/version-bump.js minor",
"version:major": "node tools/version-bump.js major",
"version:expansion": "node tools/bump-expansion-version.js",
"version:expansion:set": "node tools/update-expansion-version.js",
"version:all": "node tools/bump-all-versions.js",
"version:all:minor": "node tools/bump-all-versions.js minor",
"version:all:major": "node tools/bump-all-versions.js major",
"version:all:patch": "node tools/bump-all-versions.js patch",
"version:expansion:all": "node tools/bump-all-versions.js",
"version:expansion:all:minor": "node tools/bump-all-versions.js minor",
"version:expansion:all:major": "node tools/bump-all-versions.js major",
"version:expansion:all:patch": "node tools/bump-all-versions.js patch",
"release": "semantic-release",
"release:test": "semantic-release --dry-run --no-ci || echo 'Config test complete - authentication errors are expected locally'",
"prepare": "husky"
},
"dependencies": {
"@kayvan/markdown-tree-parser": "^1.5.0",
"bmad-method": "^4.30.3",
"chalk": "^4.1.2",
"commander": "^14.0.0",
"fs-extra": "^11.3.0",
"glob": "^11.0.3",
"inquirer": "^8.2.6",
"js-yaml": "^4.1.0",
"minimatch": "^10.0.3",
"ora": "^5.4.1"
},
"keywords": [
"agile",
"ai",
"orchestrator",
"development",
"methodology",
"agents",
"bmad"
],
"author": "Brian (BMad) Madison",
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/bmadcode/BMAD-METHOD.git"
},
"engines": {
"node": ">=20.0.0"
},
"devDependencies": {
"@semantic-release/changelog": "^6.0.3",
"@semantic-release/git": "^10.0.1",
"husky": "^9.1.7",
"jest": "^30.0.4",
"lint-staged": "^16.1.1",
"prettier": "^3.5.3",
"semantic-release": "^22.0.0",
"yaml-lint": "^1.7.0"
},
"lint-staged": {
"**/*.md": [
"prettier --write"
]
}
}

View File

@@ -14,28 +14,26 @@ const isNpxExecution = __dirname.includes('_npx') || __dirname.includes('.npm');
// If running via npx, we need to handle things differently
if (isNpxExecution) {
// The actual bmad.js is in installer/bin/ (relative to tools directory)
const args = process.argv.slice(2);
// Use the installer for all commands
const bmadScriptPath = path.join(__dirname, 'installer', 'bin', 'bmad.js');
// Verify the file exists
if (!fs.existsSync(bmadScriptPath)) {
console.error('Error: Could not find bmad.js at', bmadScriptPath);
console.error('Current directory:', __dirname);
process.exit(1);
}
// Execute with proper working directory
try {
execSync(`node "${bmadScriptPath}" ${process.argv.slice(2).join(' ')}`, {
execSync(`node "${bmadScriptPath}" ${args.join(' ')}`, {
stdio: 'inherit',
cwd: path.dirname(__dirname)
});
} catch (error) {
// execSync will throw if the command exits with non-zero
// But the stdio is inherited, so the error is already displayed
process.exit(error.status || 1);
}
} else {
// Local execution - just require the installer directly
// Local execution - use installer for all commands
require('./installer/bin/bmad.js');
}

View File

@@ -149,13 +149,4 @@ program
});
});
program
.command('flatten')
.description('Flatten codebase to XML format')
.option('-o, --output <path>', 'Output file path', 'flattened-codebase.xml')
.action(async (options) => {
const flattener = require('./flattener/main');
await flattener.parseAsync(['flatten', '--output', options.output], { from: 'user' });
});
program.parse();

View File

@@ -496,24 +496,35 @@ program
.name('bmad-flatten')
.description('BMad-Method codebase flattener tool')
.version('1.0.0')
.option('-i, --input <path>', 'Input directory to flatten', process.cwd())
.option('-o, --output <path>', 'Output file path', 'flattened-codebase.xml')
.action(async (options) => {
console.log(`Flattening codebase to: ${options.output}`);
const inputDir = path.resolve(options.input);
const outputPath = path.resolve(options.output);
console.log(`Flattening codebase from: ${inputDir}`);
console.log(`Output file: ${outputPath}`);
try {
// Verify input directory exists
if (!await fs.pathExists(inputDir)) {
console.error(`❌ Error: Input directory does not exist: ${inputDir}`);
process.exit(1);
}
// Import ora dynamically
const { default: ora } = await import('ora');
// Start file discovery with spinner
const discoverySpinner = ora('🔍 Discovering files...').start();
const files = await discoverFiles(process.cwd());
const filteredFiles = await filterFiles(files, process.cwd());
const files = await discoverFiles(inputDir);
const filteredFiles = await filterFiles(files, inputDir);
discoverySpinner.succeed(`📁 Found ${filteredFiles.length} files to include`);
// Process files with progress tracking
console.log('Reading file contents');
const processingSpinner = ora('📄 Processing files...').start();
const aggregatedContent = await aggregateFileContents(filteredFiles, process.cwd(), processingSpinner);
const aggregatedContent = await aggregateFileContents(filteredFiles, inputDir, processingSpinner);
processingSpinner.succeed(`✅ Processed ${aggregatedContent.processedFiles}/${filteredFiles.length} files`);
// Log processing results for test validation
@@ -528,17 +539,17 @@ program
// Generate XML output using streaming
const xmlSpinner = ora('🔧 Generating XML output...').start();
await generateXMLOutput(aggregatedContent, options.output);
await generateXMLOutput(aggregatedContent, outputPath);
xmlSpinner.succeed('📝 XML generation completed');
// Calculate and display statistics
const outputStats = await fs.stat(options.output);
const outputStats = await fs.stat(outputPath);
const stats = calculateStatistics(aggregatedContent, outputStats.size);
// Display completion summary
console.log('\n📊 Completion Summary:');
console.log(`✅ Successfully processed ${filteredFiles.length} files into ${options.output}`);
console.log(`📁 Output file: ${path.resolve(options.output)}`);
console.log(`✅ Successfully processed ${filteredFiles.length} files into ${path.basename(outputPath)}`);
console.log(`📁 Output file: ${outputPath}`);
console.log(`📏 Total source size: ${stats.totalSize}`);
console.log(`📄 Generated XML size: ${stats.xmlSize}`);
console.log(`📝 Total lines of code: ${stats.totalLines.toLocaleString()}`);

View File

@@ -110,6 +110,20 @@ program
}
});
program
.command('flatten')
.description('Flatten codebase to XML format')
.option('-i, --input <path>', 'Input directory to flatten', process.cwd())
.option('-o, --output <path>', 'Output file path', 'flattened-codebase.xml')
.action(async (options) => {
try {
await installer.flatten(options);
} catch (error) {
console.error(chalk.red('Flatten failed:'), error.message);
process.exit(1);
}
});
async function promptInstallation() {
// Display ASCII logo

View File

@@ -497,7 +497,7 @@ class Installer {
case "reinstall":
// For reinstall, don't check for modifications - just overwrite
return await this.performReinstall(config, installDir, spinner);
case "expansions":
case "expansions": {
// Ask which expansion packs to install
const availableExpansionPacks = await resourceLocator.getExpansionPacks();
@@ -534,6 +534,7 @@ class Installer {
console.log(chalk.green(` - ${packId} → .${packId}/`));
}
return;
}
case "cancel":
console.log("Installation cancelled.");
return;
@@ -865,6 +866,8 @@ class Installer {
}).join(", ");
console.log(chalk.green(`✓ IDE rules and configurations set up for: ${ideNames}`));
}
// Information about web bundles
if (!config.includeWebBundles) {
@@ -1428,7 +1431,7 @@ class Installer {
return config.selectedWebBundleTeams ?
`teams: ${config.selectedWebBundleTeams.join(', ')}` :
'selected teams';
case 'custom':
case 'custom': {
const parts = [];
if (config.selectedWebBundleTeams && config.selectedWebBundleTeams.length > 0) {
parts.push(`teams: ${config.selectedWebBundleTeams.join(', ')}`);
@@ -1437,6 +1440,7 @@ class Installer {
parts.push('individual agents');
}
return parts.length > 0 ? parts.join(' + ') : 'custom selection';
}
default:
return 'selected bundles';
}
@@ -1741,6 +1745,28 @@ class Installer {
return null;
}
async flatten(options) {
const { spawn } = require('child_process');
const flattenerPath = path.join(__dirname, '..', '..', 'flattener', 'main.js');
const args = [];
if (options.input) {
args.push('--input', options.input);
}
if (options.output) {
args.push('--output', options.output);
}
const child = spawn('node', [flattenerPath, ...args], {
stdio: 'inherit',
cwd: process.cwd()
});
child.on('exit', (code) => {
process.exit(code);
});
}
}
module.exports = new Installer();

View File

@@ -1,12 +1,12 @@
{
"name": "bmad-method",
"version": "4.3.0",
"version": "4.32.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "bmad-method",
"version": "4.3.0",
"version": "4.32.0",
"license": "MIT",
"dependencies": {
"chalk": "^5.4.1",
@@ -25,14 +25,14 @@
}
},
"node_modules/@inquirer/checkbox": {
"version": "4.1.8",
"resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.1.8.tgz",
"integrity": "sha512-d/QAsnwuHX2OPolxvYcgSj7A9DO9H6gVOy2DvBTx+P2LH2iRTo/RSGV3iwCzW024nP9hw98KIuDmdyhZQj1UQg==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.2.0.tgz",
"integrity": "sha512-fdSw07FLJEU5vbpOPzXo5c6xmMGDzbZE2+niuDHX5N6mc6V0Ebso/q3xiHra4D73+PMsC8MJmcaZKuAAoaQsSA==",
"license": "MIT",
"dependencies": {
"@inquirer/core": "^10.1.13",
"@inquirer/figures": "^1.0.12",
"@inquirer/type": "^3.0.7",
"@inquirer/core": "^10.1.15",
"@inquirer/figures": "^1.0.13",
"@inquirer/type": "^3.0.8",
"ansi-escapes": "^4.3.2",
"yoctocolors-cjs": "^2.1.2"
},
@@ -49,13 +49,13 @@
}
},
"node_modules/@inquirer/confirm": {
"version": "5.1.12",
"resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.12.tgz",
"integrity": "sha512-dpq+ielV9/bqgXRUbNH//KsY6WEw9DrGPmipkpmgC1Y46cwuBTNx7PXFWTjc3MQ+urcc0QxoVHcMI0FW4Ok0hg==",
"version": "5.1.14",
"resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.14.tgz",
"integrity": "sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q==",
"license": "MIT",
"dependencies": {
"@inquirer/core": "^10.1.13",
"@inquirer/type": "^3.0.7"
"@inquirer/core": "^10.1.15",
"@inquirer/type": "^3.0.8"
},
"engines": {
"node": ">=18"
@@ -70,13 +70,13 @@
}
},
"node_modules/@inquirer/core": {
"version": "10.1.13",
"resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.13.tgz",
"integrity": "sha512-1viSxebkYN2nJULlzCxES6G9/stgHSepZ9LqqfdIGPHj5OHhiBUXVS0a6R0bEC2A+VL4D9w6QB66ebCr6HGllA==",
"version": "10.1.15",
"resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.15.tgz",
"integrity": "sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA==",
"license": "MIT",
"dependencies": {
"@inquirer/figures": "^1.0.12",
"@inquirer/type": "^3.0.7",
"@inquirer/figures": "^1.0.13",
"@inquirer/type": "^3.0.8",
"ansi-escapes": "^4.3.2",
"cli-width": "^4.1.0",
"mute-stream": "^2.0.0",
@@ -97,13 +97,13 @@
}
},
"node_modules/@inquirer/editor": {
"version": "4.2.13",
"resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.13.tgz",
"integrity": "sha512-WbicD9SUQt/K8O5Vyk9iC2ojq5RHoCLK6itpp2fHsWe44VxxcA9z3GTWlvjSTGmMQpZr+lbVmrxdHcumJoLbMA==",
"version": "4.2.15",
"resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.15.tgz",
"integrity": "sha512-wst31XT8DnGOSS4nNJDIklGKnf+8shuauVrWzgKegWUe28zfCftcWZ2vktGdzJgcylWSS2SrDnYUb6alZcwnCQ==",
"license": "MIT",
"dependencies": {
"@inquirer/core": "^10.1.13",
"@inquirer/type": "^3.0.7",
"@inquirer/core": "^10.1.15",
"@inquirer/type": "^3.0.8",
"external-editor": "^3.1.0"
},
"engines": {
@@ -119,13 +119,13 @@
}
},
"node_modules/@inquirer/expand": {
"version": "4.0.15",
"resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.15.tgz",
"integrity": "sha512-4Y+pbr/U9Qcvf+N/goHzPEXiHH8680lM3Dr3Y9h9FFw4gHS+zVpbj8LfbKWIb/jayIB4aSO4pWiBTrBYWkvi5A==",
"version": "4.0.17",
"resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.17.tgz",
"integrity": "sha512-PSqy9VmJx/VbE3CT453yOfNa+PykpKg/0SYP7odez1/NWBGuDXgPhp4AeGYYKjhLn5lUUavVS/JbeYMPdH50Mw==",
"license": "MIT",
"dependencies": {
"@inquirer/core": "^10.1.13",
"@inquirer/type": "^3.0.7",
"@inquirer/core": "^10.1.15",
"@inquirer/type": "^3.0.8",
"yoctocolors-cjs": "^2.1.2"
},
"engines": {
@@ -141,22 +141,22 @@
}
},
"node_modules/@inquirer/figures": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.12.tgz",
"integrity": "sha512-MJttijd8rMFcKJC8NYmprWr6hD3r9Gd9qUC0XwPNwoEPWSMVJwA2MlXxF+nhZZNMY+HXsWa+o7KY2emWYIn0jQ==",
"version": "1.0.13",
"resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.13.tgz",
"integrity": "sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==",
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/@inquirer/input": {
"version": "4.1.12",
"resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.12.tgz",
"integrity": "sha512-xJ6PFZpDjC+tC1P8ImGprgcsrzQRsUh9aH3IZixm1lAZFK49UGHxM3ltFfuInN2kPYNfyoPRh+tU4ftsjPLKqQ==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.2.1.tgz",
"integrity": "sha512-tVC+O1rBl0lJpoUZv4xY+WGWY8V5b0zxU1XDsMsIHYregdh7bN5X5QnIONNBAl0K765FYlAfNHS2Bhn7SSOVow==",
"license": "MIT",
"dependencies": {
"@inquirer/core": "^10.1.13",
"@inquirer/type": "^3.0.7"
"@inquirer/core": "^10.1.15",
"@inquirer/type": "^3.0.8"
},
"engines": {
"node": ">=18"
@@ -171,13 +171,13 @@
}
},
"node_modules/@inquirer/number": {
"version": "3.0.15",
"resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.15.tgz",
"integrity": "sha512-xWg+iYfqdhRiM55MvqiTCleHzszpoigUpN5+t1OMcRkJrUrw7va3AzXaxvS+Ak7Gny0j2mFSTv2JJj8sMtbV2g==",
"version": "3.0.17",
"resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.17.tgz",
"integrity": "sha512-GcvGHkyIgfZgVnnimURdOueMk0CztycfC8NZTiIY9arIAkeOgt6zG57G+7vC59Jns3UX27LMkPKnKWAOF5xEYg==",
"license": "MIT",
"dependencies": {
"@inquirer/core": "^10.1.13",
"@inquirer/type": "^3.0.7"
"@inquirer/core": "^10.1.15",
"@inquirer/type": "^3.0.8"
},
"engines": {
"node": ">=18"
@@ -192,13 +192,13 @@
}
},
"node_modules/@inquirer/password": {
"version": "4.0.15",
"resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.15.tgz",
"integrity": "sha512-75CT2p43DGEnfGTaqFpbDC2p2EEMrq0S+IRrf9iJvYreMy5mAWj087+mdKyLHapUEPLjN10mNvABpGbk8Wdraw==",
"version": "4.0.17",
"resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.17.tgz",
"integrity": "sha512-DJolTnNeZ00E1+1TW+8614F7rOJJCM4y4BAGQ3Gq6kQIG+OJ4zr3GLjIjVVJCbKsk2jmkmv6v2kQuN/vriHdZA==",
"license": "MIT",
"dependencies": {
"@inquirer/core": "^10.1.13",
"@inquirer/type": "^3.0.7",
"@inquirer/core": "^10.1.15",
"@inquirer/type": "^3.0.8",
"ansi-escapes": "^4.3.2"
},
"engines": {
@@ -214,21 +214,21 @@
}
},
"node_modules/@inquirer/prompts": {
"version": "7.5.3",
"resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.5.3.tgz",
"integrity": "sha512-8YL0WiV7J86hVAxrh3fE5mDCzcTDe1670unmJRz6ArDgN+DBK1a0+rbnNWp4DUB5rPMwqD5ZP6YHl9KK1mbZRg==",
"version": "7.7.1",
"resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.7.1.tgz",
"integrity": "sha512-XDxPrEWeWUBy8scAXzXuFY45r/q49R0g72bUzgQXZ1DY/xEFX+ESDMkTQolcb5jRBzaNJX2W8XQl6krMNDTjaA==",
"license": "MIT",
"dependencies": {
"@inquirer/checkbox": "^4.1.8",
"@inquirer/confirm": "^5.1.12",
"@inquirer/editor": "^4.2.13",
"@inquirer/expand": "^4.0.15",
"@inquirer/input": "^4.1.12",
"@inquirer/number": "^3.0.15",
"@inquirer/password": "^4.0.15",
"@inquirer/rawlist": "^4.1.3",
"@inquirer/search": "^3.0.15",
"@inquirer/select": "^4.2.3"
"@inquirer/checkbox": "^4.2.0",
"@inquirer/confirm": "^5.1.14",
"@inquirer/editor": "^4.2.15",
"@inquirer/expand": "^4.0.17",
"@inquirer/input": "^4.2.1",
"@inquirer/number": "^3.0.17",
"@inquirer/password": "^4.0.17",
"@inquirer/rawlist": "^4.1.5",
"@inquirer/search": "^3.0.17",
"@inquirer/select": "^4.3.1"
},
"engines": {
"node": ">=18"
@@ -243,13 +243,13 @@
}
},
"node_modules/@inquirer/rawlist": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.3.tgz",
"integrity": "sha512-7XrV//6kwYumNDSsvJIPeAqa8+p7GJh7H5kRuxirct2cgOcSWwwNGoXDRgpNFbY/MG2vQ4ccIWCi8+IXXyFMZA==",
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.5.tgz",
"integrity": "sha512-R5qMyGJqtDdi4Ht521iAkNqyB6p2UPuZUbMifakg1sWtu24gc2Z8CJuw8rP081OckNDMgtDCuLe42Q2Kr3BolA==",
"license": "MIT",
"dependencies": {
"@inquirer/core": "^10.1.13",
"@inquirer/type": "^3.0.7",
"@inquirer/core": "^10.1.15",
"@inquirer/type": "^3.0.8",
"yoctocolors-cjs": "^2.1.2"
},
"engines": {
@@ -265,14 +265,14 @@
}
},
"node_modules/@inquirer/search": {
"version": "3.0.15",
"resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.15.tgz",
"integrity": "sha512-YBMwPxYBrADqyvP4nNItpwkBnGGglAvCLVW8u4pRmmvOsHUtCAUIMbUrLX5B3tFL1/WsLGdQ2HNzkqswMs5Uaw==",
"version": "3.0.17",
"resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.17.tgz",
"integrity": "sha512-CuBU4BAGFqRYors4TNCYzy9X3DpKtgIW4Boi0WNkm4Ei1hvY9acxKdBdyqzqBCEe4YxSdaQQsasJlFlUJNgojw==",
"license": "MIT",
"dependencies": {
"@inquirer/core": "^10.1.13",
"@inquirer/figures": "^1.0.12",
"@inquirer/type": "^3.0.7",
"@inquirer/core": "^10.1.15",
"@inquirer/figures": "^1.0.13",
"@inquirer/type": "^3.0.8",
"yoctocolors-cjs": "^2.1.2"
},
"engines": {
@@ -288,14 +288,14 @@
}
},
"node_modules/@inquirer/select": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.2.3.tgz",
"integrity": "sha512-OAGhXU0Cvh0PhLz9xTF/kx6g6x+sP+PcyTiLvCrewI99P3BBeexD+VbuwkNDvqGkk3y2h5ZiWLeRP7BFlhkUDg==",
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.3.1.tgz",
"integrity": "sha512-Gfl/5sqOF5vS/LIrSndFgOh7jgoe0UXEizDqahFRkq5aJBLegZ6WjuMh/hVEJwlFQjyLq1z9fRtvUMkb7jM1LA==",
"license": "MIT",
"dependencies": {
"@inquirer/core": "^10.1.13",
"@inquirer/figures": "^1.0.12",
"@inquirer/type": "^3.0.7",
"@inquirer/core": "^10.1.15",
"@inquirer/figures": "^1.0.13",
"@inquirer/type": "^3.0.8",
"ansi-escapes": "^4.3.2",
"yoctocolors-cjs": "^2.1.2"
},
@@ -312,9 +312,9 @@
}
},
"node_modules/@inquirer/type": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.7.tgz",
"integrity": "sha512-PfunHQcjwnju84L+ycmcMKB/pTPIngjUJvfnRhKY6FKPuYXlM4aQCb/nIdTFR6BEhMjFvngzvng/vBAJMZpLSA==",
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.8.tgz",
"integrity": "sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==",
"license": "MIT",
"engines": {
"node": ">=18"
@@ -522,17 +522,17 @@
}
},
"node_modules/inquirer": {
"version": "12.6.3",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.6.3.tgz",
"integrity": "sha512-eX9beYAjr1MqYsIjx1vAheXsRk1jbZRvHLcBu5nA9wX0rXR1IfCZLnVLp4Ym4mrhqmh7AuANwcdtgQ291fZDfQ==",
"version": "12.8.2",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.8.2.tgz",
"integrity": "sha512-oBDL9f4+cDambZVJdfJu2M5JQfvaug9lbo6fKDlFV40i8t3FGA1Db67ov5Hp5DInG4zmXhHWTSnlXBntnJ7GMA==",
"license": "MIT",
"dependencies": {
"@inquirer/core": "^10.1.13",
"@inquirer/prompts": "^7.5.3",
"@inquirer/type": "^3.0.7",
"@inquirer/core": "^10.1.15",
"@inquirer/prompts": "^7.7.1",
"@inquirer/type": "^3.0.8",
"ansi-escapes": "^4.3.2",
"mute-stream": "^2.0.0",
"run-async": "^3.0.0",
"run-async": "^4.0.5",
"rxjs": "^7.8.2"
},
"engines": {
@@ -717,9 +717,9 @@
}
},
"node_modules/run-async": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz",
"integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==",
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-4.0.5.tgz",
"integrity": "sha512-oN9GTgxUNDBumHTTDmQ8dep6VIJbgj9S3dPP+9XylVLIK4xB9XTXtKWROd5pnhdXR9k0EgO1JRcNh0T+Ny2FsA==",
"license": "MIT",
"engines": {
"node": ">=0.12.0"

View File

@@ -1,6 +1,6 @@
{
"name": "bmad-method",
"version": "4.32.0",
"version": "4.33.1",
"description": "BMad Method installer - AI-powered Agile development framework",
"main": "lib/installer.js",
"bin": {