fix: expansion install config
This commit is contained in:
@@ -17,4 +17,3 @@ devLoadAlwaysFiles:
|
||||
- docs/architecture/source-tree.md
|
||||
devDebugLog: .ai/debug-log.md
|
||||
devStoryLocation: docs/stories
|
||||
agentCoreDump: .ai/core-dump{n}.md
|
||||
|
||||
5
expansion-packs/bmad-2d-phaser-game-dev/config.yml
Normal file
5
expansion-packs/bmad-2d-phaser-game-dev/config.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
name: bmad-2d-phaser-game-dev
|
||||
version: 1.1.0
|
||||
short-title: 2D game development with Phaser 3 & TypeScript
|
||||
description: 2D Game Development expansion pack for BMAD Method - Phaser 3 & TypeScript focused
|
||||
author: Brian (BMad)
|
||||
@@ -1,45 +0,0 @@
|
||||
name: bmad-2d-phaser-game-dev
|
||||
version: 1.0.0
|
||||
description: 2D Game Development expansion pack for BMAD Method - Phaser 3 & TypeScript focused
|
||||
author: BMAD Team
|
||||
files:
|
||||
- source: agents/game-designer.md
|
||||
destination: .bmad-core/agents/game-designer.md
|
||||
- source: agents/game-developer.md
|
||||
destination: .bmad-core/agents/game-developer.md
|
||||
- source: agents/game-sm.md
|
||||
destination: .bmad-core/agents/game-sm.md
|
||||
- source: team-game-dev.yml
|
||||
destination: .bmad-core/agent-teams/team-game-dev.yml
|
||||
- source: templates/game-design-doc-tmpl.md
|
||||
destination: .bmad-core/templates/game-design-doc-tmpl.md
|
||||
- source: templates/game-architecture-tmpl.md
|
||||
destination: .bmad-core/templates/game-architecture-tmpl.md
|
||||
- source: templates/level-design-doc-tmpl.md
|
||||
destination: .bmad-core/templates/level-design-doc-tmpl.md
|
||||
- source: templates/game-story-tmpl.md
|
||||
destination: .bmad-core/templates/game-story-tmpl.md
|
||||
- source: templates/game-brief-tmpl.md
|
||||
destination: .bmad-core/templates/game-brief-tmpl.md
|
||||
- source: tasks/create-game-story.md
|
||||
destination: .bmad-core/tasks/create-game-story.md
|
||||
- source: tasks/game-design-brainstorming.md
|
||||
destination: .bmad-core/tasks/game-design-brainstorming.md
|
||||
- source: tasks/advanced-elicitation.md
|
||||
destination: .bmad-core/tasks/advanced-elicitation.md
|
||||
- source: checklists/game-story-dod-checklist.md
|
||||
destination: .bmad-core/checklists/game-story-dod-checklist.md
|
||||
- source: checklists/game-design-checklist.md
|
||||
destination: .bmad-core/checklists/game-design-checklist.md
|
||||
- source: data/bmad-kb.md
|
||||
destination: .bmad-core/data/bmad-kb.md
|
||||
- source: data/development-guidelines.md
|
||||
destination: .bmad-core/data/development-guidelines.md
|
||||
- source: workflows/game-dev-greenfield.yml
|
||||
destination: .bmad-core/workflows/game-dev-greenfield.yml
|
||||
- source: workflows/game-prototype.yml
|
||||
destination: .bmad-core/workflows/game-prototype.yml
|
||||
dependencies:
|
||||
- architect
|
||||
- developer
|
||||
- sm
|
||||
5
expansion-packs/bmad-creator-tools/config.yml
Normal file
5
expansion-packs/bmad-creator-tools/config.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
name: bmad-creator-tools
|
||||
version: 1.0.0
|
||||
short-title: Tools for creating BMAD framework components
|
||||
description: Tools for creating and extending BMAD framework components.
|
||||
author: Brian (BMad)
|
||||
5
expansion-packs/bmad-infrastructure-devops/config.yml
Normal file
5
expansion-packs/bmad-infrastructure-devops/config.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
name: bmad-infrastructure-devops
|
||||
version: 1.0.0
|
||||
short-title: Infrastructure and DevOps capabilities
|
||||
description: This expansion pack extends BMAD Method with comprehensive infrastructure and DevOps capabilities. It's designed for teams that need to define, implement, and manage cloud infrastructure alongside their application development.
|
||||
author: Brian (BMad)
|
||||
@@ -1,23 +0,0 @@
|
||||
name: bmad-infrastructure-devops
|
||||
version: 1.0.0
|
||||
description: Infrastructure & DevOps expansion pack for BMAD Method - Platform engineering and cloud infrastructure focused
|
||||
author: BMAD Team
|
||||
files:
|
||||
- source: agents/infra-devops-platform.md
|
||||
destination: .bmad-core/agents/infra-devops-platform.md
|
||||
- source: templates/infrastructure-architecture-tmpl.md
|
||||
destination: .bmad-core/templates/infrastructure-architecture-tmpl.md
|
||||
- source: templates/infrastructure-platform-from-arch-tmpl.md
|
||||
destination: .bmad-core/templates/infrastructure-platform-from-arch-tmpl.md
|
||||
- source: tasks/create-doc.md
|
||||
destination: .bmad-core/tasks/create-doc.md
|
||||
- source: tasks/review-infrastructure.md
|
||||
destination: .bmad-core/tasks/review-infrastructure.md
|
||||
- source: tasks/validate-infrastructure.md
|
||||
destination: .bmad-core/tasks/validate-infrastructure.md
|
||||
- source: checklists/infrastructure-checklist.md
|
||||
destination: .bmad-core/checklists/infrastructure-checklist.md
|
||||
dependencies:
|
||||
- architect
|
||||
- operations-specialist
|
||||
- security-specialist
|
||||
@@ -1,12 +0,0 @@
|
||||
name: bmad-creator-tools
|
||||
version: 1.0.0
|
||||
description: Tools for creating and extending BMAD framework components
|
||||
type: creator-tools
|
||||
compatibility:
|
||||
bmad-version: '>=4.0.0'
|
||||
components:
|
||||
agents:
|
||||
- bmad-the-creator
|
||||
tasks:
|
||||
- create-agent
|
||||
- generate-expansion-pack
|
||||
@@ -77,24 +77,45 @@ class ConfigLoader {
|
||||
const expansionPacks = [];
|
||||
|
||||
for (const entry of entries) {
|
||||
if (entry.isDirectory()) {
|
||||
const manifestPath = path.join(expansionPacksDir, entry.name, 'manifest.yml');
|
||||
if (entry.isDirectory() && !entry.name.startsWith('.')) {
|
||||
const packPath = path.join(expansionPacksDir, entry.name);
|
||||
const configPath = path.join(packPath, 'config.yml');
|
||||
|
||||
try {
|
||||
const manifestContent = await fs.readFile(manifestPath, 'utf8');
|
||||
const manifest = yaml.load(manifestContent);
|
||||
// Read config.yml
|
||||
const configContent = await fs.readFile(configPath, 'utf8');
|
||||
const config = yaml.load(configContent);
|
||||
|
||||
expansionPacks.push({
|
||||
id: entry.name,
|
||||
name: manifest.name || entry.name,
|
||||
description: manifest.description || 'No description available',
|
||||
version: manifest.version || '1.0.0',
|
||||
author: manifest.author || 'Unknown',
|
||||
manifestPath: manifestPath,
|
||||
dependencies: manifest.dependencies || []
|
||||
name: config.name || entry.name,
|
||||
description: config['short-title'] || config.description || 'No description available',
|
||||
fullDescription: config.description || config['short-title'] || 'No description available',
|
||||
version: config.version || '1.0.0',
|
||||
author: config.author || 'BMAD Team',
|
||||
packPath: packPath,
|
||||
dependencies: config.dependencies?.agents || []
|
||||
});
|
||||
} catch (error) {
|
||||
console.warn(`Failed to read manifest for expansion pack ${entry.name}: ${error.message}`);
|
||||
// Fallback if config.yml doesn't exist or can't be read
|
||||
console.warn(`Failed to read config for expansion pack ${entry.name}: ${error.message}`);
|
||||
|
||||
// Try to derive info from directory name as fallback
|
||||
const name = entry.name
|
||||
.split('-')
|
||||
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
||||
.join(' ');
|
||||
|
||||
expansionPacks.push({
|
||||
id: entry.name,
|
||||
name: name,
|
||||
description: 'No description available',
|
||||
fullDescription: 'No description available',
|
||||
version: '1.0.0',
|
||||
author: 'BMAD Team',
|
||||
packPath: packPath,
|
||||
dependencies: []
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -817,7 +817,7 @@ class Installer {
|
||||
continue;
|
||||
}
|
||||
|
||||
const expansionPackDir = path.dirname(pack.manifestPath);
|
||||
const expansionPackDir = pack.packPath;
|
||||
|
||||
// Create dedicated dot folder for this expansion pack
|
||||
const expansionDotFolder = path.join(installDir, `.${packId}`);
|
||||
@@ -860,10 +860,22 @@ class Installer {
|
||||
}
|
||||
}
|
||||
|
||||
// Copy manifest to the expansion pack's dot folder
|
||||
const manifestDestPath = path.join(expansionDotFolder, 'manifest.yml');
|
||||
if (await fileManager.copyFile(pack.manifestPath, manifestDestPath)) {
|
||||
installedFiles.push(path.join(`.${packId}`, 'manifest.yml'));
|
||||
// Copy config.yml
|
||||
const configPath = path.join(expansionPackDir, 'config.yml');
|
||||
if (await fileManager.pathExists(configPath)) {
|
||||
const configDestPath = path.join(expansionDotFolder, 'config.yml');
|
||||
if (await fileManager.copyFile(configPath, configDestPath)) {
|
||||
installedFiles.push(path.join(`.${packId}`, 'config.yml'));
|
||||
}
|
||||
}
|
||||
|
||||
// Copy README if it exists
|
||||
const readmePath = path.join(expansionPackDir, 'README.md');
|
||||
if (await fileManager.pathExists(readmePath)) {
|
||||
const readmeDestPath = path.join(expansionDotFolder, 'README.md');
|
||||
if (await fileManager.copyFile(readmePath, readmeDestPath)) {
|
||||
installedFiles.push(path.join(`.${packId}`, 'README.md'));
|
||||
}
|
||||
}
|
||||
|
||||
// Copy common/ items to expansion pack folder
|
||||
|
||||
Reference in New Issue
Block a user