mirror of
https://github.com/bmadcode/BMAD-METHOD.git
synced 2025-12-29 16:14:59 +00:00
Node 20, installer improvements, agent improvements and Expansion Pack for game dev (#232)
* feat: add expansion pack installation system with game dev and infrastructure expansion packs - Added expansion pack discovery and installation to BMAD installer - Supports interactive and CLI installation of expansion packs - Expansion pack files install to destination root (.bmad-core) - Added game development expansion pack (.bmad-2d-phaser-game-dev) - Game designer, developer, and scrum master agents - Game-specific templates, tasks, workflows, and guidelines - Specialized for Phaser 3 + TypeScript development - Added infrastructure devops expansion pack (.bmad-infrastructure-devops) - Platform engineering agent and infrastructure templates - Expansion pack agents automatically integrate with IDE rules - Added list:expansions command and --expansion-packs CLI option 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com> * alpha expansion packs and installer update to support installing expansion packs optionally * node20 --------- Co-authored-by: Brian Madison <brianmadison@Brians-MacBook-Pro.local> Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
62
tools/cli.js
62
tools/cli.js
@@ -18,6 +18,8 @@ program
|
||||
.description('Build web bundles for agents and teams')
|
||||
.option('-a, --agents-only', 'Build only agent bundles')
|
||||
.option('-t, --teams-only', 'Build only team bundles')
|
||||
.option('-e, --expansions-only', 'Build only expansion pack bundles')
|
||||
.option('--no-expansions', 'Skip building expansion packs')
|
||||
.option('--no-clean', 'Skip cleaning output directories')
|
||||
.action(async (options) => {
|
||||
const builder = new WebBuilder({
|
||||
@@ -30,14 +32,24 @@ program
|
||||
await builder.cleanOutputDirs();
|
||||
}
|
||||
|
||||
if (!options.teamsOnly) {
|
||||
console.log('Building agent bundles...');
|
||||
await builder.buildAgents();
|
||||
}
|
||||
if (options.expansionsOnly) {
|
||||
console.log('Building expansion pack bundles...');
|
||||
await builder.buildAllExpansionPacks({ clean: false });
|
||||
} else {
|
||||
if (!options.teamsOnly) {
|
||||
console.log('Building agent bundles...');
|
||||
await builder.buildAgents();
|
||||
}
|
||||
|
||||
if (!options.agentsOnly) {
|
||||
console.log('Building team bundles...');
|
||||
await builder.buildTeams();
|
||||
if (!options.agentsOnly) {
|
||||
console.log('Building team bundles...');
|
||||
await builder.buildTeams();
|
||||
}
|
||||
|
||||
if (!options.noExpansions) {
|
||||
console.log('Building expansion pack bundles...');
|
||||
await builder.buildAllExpansionPacks({ clean: false });
|
||||
}
|
||||
}
|
||||
|
||||
// Generate IDE configuration folders
|
||||
@@ -62,6 +74,32 @@ program
|
||||
}
|
||||
});
|
||||
|
||||
program
|
||||
.command('build:expansions')
|
||||
.description('Build web bundles for all expansion packs')
|
||||
.option('--expansion <name>', 'Build specific expansion pack only')
|
||||
.option('--no-clean', 'Skip cleaning output directories')
|
||||
.action(async (options) => {
|
||||
const builder = new WebBuilder({
|
||||
rootDir: process.cwd()
|
||||
});
|
||||
|
||||
try {
|
||||
if (options.expansion) {
|
||||
console.log(`Building expansion pack: ${options.expansion}`);
|
||||
await builder.buildExpansionPack(options.expansion, { clean: options.clean });
|
||||
} else {
|
||||
console.log('Building all expansion packs...');
|
||||
await builder.buildAllExpansionPacks({ clean: options.clean });
|
||||
}
|
||||
|
||||
console.log('Expansion pack build completed successfully!');
|
||||
} catch (error) {
|
||||
console.error('Expansion pack build failed:', error.message);
|
||||
process.exit(1);
|
||||
}
|
||||
});
|
||||
|
||||
program
|
||||
.command('list:agents')
|
||||
.description('List all available agents')
|
||||
@@ -72,6 +110,16 @@ program
|
||||
agents.forEach(agent => console.log(` - ${agent}`));
|
||||
});
|
||||
|
||||
program
|
||||
.command('list:expansions')
|
||||
.description('List all available expansion packs')
|
||||
.action(async () => {
|
||||
const builder = new WebBuilder({ rootDir: process.cwd() });
|
||||
const expansions = await builder.listExpansionPacks();
|
||||
console.log('Available expansion packs:');
|
||||
expansions.forEach(expansion => console.log(` - ${expansion}`));
|
||||
});
|
||||
|
||||
program
|
||||
.command('validate')
|
||||
.description('Validate agent and team configurations')
|
||||
|
||||
Reference in New Issue
Block a user