bmad-plus 0.4.2 โ 0.4.4
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/CHANGELOG.md +44 -0
- package/README.md +3 -1
- package/package.json +9 -4
- package/readme-international/README.de.md +1 -1
- package/readme-international/README.es.md +1 -1
- package/readme-international/README.fr.md +1 -1
- package/src/bmad-plus/module.yaml +29 -0
- package/tools/cli/bmad-plus-cli.js +23 -0
- package/tools/cli/commands/doctor.js +175 -0
- package/tools/cli/commands/install.js +40 -3
- package/tools/cli/commands/uninstall.js +34 -8
- package/tools/cli/commands/update.js +172 -0
- package/tools/cli/i18n.js +222 -20
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,50 @@ All notable changes to BMAD+ will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.4.4] โ 2026-05-17
|
|
9
|
+
|
|
10
|
+
### ๐ง Encoding Fix + i18n Complete + Tests
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **UTF-8 encoding** โ Fixed double-encoding corruption in `i18n.js` caused by PowerShell `Set-Content`
|
|
14
|
+
- **Credits URL** โ Now points to public repo `github.com/lrochetta/BMAD-PLUS`
|
|
15
|
+
- **npm re-publish** โ v0.4.3 had corrupted Unicode on npm; this release replaces it
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- **Complete i18n** โ CLI guide strings (commands, examples) now translated in all 10 languages (no more EN fallbacks)
|
|
19
|
+
- **Unit tests** โ 53+ tests covering i18n, CLI modules, package.json integrity, module.yaml, source files, version consistency
|
|
20
|
+
- **`npm test`** โ Jest test script added to package.json
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## [0.4.3] โ 2026-05-17
|
|
25
|
+
|
|
26
|
+
### ๐ง CLI Commands + Security Hardening + UX Enhancements
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
- **`bmad-plus update`** โ Update agents & skills while preserving config, IDE configs, and output directories
|
|
30
|
+
- **`bmad-plus doctor`** โ Check installation integrity (version, agents, configs, pack health)
|
|
31
|
+
- **Internationalized `uninstall`** โ Uses i18n system from install manifest language (10 languages)
|
|
32
|
+
- **Credits at startup** โ Author attribution displayed immediately when installer launches
|
|
33
|
+
- **Enriched post-install guide** โ CLI commands section + pack-specific usage examples in selected language
|
|
34
|
+
- **i18n strings for update/uninstall/doctor** โ EN, FR, ES, DE, PT-BR, RU, ZH, HE, JA, IT
|
|
35
|
+
- **CLI guide strings** โ `guide_cli_title`, `guide_examples_title`, pack examples for SEO/Backup/Animated/OSINT
|
|
36
|
+
|
|
37
|
+
### Fixed
|
|
38
|
+
- **Security** โ Added `mcp-server/.env` to `.gitignore`, created `.env.example` template
|
|
39
|
+
- **Manifest version** โ Now reads from `package.json` dynamically (was hardcoded `0.4.0`)
|
|
40
|
+
- **`module.yaml` sync** โ Added missing SEO, Backup, Animated pack definitions
|
|
41
|
+
- **`package.json` cleanup** โ Removed `oveanet-pack` from `files[]` (already excluded by `.npmignore`)
|
|
42
|
+
- **CI/CD reliability** โ Removed `continue-on-error` from npm publish step
|
|
43
|
+
- **Comment accuracy** โ Updated "9 languages" โ "10 languages" in install.js header
|
|
44
|
+
- **Installer title** โ Now reads version from `package.json` dynamically
|
|
45
|
+
|
|
46
|
+
### Changed
|
|
47
|
+
- **Dependencies** โ Updated `@clack/prompts` 1.1.0 โ 1.4.0, `fs-extra` 11.3.4 โ 11.3.5
|
|
48
|
+
- **npm scripts** โ Added `update:bmad` and `doctor:bmad` scripts
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
8
52
|
## [0.4.2] โ 2026-03-19
|
|
9
53
|
|
|
10
54
|
### ๐ฆ Public Packs โ SEO/Backup/Animated now in npm
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ๐ BMAD+ โ Augmented AI-Driven Development Framework
|
|
2
2
|
|
|
3
|
-
[](CHANGELOG.md)
|
|
4
4
|
[](https://github.com/bmad-code-org/BMAD-METHOD)
|
|
5
5
|
[](LICENSE)
|
|
6
6
|
|
|
@@ -425,6 +425,8 @@ BMAD+/
|
|
|
425
425
|
| **0.4.0** | 2026-03-19 | ๐ข SEO Engine v2.1 โ SKILL.md orchestrator, Google APIs, HTML reports, competitor benchmark, 50 tests, GSC + GA4 extensions |
|
|
426
426
|
| **0.4.1** | 2026-03-19 |
|
|
427
427
|
| **0.4.2** | 2026-03-19 | Public packs SEO/Backup/Animated agents now in npm package | ๐ 10-language CLI, CI/CD pipeline, `.npmignore`, `/deploy` workflow, security hardening |
|
|
428
|
+
| **0.4.3** | 2026-05-17 | ๐ง update + doctor commands, i18n complete, credits fix |
|
|
429
|
+
| **0.4.4** | 2026-05-17 | ๐ง `update` + `doctor` commands, i18n uninstall, enriched guide with CLI commands & examples, credits at startup, security hardening |
|
|
428
430
|
|
|
429
431
|
See [CHANGELOG.md](CHANGELOG.md) for full details.
|
|
430
432
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "bmad-plus",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.4",
|
|
5
5
|
"description": "BMAD+ โ Augmented AI-Driven Development Framework with multi-role agents, autopilot, and parallel execution",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"bmad",
|
|
@@ -27,19 +27,21 @@
|
|
|
27
27
|
"tools",
|
|
28
28
|
"src/bmad-plus",
|
|
29
29
|
"osint-agent-package",
|
|
30
|
-
"oveanet-pack",
|
|
31
30
|
"readme-international",
|
|
32
31
|
"CHANGELOG.md"
|
|
33
32
|
],
|
|
34
33
|
"scripts": {
|
|
35
34
|
"install:bmad": "node tools/cli/bmad-plus-cli.js install",
|
|
35
|
+
"update:bmad": "node tools/cli/bmad-plus-cli.js update",
|
|
36
|
+
"doctor:bmad": "node tools/cli/bmad-plus-cli.js doctor",
|
|
37
|
+
"test": "jest",
|
|
36
38
|
"uninstall:bmad": "node tools/cli/bmad-plus-cli.js uninstall"
|
|
37
39
|
},
|
|
38
40
|
"dependencies": {
|
|
39
|
-
"@clack/prompts": "^1.
|
|
41
|
+
"@clack/prompts": "^1.4.0",
|
|
40
42
|
"chalk": "^4.1.2",
|
|
41
43
|
"commander": "^14.0.0",
|
|
42
|
-
"fs-extra": "^11.3.
|
|
44
|
+
"fs-extra": "^11.3.5",
|
|
43
45
|
"js-yaml": "^4.1.0",
|
|
44
46
|
"picocolors": "^1.1.1"
|
|
45
47
|
},
|
|
@@ -48,5 +50,8 @@
|
|
|
48
50
|
},
|
|
49
51
|
"publishConfig": {
|
|
50
52
|
"access": "public"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"jest": "^30.4.2"
|
|
51
56
|
}
|
|
52
57
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ๐ BMAD+ โ Erweitertes KI-gestรผtztes Entwicklungs-Framework
|
|
2
2
|
|
|
3
|
-
[](../CHANGELOG.md)
|
|
4
4
|
[](https://github.com/bmad-code-org/BMAD-METHOD)
|
|
5
5
|
[](../LICENSE)
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ๐ BMAD+ โ Framework de Desarrollo Impulsado por IA Aumentada
|
|
2
2
|
|
|
3
|
-
[](../CHANGELOG.md)
|
|
4
4
|
[](https://github.com/bmad-code-org/BMAD-METHOD)
|
|
5
5
|
[](../LICENSE)
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ๐ BMAD+ โ Augmented AI-Driven Development Framework
|
|
2
2
|
|
|
3
|
-
[](../CHANGELOG.md)
|
|
4
4
|
[](https://github.com/bmad-code-org/BMAD-METHOD)
|
|
5
5
|
[](../LICENSE)
|
|
6
6
|
|
|
@@ -74,6 +74,35 @@ packs:
|
|
|
74
74
|
- bmad-audit-scan
|
|
75
75
|
- bmad-audit-report
|
|
76
76
|
|
|
77
|
+
seo:
|
|
78
|
+
name: "SEO Audit 360"
|
|
79
|
+
icon: "๐"
|
|
80
|
+
description: "3 agents (Scout, Chief, Judge) + 6-phase audit + PageSpeed loop"
|
|
81
|
+
required: false
|
|
82
|
+
packDir: pack-seo
|
|
83
|
+
agents:
|
|
84
|
+
- seo-scout
|
|
85
|
+
- seo-chief
|
|
86
|
+
- seo-judge
|
|
87
|
+
|
|
88
|
+
backup:
|
|
89
|
+
name: "Universal Backup"
|
|
90
|
+
icon: "๐๏ธ"
|
|
91
|
+
description: "Timestamped ZIP backup with smart exclusions"
|
|
92
|
+
required: false
|
|
93
|
+
packDir: pack-backup
|
|
94
|
+
agents:
|
|
95
|
+
- backup-agent
|
|
96
|
+
|
|
97
|
+
animated:
|
|
98
|
+
name: "Animated Website"
|
|
99
|
+
icon: "๐ฌ"
|
|
100
|
+
description: "Luxury scroll-driven website from video"
|
|
101
|
+
required: false
|
|
102
|
+
packDir: pack-animated
|
|
103
|
+
agents:
|
|
104
|
+
- animated-website-agent
|
|
105
|
+
|
|
77
106
|
install_packs:
|
|
78
107
|
prompt:
|
|
79
108
|
- "Quels packs additionnels souhaites-tu installer ?"
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* BMAD+ CLI โ Main entry point
|
|
5
|
+
* Commands: install, uninstall, update, doctor
|
|
5
6
|
*/
|
|
6
7
|
|
|
7
8
|
const { program } = require('commander');
|
|
@@ -22,6 +23,8 @@ if (process.stdin.isTTY) {
|
|
|
22
23
|
// Register commands
|
|
23
24
|
const install = require('./commands/install');
|
|
24
25
|
const uninstall = require('./commands/uninstall');
|
|
26
|
+
const update = require('./commands/update');
|
|
27
|
+
const doctor = require('./commands/doctor');
|
|
25
28
|
|
|
26
29
|
program
|
|
27
30
|
.version(packageJson.version)
|
|
@@ -43,6 +46,26 @@ const uninstallCmd = program
|
|
|
43
46
|
.description('Remove BMAD+ from your project');
|
|
44
47
|
uninstallCmd.action(uninstall.action);
|
|
45
48
|
|
|
49
|
+
// Update command
|
|
50
|
+
const updateCmd = program
|
|
51
|
+
.command('update')
|
|
52
|
+
.description('Update BMAD+ agents and skills (preserves config)');
|
|
53
|
+
|
|
54
|
+
for (const option of update.options || []) {
|
|
55
|
+
updateCmd.option(...option);
|
|
56
|
+
}
|
|
57
|
+
updateCmd.action(update.action);
|
|
58
|
+
|
|
59
|
+
// Doctor command
|
|
60
|
+
const doctorCmd = program
|
|
61
|
+
.command('doctor')
|
|
62
|
+
.description('Check BMAD+ installation integrity');
|
|
63
|
+
|
|
64
|
+
for (const option of doctor.options || []) {
|
|
65
|
+
doctorCmd.option(...option);
|
|
66
|
+
}
|
|
67
|
+
doctorCmd.action(doctor.action);
|
|
68
|
+
|
|
46
69
|
program.parse(process.argv);
|
|
47
70
|
|
|
48
71
|
if (process.argv.slice(2).length === 0) {
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BMAD+ Doctor Command
|
|
3
|
+
* Checks installation integrity and reports issues
|
|
4
|
+
*
|
|
5
|
+
* Author: Laurent Rochetta
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const path = require('node:path');
|
|
9
|
+
const fs = require('node:fs');
|
|
10
|
+
const clack = require('@clack/prompts');
|
|
11
|
+
const pc = require('picocolors');
|
|
12
|
+
const { t } = require('../i18n');
|
|
13
|
+
|
|
14
|
+
module.exports = {
|
|
15
|
+
command: 'doctor',
|
|
16
|
+
description: 'Check BMAD+ installation integrity',
|
|
17
|
+
options: [
|
|
18
|
+
['-d, --directory <path>', 'Project directory (default: current directory)'],
|
|
19
|
+
],
|
|
20
|
+
action: async (options) => {
|
|
21
|
+
const projectDir = path.resolve(options.directory || process.cwd());
|
|
22
|
+
const packageJson = require('../../../package.json');
|
|
23
|
+
|
|
24
|
+
clack.intro(pc.bgBlue(pc.white(` BMAD+ Doctor v${packageJson.version} `)));
|
|
25
|
+
|
|
26
|
+
let checks = 0;
|
|
27
|
+
let passed = 0;
|
|
28
|
+
let warnings = 0;
|
|
29
|
+
let errors = 0;
|
|
30
|
+
|
|
31
|
+
// โโ Check 1: Installation manifest โโ
|
|
32
|
+
checks++;
|
|
33
|
+
const manifestPath = path.join(projectDir, '_bmad', '.bmad-plus-install.json');
|
|
34
|
+
if (!fs.existsSync(manifestPath)) {
|
|
35
|
+
clack.log.error('โ BMAD+ is not installed in this directory');
|
|
36
|
+
clack.outro(pc.red('Run `npx bmad-plus install` first.'));
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
|
|
41
|
+
clack.log.success(`โ
Manifest found โ v${manifest.version}`);
|
|
42
|
+
passed++;
|
|
43
|
+
|
|
44
|
+
// โโ Check 2: Version comparison โโ
|
|
45
|
+
checks++;
|
|
46
|
+
if (manifest.version === packageJson.version) {
|
|
47
|
+
clack.log.success(`โ
Version up to date (v${manifest.version})`);
|
|
48
|
+
passed++;
|
|
49
|
+
} else {
|
|
50
|
+
clack.log.warn(`โ ๏ธ Version mismatch: installed v${manifest.version} โ latest v${packageJson.version}`);
|
|
51
|
+
clack.log.info(' Run `npx bmad-plus update` to upgrade');
|
|
52
|
+
warnings++;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// โโ Check 3: Agent files โโ
|
|
56
|
+
checks++;
|
|
57
|
+
const agentsDir = path.join(projectDir, '.agents', 'skills');
|
|
58
|
+
if (fs.existsSync(agentsDir)) {
|
|
59
|
+
const agentDirs = fs.readdirSync(agentsDir, { withFileTypes: true })
|
|
60
|
+
.filter(d => d.isDirectory())
|
|
61
|
+
.map(d => d.name);
|
|
62
|
+
clack.log.success(`โ
${agentDirs.length} agent/skill directories found`);
|
|
63
|
+
passed++;
|
|
64
|
+
|
|
65
|
+
// Check each expected agent from manifest packs
|
|
66
|
+
const expectedAgents = {
|
|
67
|
+
core: ['agent-strategist', 'agent-architect-dev', 'agent-quality', 'agent-orchestrator'],
|
|
68
|
+
osint: ['agent-shadow'],
|
|
69
|
+
maker: ['agent-maker'],
|
|
70
|
+
seo: ['pack-seo'],
|
|
71
|
+
backup: ['pack-backup'],
|
|
72
|
+
animated: ['pack-animated'],
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
for (const pack of (manifest.packs || ['core'])) {
|
|
76
|
+
const expected = expectedAgents[pack] || [];
|
|
77
|
+
for (const agent of expected) {
|
|
78
|
+
checks++;
|
|
79
|
+
const agentPath = path.join(agentsDir, agent);
|
|
80
|
+
if (fs.existsSync(agentPath)) {
|
|
81
|
+
passed++;
|
|
82
|
+
} else {
|
|
83
|
+
clack.log.warn(`โ ๏ธ Missing agent: ${agent} (pack: ${pack})`);
|
|
84
|
+
warnings++;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
} else {
|
|
89
|
+
clack.log.error('โ No .agents/skills/ directory found');
|
|
90
|
+
errors++;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// โโ Check 4: Config files โโ
|
|
94
|
+
checks++;
|
|
95
|
+
const configPath = path.join(projectDir, '_bmad', 'config.yaml');
|
|
96
|
+
if (fs.existsSync(configPath)) {
|
|
97
|
+
clack.log.success('โ
config.yaml present');
|
|
98
|
+
passed++;
|
|
99
|
+
} else {
|
|
100
|
+
clack.log.error('โ config.yaml missing');
|
|
101
|
+
errors++;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// โโ Check 5: Module config โโ
|
|
105
|
+
checks++;
|
|
106
|
+
const moduleYaml = path.join(projectDir, '_bmad', 'module.yaml');
|
|
107
|
+
if (fs.existsSync(moduleYaml)) {
|
|
108
|
+
clack.log.success('โ
module.yaml present');
|
|
109
|
+
passed++;
|
|
110
|
+
} else {
|
|
111
|
+
clack.log.warn('โ ๏ธ module.yaml missing');
|
|
112
|
+
warnings++;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// โโ Check 6: IDE configs โโ
|
|
116
|
+
checks++;
|
|
117
|
+
const ideFiles = ['CLAUDE.md', 'GEMINI.md', 'AGENTS.md'].filter(f =>
|
|
118
|
+
fs.existsSync(path.join(projectDir, f))
|
|
119
|
+
);
|
|
120
|
+
if (ideFiles.length > 0) {
|
|
121
|
+
clack.log.success(`โ
${ideFiles.length} IDE config(s): ${ideFiles.join(', ')}`);
|
|
122
|
+
passed++;
|
|
123
|
+
} else {
|
|
124
|
+
clack.log.warn('โ ๏ธ No IDE config files found');
|
|
125
|
+
warnings++;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// โโ Check 7: Output directories โโ
|
|
129
|
+
checks++;
|
|
130
|
+
const outputDir = path.join(projectDir, '_bmad-output');
|
|
131
|
+
if (fs.existsSync(outputDir)) {
|
|
132
|
+
clack.log.success('โ
_bmad-output/ directory exists');
|
|
133
|
+
passed++;
|
|
134
|
+
} else {
|
|
135
|
+
clack.log.warn('โ ๏ธ _bmad-output/ not found');
|
|
136
|
+
warnings++;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// โโ Check 8: Skills integrity (SKILL.md exists in pack dirs) โโ
|
|
140
|
+
if (manifest.packs && manifest.packs.includes('seo')) {
|
|
141
|
+
checks++;
|
|
142
|
+
const seoSkill = path.join(agentsDir, 'pack-seo', 'SKILL.md');
|
|
143
|
+
if (fs.existsSync(seoSkill)) {
|
|
144
|
+
clack.log.success('โ
SEO Engine SKILL.md present');
|
|
145
|
+
passed++;
|
|
146
|
+
} else {
|
|
147
|
+
clack.log.error('โ SEO Engine SKILL.md missing โ /seo audit will not work');
|
|
148
|
+
errors++;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// โโ Summary โโ
|
|
153
|
+
const summaryColor = errors > 0 ? pc.red : warnings > 0 ? pc.yellow : pc.green;
|
|
154
|
+
const summaryIcon = errors > 0 ? 'โ' : warnings > 0 ? 'โ ๏ธ' : 'โ
';
|
|
155
|
+
|
|
156
|
+
clack.note([
|
|
157
|
+
`${summaryIcon} ${passed}/${checks} checks passed`,
|
|
158
|
+
errors > 0 ? `โ ${errors} error(s)` : null,
|
|
159
|
+
warnings > 0 ? `โ ๏ธ ${warnings} warning(s)` : null,
|
|
160
|
+
'',
|
|
161
|
+
`๐ฆ Version: v${manifest.version}`,
|
|
162
|
+
`๐
Installed: ${manifest.installed.split('T')[0]}`,
|
|
163
|
+
`๐ฃ๏ธ Language: ${manifest.language || 'N/A'}`,
|
|
164
|
+
`๐ฆ Packs: ${(manifest.packs || ['core']).join(', ')}`,
|
|
165
|
+
].filter(Boolean).join('\n'), '๐ฉบ BMAD+ Health Report');
|
|
166
|
+
|
|
167
|
+
clack.outro(summaryColor(
|
|
168
|
+
errors > 0
|
|
169
|
+
? 'Issues found โ run `npx bmad-plus install` to fix'
|
|
170
|
+
: warnings > 0
|
|
171
|
+
? 'Minor issues found โ consider running `npx bmad-plus update`'
|
|
172
|
+
: 'Everything looks great! ๐'
|
|
173
|
+
));
|
|
174
|
+
},
|
|
175
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* BMAD+ Install Command
|
|
3
3
|
* Installs agents, skills, and IDE configs into the current project
|
|
4
|
-
* Supports
|
|
4
|
+
* Supports 10 languages: EN, FR, ES, DE, PT-BR, RU, ZH, HE, JA, IT
|
|
5
5
|
*
|
|
6
6
|
* Author: Laurent Rochetta
|
|
7
7
|
*/
|
|
@@ -118,7 +118,9 @@ module.exports = {
|
|
|
118
118
|
const bmadSrc = path.join(__dirname, '..', '..', '..', 'src', 'bmad-plus');
|
|
119
119
|
|
|
120
120
|
// โโ Step 0: Language Selection โโ
|
|
121
|
-
|
|
121
|
+
const pkgJson = require('../../../package.json');
|
|
122
|
+
clack.intro(pc.bgCyan(pc.black(` BMAD+ Installer v${pkgJson.version} `)));
|
|
123
|
+
clack.log.info(pc.dim('โจ Created by Laurent Rochetta โ github.com/lrochetta/BMAD-PLUS'));
|
|
122
124
|
|
|
123
125
|
let lang = 'en';
|
|
124
126
|
if (!options.yes) {
|
|
@@ -373,8 +375,9 @@ module.exports = {
|
|
|
373
375
|
fsExtra.ensureDirSync(path.join(projectDir, 'docs'));
|
|
374
376
|
|
|
375
377
|
// โโ Step 8: Write install manifest โโ
|
|
378
|
+
const pkgVersion = require('../../../package.json').version;
|
|
376
379
|
const manifest = {
|
|
377
|
-
version:
|
|
380
|
+
version: pkgVersion,
|
|
378
381
|
uiLanguage: lang,
|
|
379
382
|
installed: new Date().toISOString(),
|
|
380
383
|
packs: selectedPacks,
|
|
@@ -431,6 +434,40 @@ module.exports = {
|
|
|
431
434
|
i.guide_or_auto,
|
|
432
435
|
'',
|
|
433
436
|
`${i.guide_output}: _bmad-output/discovery/ & _bmad-output/build/`,
|
|
437
|
+
'',
|
|
438
|
+
'โ'.repeat(50),
|
|
439
|
+
'',
|
|
440
|
+
`๐ฆ ${i.guide_cli_title || 'CLI Commands'}:`,
|
|
441
|
+
` npx bmad-plus install ${i.guide_cli_install || 'โ Install agents & skills'}`,
|
|
442
|
+
` npx bmad-plus update ${i.guide_cli_update || 'โ Update agents (keeps config)'}`,
|
|
443
|
+
` npx bmad-plus doctor ${i.guide_cli_doctor || 'โ Check installation health'}`,
|
|
444
|
+
` npx bmad-plus uninstall ${i.guide_cli_uninstall || 'โ Remove BMAD+ from project'}`,
|
|
445
|
+
);
|
|
446
|
+
|
|
447
|
+
// Add pack-specific examples
|
|
448
|
+
const examples = [];
|
|
449
|
+
if (selectedPacks.includes('seo')) {
|
|
450
|
+
examples.push(` ${i.guide_example_seo || '๐ SEO: "/seo audit https://example.com"'}`);
|
|
451
|
+
}
|
|
452
|
+
if (selectedPacks.includes('backup')) {
|
|
453
|
+
examples.push(` ${i.guide_example_backup || '๐๏ธ Backup: "/backup create" โ ZIP timestamped'}`);
|
|
454
|
+
}
|
|
455
|
+
if (selectedPacks.includes('animated')) {
|
|
456
|
+
examples.push(` ${i.guide_example_animated || '๐ฌ Animated: "/animated build hero.mp4"'}`);
|
|
457
|
+
}
|
|
458
|
+
if (selectedPacks.includes('osint')) {
|
|
459
|
+
examples.push(` ${i.guide_example_osint || '๐ OSINT: "Shadow, investigate John Doe"'}`);
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
if (examples.length > 0) {
|
|
463
|
+
agentGuide.push(
|
|
464
|
+
'',
|
|
465
|
+
`๐ก ${i.guide_examples_title || 'Quick Examples'}:`,
|
|
466
|
+
...examples
|
|
467
|
+
);
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
agentGuide.push(
|
|
434
471
|
'',
|
|
435
472
|
'---',
|
|
436
473
|
i.guide_credits
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* BMAD+ Uninstall Command
|
|
3
3
|
* Removes BMAD+ agents, skills, and configs from the current project
|
|
4
|
+
* Internationalized โ uses i18n system
|
|
5
|
+
*
|
|
6
|
+
* Author: Laurent Rochetta
|
|
4
7
|
*/
|
|
5
8
|
|
|
6
9
|
const path = require('node:path');
|
|
@@ -8,6 +11,7 @@ const fs = require('node:fs');
|
|
|
8
11
|
const fsExtra = require('fs-extra');
|
|
9
12
|
const clack = require('@clack/prompts');
|
|
10
13
|
const pc = require('picocolors');
|
|
14
|
+
const { t, getLanguageOptions } = require('../i18n');
|
|
11
15
|
|
|
12
16
|
module.exports = {
|
|
13
17
|
command: 'uninstall',
|
|
@@ -26,45 +30,67 @@ module.exports = {
|
|
|
26
30
|
}
|
|
27
31
|
|
|
28
32
|
const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
|
|
29
|
-
|
|
33
|
+
|
|
34
|
+
// Use the language from install manifest, or ask
|
|
35
|
+
let lang = manifest.uiLanguage || 'en';
|
|
36
|
+
const i = t(lang);
|
|
37
|
+
|
|
38
|
+
clack.log.info(`BMAD+ v${manifest.version} (${i.installed_on || 'installed'} ${manifest.installed.split('T')[0]})`);
|
|
39
|
+
clack.log.info(`${i.selected_packs}: ${(manifest.packs || ['core']).join(', ')}`);
|
|
30
40
|
|
|
31
41
|
const confirm = await clack.confirm({
|
|
32
|
-
message: '
|
|
42
|
+
message: i.uninstall_confirm || 'Remove BMAD+ from this project?',
|
|
33
43
|
});
|
|
34
44
|
|
|
35
45
|
if (!confirm || clack.isCancel(confirm)) {
|
|
36
|
-
clack.cancel(
|
|
46
|
+
clack.cancel(i.cancelled);
|
|
37
47
|
return;
|
|
38
48
|
}
|
|
39
49
|
|
|
40
50
|
const spinner = clack.spinner();
|
|
41
|
-
spinner.start('
|
|
51
|
+
spinner.start(i.uninstall_removing || 'Removing...');
|
|
52
|
+
|
|
53
|
+
let removed = 0;
|
|
42
54
|
|
|
43
55
|
// Remove .agents/skills/ (BMAD+ agents & skills)
|
|
44
56
|
const agentsDir = path.join(projectDir, '.agents');
|
|
45
57
|
if (fs.existsSync(agentsDir)) {
|
|
46
58
|
fsExtra.removeSync(agentsDir);
|
|
59
|
+
removed++;
|
|
47
60
|
}
|
|
48
61
|
|
|
49
62
|
// Remove _bmad/ config
|
|
50
63
|
const bmadDir = path.join(projectDir, '_bmad');
|
|
51
64
|
if (fs.existsSync(bmadDir)) {
|
|
52
65
|
fsExtra.removeSync(bmadDir);
|
|
66
|
+
removed++;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Remove _bmad-output/ (only if empty)
|
|
70
|
+
const outputDir = path.join(projectDir, '_bmad-output');
|
|
71
|
+
if (fs.existsSync(outputDir)) {
|
|
72
|
+
const contents = fs.readdirSync(outputDir, { recursive: true }).filter(f => !f.startsWith('.'));
|
|
73
|
+
if (contents.length === 0) {
|
|
74
|
+
fsExtra.removeSync(outputDir);
|
|
75
|
+
removed++;
|
|
76
|
+
} else {
|
|
77
|
+
clack.log.info(i.uninstall_output_kept || '๐ _bmad-output/ kept (contains files)');
|
|
78
|
+
}
|
|
53
79
|
}
|
|
54
80
|
|
|
55
|
-
// Remove IDE configs
|
|
81
|
+
// Remove IDE configs (only BMAD+-generated ones)
|
|
56
82
|
for (const configFile of ['CLAUDE.md', 'GEMINI.md', 'AGENTS.md', 'OPENCODE.md']) {
|
|
57
83
|
const p = path.join(projectDir, configFile);
|
|
58
84
|
if (fs.existsSync(p)) {
|
|
59
|
-
// Only remove if it's a BMAD+ generated file
|
|
60
85
|
const content = fs.readFileSync(p, 'utf8');
|
|
61
86
|
if (content.includes('BMAD+')) {
|
|
62
87
|
fs.unlinkSync(p);
|
|
88
|
+
removed++;
|
|
63
89
|
}
|
|
64
90
|
}
|
|
65
91
|
}
|
|
66
92
|
|
|
67
|
-
spinner.stop(
|
|
68
|
-
clack.outro(pc.green('Done!'));
|
|
93
|
+
spinner.stop(i.uninstall_done ? i.uninstall_done(removed) : `โ
BMAD+ removed (${removed} items)`);
|
|
94
|
+
clack.outro(pc.green(i.guide_ready ? '๐ Done!' : 'Done!'));
|
|
69
95
|
},
|
|
70
96
|
};
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BMAD+ Update Command
|
|
3
|
+
* Updates agents and skills while preserving user config
|
|
4
|
+
*
|
|
5
|
+
* Author: Laurent Rochetta
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const path = require('node:path');
|
|
9
|
+
const fs = require('node:fs');
|
|
10
|
+
const fsExtra = require('fs-extra');
|
|
11
|
+
const clack = require('@clack/prompts');
|
|
12
|
+
const pc = require('picocolors');
|
|
13
|
+
const { t } = require('../i18n');
|
|
14
|
+
|
|
15
|
+
// Same pack definitions as install.js โ keep in sync
|
|
16
|
+
const PACKS = {
|
|
17
|
+
core: {
|
|
18
|
+
agents: ['agent-strategist', 'agent-architect-dev', 'agent-quality', 'agent-orchestrator'],
|
|
19
|
+
skills: ['bmad-plus-autopilot', 'bmad-plus-parallel', 'bmad-plus-sync'],
|
|
20
|
+
data: ['role-triggers.yaml'],
|
|
21
|
+
},
|
|
22
|
+
osint: {
|
|
23
|
+
agents: ['agent-shadow'],
|
|
24
|
+
skills: [],
|
|
25
|
+
externalPackage: 'osint-agent-package',
|
|
26
|
+
},
|
|
27
|
+
maker: {
|
|
28
|
+
agents: ['agent-maker'],
|
|
29
|
+
skills: [],
|
|
30
|
+
data: [],
|
|
31
|
+
},
|
|
32
|
+
seo: { agents: [], skills: [], packDir: 'pack-seo' },
|
|
33
|
+
backup: { agents: [], skills: [], packDir: 'pack-backup' },
|
|
34
|
+
animated: { agents: [], skills: [], packDir: 'pack-animated' },
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
module.exports = {
|
|
38
|
+
command: 'update',
|
|
39
|
+
description: 'Update BMAD+ agents and skills (preserves config)',
|
|
40
|
+
options: [
|
|
41
|
+
['-d, --directory <path>', 'Project directory (default: current directory)'],
|
|
42
|
+
],
|
|
43
|
+
action: async (options) => {
|
|
44
|
+
const projectDir = path.resolve(options.directory || process.cwd());
|
|
45
|
+
const bmadSrc = path.join(__dirname, '..', '..', '..', 'src', 'bmad-plus');
|
|
46
|
+
const packageJson = require('../../../package.json');
|
|
47
|
+
|
|
48
|
+
clack.intro(pc.bgMagenta(pc.white(` BMAD+ Updater v${packageJson.version} `)));
|
|
49
|
+
|
|
50
|
+
// Check if installed
|
|
51
|
+
const manifestPath = path.join(projectDir, '_bmad', '.bmad-plus-install.json');
|
|
52
|
+
if (!fs.existsSync(manifestPath)) {
|
|
53
|
+
clack.log.error('BMAD+ is not installed in this directory.');
|
|
54
|
+
clack.log.info('Run `npx bmad-plus install` first.');
|
|
55
|
+
clack.outro(pc.red('Update aborted.'));
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
|
|
60
|
+
const lang = manifest.uiLanguage || 'en';
|
|
61
|
+
const i = t(lang);
|
|
62
|
+
|
|
63
|
+
clack.log.info(`๐ฆ Installed: v${manifest.version} โ Available: v${packageJson.version}`);
|
|
64
|
+
|
|
65
|
+
if (manifest.version === packageJson.version) {
|
|
66
|
+
clack.log.success(i.update_current || 'โ
Already up to date!');
|
|
67
|
+
clack.outro(pc.green('Nothing to update.'));
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const selectedPacks = manifest.packs || ['core'];
|
|
72
|
+
clack.log.info(`${i.selected_packs}: ${selectedPacks.join(', ')}`);
|
|
73
|
+
|
|
74
|
+
const confirm = await clack.confirm({
|
|
75
|
+
message: i.update_confirm || `Update from v${manifest.version} to v${packageJson.version}?`,
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
if (!confirm || clack.isCancel(confirm)) {
|
|
79
|
+
clack.cancel(i.cancelled);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const spinner = clack.spinner();
|
|
84
|
+
spinner.start(i.update_updating || 'Updating agents and skills...');
|
|
85
|
+
|
|
86
|
+
const targetAgentsDir = path.join(projectDir, '.agents', 'skills');
|
|
87
|
+
const targetDataDir = path.join(projectDir, '.agents', 'data');
|
|
88
|
+
|
|
89
|
+
fsExtra.ensureDirSync(targetAgentsDir);
|
|
90
|
+
fsExtra.ensureDirSync(targetDataDir);
|
|
91
|
+
|
|
92
|
+
let updated = 0;
|
|
93
|
+
|
|
94
|
+
for (const packId of selectedPacks) {
|
|
95
|
+
const pack = PACKS[packId];
|
|
96
|
+
if (!pack) continue;
|
|
97
|
+
|
|
98
|
+
// Update agents
|
|
99
|
+
for (const agent of (pack.agents || [])) {
|
|
100
|
+
const src = path.join(bmadSrc, 'agents', agent);
|
|
101
|
+
const dest = path.join(targetAgentsDir, agent);
|
|
102
|
+
if (fs.existsSync(src)) {
|
|
103
|
+
fsExtra.copySync(src, dest, { overwrite: true });
|
|
104
|
+
updated++;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// Update skills
|
|
109
|
+
for (const skill of (pack.skills || [])) {
|
|
110
|
+
const src = path.join(bmadSrc, 'skills', skill);
|
|
111
|
+
const dest = path.join(targetAgentsDir, skill);
|
|
112
|
+
if (fs.existsSync(src)) {
|
|
113
|
+
fsExtra.copySync(src, dest, { overwrite: true });
|
|
114
|
+
updated++;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Update data files
|
|
119
|
+
for (const dataFile of (pack.data || [])) {
|
|
120
|
+
const src = path.join(bmadSrc, 'data', dataFile);
|
|
121
|
+
const dest = path.join(targetDataDir, dataFile);
|
|
122
|
+
if (fs.existsSync(src)) {
|
|
123
|
+
fsExtra.copySync(src, dest, { overwrite: true });
|
|
124
|
+
updated++;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Update external package (OSINT)
|
|
129
|
+
if (pack.externalPackage) {
|
|
130
|
+
const extSrc = path.join(__dirname, '..', '..', '..', pack.externalPackage, 'skills');
|
|
131
|
+
if (fs.existsSync(extSrc)) {
|
|
132
|
+
fsExtra.copySync(extSrc, targetAgentsDir, { overwrite: true });
|
|
133
|
+
updated++;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Update pack directory (SEO, Backup, Animated)
|
|
138
|
+
if (pack.packDir) {
|
|
139
|
+
const packSrc = path.join(bmadSrc, 'agents', pack.packDir);
|
|
140
|
+
const packDest = path.join(targetAgentsDir, pack.packDir);
|
|
141
|
+
if (fs.existsSync(packSrc)) {
|
|
142
|
+
fsExtra.copySync(packSrc, packDest, { overwrite: true });
|
|
143
|
+
updated++;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// Update module config (always)
|
|
149
|
+
const moduleYaml = path.join(bmadSrc, 'module.yaml');
|
|
150
|
+
const targetBmadDir = path.join(projectDir, '_bmad');
|
|
151
|
+
if (fs.existsSync(moduleYaml)) {
|
|
152
|
+
fsExtra.copySync(moduleYaml, path.join(targetBmadDir, 'module.yaml'));
|
|
153
|
+
updated++;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
const helpCsv = path.join(bmadSrc, 'module-help.csv');
|
|
157
|
+
if (fs.existsSync(helpCsv)) {
|
|
158
|
+
fsExtra.copySync(helpCsv, path.join(targetBmadDir, 'module-help.csv'));
|
|
159
|
+
updated++;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Update manifest version (preserve everything else)
|
|
163
|
+
manifest.version = packageJson.version;
|
|
164
|
+
manifest.lastUpdated = new Date().toISOString();
|
|
165
|
+
fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2), 'utf8');
|
|
166
|
+
|
|
167
|
+
spinner.stop(i.update_done ? i.update_done(updated) : `โ
${updated} files updated to v${packageJson.version}`);
|
|
168
|
+
|
|
169
|
+
clack.log.info('๐ Config preserved: config.yaml, IDE configs, output directories');
|
|
170
|
+
clack.outro(pc.green(i.update_ready || `BMAD+ v${packageJson.version} is ready! ๐`));
|
|
171
|
+
},
|
|
172
|
+
};
|
package/tools/cli/i18n.js
CHANGED
|
@@ -10,7 +10,7 @@ const LANGUAGES = {
|
|
|
10
10
|
flag: '๐ฌ๐ง',
|
|
11
11
|
name: 'English',
|
|
12
12
|
locale: 'en',
|
|
13
|
-
installer_title: ' BMAD+ Installer v0.4.
|
|
13
|
+
installer_title: ' BMAD+ Installer v0.4.4 ',
|
|
14
14
|
select_language: 'Select your language',
|
|
15
15
|
installing_to: 'Installing to',
|
|
16
16
|
select_packs: 'Which packs to install? (Core is always included)',
|
|
@@ -49,14 +49,36 @@ const LANGUAGES = {
|
|
|
49
49
|
guide_or_auto: 'โก Or: "autopilot" to manage everything automatically',
|
|
50
50
|
guide_output: '๐ Output',
|
|
51
51
|
guide_ready: 'BMAD+ is ready! Talk to Atlas to get started ๐',
|
|
52
|
-
guide_credits: 'โจ BMAD+ is created by Laurent Rochetta โ github.com/lrochetta
|
|
52
|
+
guide_credits: 'โจ BMAD+ is created by Laurent Rochetta โ github.com/lrochetta/BMAD-PLUS โจ',
|
|
53
|
+
// Uninstall
|
|
54
|
+
uninstall_confirm: 'Remove BMAD+ from this project?',
|
|
55
|
+
uninstall_removing: 'Removing...',
|
|
56
|
+
uninstall_done: (n) => `โ
BMAD+ removed (${n} items)`,
|
|
57
|
+
uninstall_output_kept: '๐ _bmad-output/ kept (contains files)',
|
|
58
|
+
installed_on: 'installed',
|
|
59
|
+
// Update
|
|
60
|
+
update_confirm: 'Update agents and skills?',
|
|
61
|
+
update_updating: 'Updating agents and skills...',
|
|
62
|
+
update_done: (n) => `โ
${n} files updated`,
|
|
63
|
+
update_current: 'โ
Already up to date!',
|
|
64
|
+
update_ready: 'Update complete! ๐',
|
|
65
|
+
guide_cli_title: 'CLI Commands',
|
|
66
|
+
guide_cli_install: 'โ Install agents & skills',
|
|
67
|
+
guide_cli_update: 'โ Update agents (keeps config)',
|
|
68
|
+
guide_cli_doctor: 'โ Check installation health',
|
|
69
|
+
guide_cli_uninstall: 'โ Remove BMAD+ from project',
|
|
70
|
+
guide_examples_title: 'Quick Examples',
|
|
71
|
+
guide_example_seo: '๐ SEO: "/seo audit https://example.com"',
|
|
72
|
+
guide_example_backup: '๐๏ธ Backup: "/backup create" โ ZIP timestamped',
|
|
73
|
+
guide_example_animated: '๐ฌ Animated: "/animated build hero.mp4"',
|
|
74
|
+
guide_example_osint: '๐ OSINT: "Shadow, investigate John Doe"',
|
|
53
75
|
},
|
|
54
76
|
|
|
55
77
|
fr: {
|
|
56
78
|
flag: '๐ซ๐ท',
|
|
57
79
|
name: 'Franรงais',
|
|
58
80
|
locale: 'fr',
|
|
59
|
-
installer_title: ' BMAD+ Installeur v0.4.
|
|
81
|
+
installer_title: ' BMAD+ Installeur v0.4.4 ',
|
|
60
82
|
select_language: 'Choisissez votre langue',
|
|
61
83
|
installing_to: 'Installation dans',
|
|
62
84
|
select_packs: 'Quels packs installer ? (Core est toujours inclus)',
|
|
@@ -95,14 +117,34 @@ const LANGUAGES = {
|
|
|
95
117
|
guide_or_auto: 'โก Ou : "autopilot" pour tout gรฉrer automatiquement',
|
|
96
118
|
guide_output: '๐ Sortie',
|
|
97
119
|
guide_ready: 'BMAD+ est prรชt ! Parle ร Atlas pour commencer ๐',
|
|
98
|
-
guide_credits: 'โจ BMAD+ est crรฉรฉ par Laurent Rochetta โ github.com/lrochetta
|
|
120
|
+
guide_credits: 'โจ BMAD+ est crรฉรฉ par Laurent Rochetta โ github.com/lrochetta/BMAD-PLUS โจ',
|
|
121
|
+
uninstall_confirm: 'Supprimer BMAD+ de ce projet ?',
|
|
122
|
+
uninstall_removing: 'Suppression...',
|
|
123
|
+
uninstall_done: (n) => `โ
BMAD+ supprimรฉ (${n} รฉlรฉments)`,
|
|
124
|
+
uninstall_output_kept: '๐ _bmad-output/ conservรฉ (contient des fichiers)',
|
|
125
|
+
installed_on: 'installรฉ le',
|
|
126
|
+
update_confirm: 'Mettre ร jour les agents et skills ?',
|
|
127
|
+
update_updating: 'Mise ร jour des agents et skills...',
|
|
128
|
+
update_done: (n) => `โ
${n} fichiers mis ร jour`,
|
|
129
|
+
update_current: 'โ
Dรฉjร ร jour !',
|
|
130
|
+
update_ready: 'Mise ร jour terminรฉe ! ๐',
|
|
131
|
+
guide_cli_title: 'Commandes CLI',
|
|
132
|
+
guide_cli_install: 'โ Installer agents & skills',
|
|
133
|
+
guide_cli_update: 'โ Mettre ร jour (conserve la config)',
|
|
134
|
+
guide_cli_doctor: 'โ Vรฉrifier l\'installation',
|
|
135
|
+
guide_cli_uninstall: 'โ Supprimer BMAD+ du projet',
|
|
136
|
+
guide_examples_title: 'Exemples rapides',
|
|
137
|
+
guide_example_seo: '๐ SEO : "/seo audit https://example.com"',
|
|
138
|
+
guide_example_backup: '๐๏ธ Backup : "/backup create" โ ZIP horodatรฉ',
|
|
139
|
+
guide_example_animated: '๐ฌ Animรฉ : "/animated build hero.mp4"',
|
|
140
|
+
guide_example_osint: '๐ OSINT : "Shadow, investigate John Doe"',
|
|
99
141
|
},
|
|
100
142
|
|
|
101
143
|
es: {
|
|
102
144
|
flag: '๐ช๐ธ',
|
|
103
145
|
name: 'Espaรฑol',
|
|
104
146
|
locale: 'es',
|
|
105
|
-
installer_title: ' BMAD+ Instalador v0.4.
|
|
147
|
+
installer_title: ' BMAD+ Instalador v0.4.4 ',
|
|
106
148
|
select_language: 'Seleccione su idioma',
|
|
107
149
|
installing_to: 'Instalando en',
|
|
108
150
|
select_packs: 'ยฟQuรฉ packs instalar? (Core siempre estรก incluido)',
|
|
@@ -141,14 +183,34 @@ const LANGUAGES = {
|
|
|
141
183
|
guide_or_auto: 'โก O: "autopilot" para gestionar todo automรกticamente',
|
|
142
184
|
guide_output: '๐ Salida',
|
|
143
185
|
guide_ready: 'ยกBMAD+ estรก listo! Habla con Atlas para comenzar ๐',
|
|
144
|
-
guide_credits: 'โจ BMAD+ es creado por Laurent Rochetta โ github.com/lrochetta
|
|
186
|
+
guide_credits: 'โจ BMAD+ es creado por Laurent Rochetta โ github.com/lrochetta/BMAD-PLUS โจ',
|
|
187
|
+
uninstall_confirm: 'ยฟEliminar BMAD+ de este proyecto?',
|
|
188
|
+
uninstall_removing: 'Eliminando...',
|
|
189
|
+
uninstall_done: (n) => `โ
BMAD+ eliminado (${n} elementos)`,
|
|
190
|
+
uninstall_output_kept: '๐ _bmad-output/ conservado (contiene archivos)',
|
|
191
|
+
installed_on: 'instalado el',
|
|
192
|
+
update_confirm: 'ยฟActualizar agentes y habilidades?',
|
|
193
|
+
update_updating: 'Actualizando agentes y habilidades...',
|
|
194
|
+
update_done: (n) => `โ
${n} archivos actualizados`,
|
|
195
|
+
update_current: 'โ
ยกYa estรก actualizado!',
|
|
196
|
+
update_ready: 'ยกActualizaciรณn completada! ๐',
|
|
197
|
+
guide_cli_title: 'Comandos CLI',
|
|
198
|
+
guide_cli_install: 'โ Instalar agentes y habilidades',
|
|
199
|
+
guide_cli_update: 'โ Actualizar (conserva la config)',
|
|
200
|
+
guide_cli_doctor: 'โ Verificar la instalaciรณn',
|
|
201
|
+
guide_cli_uninstall: 'โ Eliminar BMAD+ del proyecto',
|
|
202
|
+
guide_examples_title: 'Ejemplos rรกpidos',
|
|
203
|
+
guide_example_seo: '๐ SEO: "/seo audit https://example.com"',
|
|
204
|
+
guide_example_backup: '๐๏ธ Backup: "/backup create" โ ZIP con marca de tiempo',
|
|
205
|
+
guide_example_animated: '๐ฌ Animado: "/animated build hero.mp4"',
|
|
206
|
+
guide_example_osint: '๐ OSINT: "Shadow, investigate John Doe"',
|
|
145
207
|
},
|
|
146
208
|
|
|
147
209
|
de: {
|
|
148
210
|
flag: '๐ฉ๐ช',
|
|
149
211
|
name: 'Deutsch',
|
|
150
212
|
locale: 'de',
|
|
151
|
-
installer_title: ' BMAD+ Installer v0.4.
|
|
213
|
+
installer_title: ' BMAD+ Installer v0.4.4 ',
|
|
152
214
|
select_language: 'Wรคhlen Sie Ihre Sprache',
|
|
153
215
|
installing_to: 'Installiere in',
|
|
154
216
|
select_packs: 'Welche Packs installieren? (Core ist immer enthalten)',
|
|
@@ -187,14 +249,34 @@ const LANGUAGES = {
|
|
|
187
249
|
guide_or_auto: 'โก Oder: "autopilot" fรผr vollautomatische Verwaltung',
|
|
188
250
|
guide_output: '๐ Ausgabe',
|
|
189
251
|
guide_ready: 'BMAD+ ist bereit! Sprich mit Atlas um loszulegen ๐',
|
|
190
|
-
guide_credits: 'โจ BMAD+ wurde erstellt von Laurent Rochetta โ github.com/lrochetta
|
|
252
|
+
guide_credits: 'โจ BMAD+ wurde erstellt von Laurent Rochetta โ github.com/lrochetta/BMAD-PLUS โจ',
|
|
253
|
+
uninstall_confirm: 'BMAD+ aus diesem Projekt entfernen?',
|
|
254
|
+
uninstall_removing: 'Entfernen...',
|
|
255
|
+
uninstall_done: (n) => `โ
BMAD+ entfernt (${n} Elemente)`,
|
|
256
|
+
uninstall_output_kept: '๐ _bmad-output/ beibehalten (enthรคlt Dateien)',
|
|
257
|
+
installed_on: 'installiert am',
|
|
258
|
+
update_confirm: 'Agenten und Skills aktualisieren?',
|
|
259
|
+
update_updating: 'Agenten und Skills werden aktualisiert...',
|
|
260
|
+
update_done: (n) => `โ
${n} Dateien aktualisiert`,
|
|
261
|
+
update_current: 'โ
Bereits aktuell!',
|
|
262
|
+
update_ready: 'Update abgeschlossen! ๐',
|
|
263
|
+
guide_cli_title: 'CLI-Befehle',
|
|
264
|
+
guide_cli_install: 'โ Agenten & Skills installieren',
|
|
265
|
+
guide_cli_update: 'โ Aktualisieren (Konfiguration bleibt)',
|
|
266
|
+
guide_cli_doctor: 'โ Installation prรผfen',
|
|
267
|
+
guide_cli_uninstall: 'โ BMAD+ vom Projekt entfernen',
|
|
268
|
+
guide_examples_title: 'Schnellbeispiele',
|
|
269
|
+
guide_example_seo: '๐ SEO: "/seo audit https://example.com"',
|
|
270
|
+
guide_example_backup: '๐๏ธ Backup: "/backup create" โ ZIP mit Zeitstempel',
|
|
271
|
+
guide_example_animated: '๐ฌ Animiert: "/animated build hero.mp4"',
|
|
272
|
+
guide_example_osint: '๐ OSINT: "Shadow, investigate John Doe"',
|
|
191
273
|
},
|
|
192
274
|
|
|
193
275
|
'pt-br': {
|
|
194
276
|
flag: '๐ง๐ท',
|
|
195
277
|
name: 'Portuguรชs (Brasil)',
|
|
196
278
|
locale: 'pt-BR',
|
|
197
|
-
installer_title: ' BMAD+ Instalador v0.4.
|
|
279
|
+
installer_title: ' BMAD+ Instalador v0.4.4 ',
|
|
198
280
|
select_language: 'Selecione seu idioma',
|
|
199
281
|
installing_to: 'Instalando em',
|
|
200
282
|
select_packs: 'Quais packs instalar? (Core sempre estรก incluรญdo)',
|
|
@@ -233,14 +315,34 @@ const LANGUAGES = {
|
|
|
233
315
|
guide_or_auto: 'โก Ou: "autopilot" para gerenciar tudo automaticamente',
|
|
234
316
|
guide_output: '๐ Saรญda',
|
|
235
317
|
guide_ready: 'BMAD+ estรก pronto! Fale com Atlas para comeรงar ๐',
|
|
236
|
-
guide_credits: 'โจ BMAD+ foi criado por Laurent Rochetta โ github.com/lrochetta
|
|
318
|
+
guide_credits: 'โจ BMAD+ foi criado por Laurent Rochetta โ github.com/lrochetta/BMAD-PLUS โจ',
|
|
319
|
+
uninstall_confirm: 'Remover BMAD+ deste projeto?',
|
|
320
|
+
uninstall_removing: 'Removendo...',
|
|
321
|
+
uninstall_done: (n) => `โ
BMAD+ removido (${n} itens)`,
|
|
322
|
+
uninstall_output_kept: '๐ _bmad-output/ mantido (contรฉm arquivos)',
|
|
323
|
+
installed_on: 'instalado em',
|
|
324
|
+
update_confirm: 'Atualizar agentes e habilidades?',
|
|
325
|
+
update_updating: 'Atualizando agentes e habilidades...',
|
|
326
|
+
update_done: (n) => `โ
${n} arquivos atualizados`,
|
|
327
|
+
update_current: 'โ
Jรก estรก atualizado!',
|
|
328
|
+
update_ready: 'Atualizaรงรฃo concluรญda! ๐',
|
|
329
|
+
guide_cli_title: 'Comandos CLI',
|
|
330
|
+
guide_cli_install: 'โ Instalar agentes e habilidades',
|
|
331
|
+
guide_cli_update: 'โ Atualizar (mantรฉm config)',
|
|
332
|
+
guide_cli_doctor: 'โ Verificar instalaรงรฃo',
|
|
333
|
+
guide_cli_uninstall: 'โ Remover BMAD+ do projeto',
|
|
334
|
+
guide_examples_title: 'Exemplos rรกpidos',
|
|
335
|
+
guide_example_seo: '๐ SEO: "/seo audit https://example.com"',
|
|
336
|
+
guide_example_backup: '๐๏ธ Backup: "/backup create" โ ZIP com timestamp',
|
|
337
|
+
guide_example_animated: '๐ฌ Animado: "/animated build hero.mp4"',
|
|
338
|
+
guide_example_osint: '๐ OSINT: "Shadow, investigate John Doe"',
|
|
237
339
|
},
|
|
238
340
|
|
|
239
341
|
ru: {
|
|
240
342
|
flag: '๐ท๐บ',
|
|
241
343
|
name: 'ะ ัััะบะธะน',
|
|
242
344
|
locale: 'ru',
|
|
243
|
-
installer_title: ' BMAD+ ะฃััะฐะฝะพะฒัะธะบ v0.4.
|
|
345
|
+
installer_title: ' BMAD+ ะฃััะฐะฝะพะฒัะธะบ v0.4.4 ',
|
|
244
346
|
select_language: 'ะัะฑะตัะธัะต ัะทัะบ',
|
|
245
347
|
installing_to: 'ะฃััะฐะฝะพะฒะบะฐ ะฒ',
|
|
246
348
|
select_packs: 'ะะฐะบะธะต ะฟะฐะบะตัั ัััะฐะฝะพะฒะธัั? (Core ะฒัะตะณะดะฐ ะฒะบะปัััะฝ)',
|
|
@@ -279,14 +381,34 @@ const LANGUAGES = {
|
|
|
279
381
|
guide_or_auto: 'โก ะะปะธ: "autopilot" ะดะปั ะฟะพะปะฝะพะน ะฐะฒัะพะผะฐัะธะทะฐัะธะธ',
|
|
280
382
|
guide_output: '๐ ะัะฒะพะด',
|
|
281
383
|
guide_ready: 'BMAD+ ะณะพัะพะฒ! ะะพะณะพะฒะพัะธัะต ั Atlas ััะพะฑั ะฝะฐัะฐัั ๐',
|
|
282
|
-
guide_credits: 'โจ BMAD+ ัะพะทะดะฐะฝ Laurent Rochetta โ github.com/lrochetta
|
|
384
|
+
guide_credits: 'โจ BMAD+ ัะพะทะดะฐะฝ Laurent Rochetta โ github.com/lrochetta/BMAD-PLUS โจ',
|
|
385
|
+
uninstall_confirm: 'ะฃะดะฐะปะธัั BMAD+ ะธะท ััะพะณะพ ะฟัะพะตะบัะฐ?',
|
|
386
|
+
uninstall_removing: 'ะฃะดะฐะปะตะฝะธะต...',
|
|
387
|
+
uninstall_done: (n) => `โ
BMAD+ ัะดะฐะปัะฝ (${n} ัะปะตะผะตะฝัะพะฒ)`,
|
|
388
|
+
uninstall_output_kept: '๐ _bmad-output/ ัะพั
ัะฐะฝัะฝ (ัะพะดะตัะถะธั ัะฐะนะปั)',
|
|
389
|
+
installed_on: 'ัััะฐะฝะพะฒะปะตะฝะพ',
|
|
390
|
+
update_confirm: 'ะะฑะฝะพะฒะธัั ะฐะณะตะฝัะพะฒ ะธ ะฝะฐะฒัะบะธ?',
|
|
391
|
+
update_updating: 'ะะฑะฝะพะฒะปะตะฝะธะต ะฐะณะตะฝัะพะฒ ะธ ะฝะฐะฒัะบะพะฒ...',
|
|
392
|
+
update_done: (n) => `โ
${n} ัะฐะนะปะพะฒ ะพะฑะฝะพะฒะปะตะฝะพ`,
|
|
393
|
+
update_current: 'โ
ะฃะถะต ะฐะบััะฐะปัะฝะพ!',
|
|
394
|
+
update_ready: 'ะะฑะฝะพะฒะปะตะฝะธะต ะทะฐะฒะตััะตะฝะพ! ๐',
|
|
395
|
+
guide_cli_title: 'ะะพะผะฐะฝะดั CLI',
|
|
396
|
+
guide_cli_install: 'โ ะฃััะฐะฝะพะฒะธัั ะฐะณะตะฝัะพะฒ',
|
|
397
|
+
guide_cli_update: 'โ ะะฑะฝะพะฒะธัั (ัะพั
ัะฐะฝะธัั ะบะพะฝัะธะณ)',
|
|
398
|
+
guide_cli_doctor: 'โ ะัะพะฒะตัะธัั ัััะฐะฝะพะฒะบั',
|
|
399
|
+
guide_cli_uninstall: 'โ ะฃะดะฐะปะธัั BMAD+',
|
|
400
|
+
guide_examples_title: 'ะัััััะต ะฟัะธะผะตัั',
|
|
401
|
+
guide_example_seo: '๐ SEO: "/seo audit https://example.com"',
|
|
402
|
+
guide_example_backup: '๐๏ธ ะัะบะฐะฟ: "/backup create" โ ZIP',
|
|
403
|
+
guide_example_animated: '๐ฌ ะะฝะธะผะฐัะธั: "/animated build hero.mp4"',
|
|
404
|
+
guide_example_osint: '๐ OSINT: "Shadow, investigate John Doe"',
|
|
283
405
|
},
|
|
284
406
|
|
|
285
407
|
zh: {
|
|
286
408
|
flag: '๐จ๐ณ',
|
|
287
409
|
name: 'ไธญๆ (็ฎไฝ)',
|
|
288
410
|
locale: 'zh-CN',
|
|
289
|
-
installer_title: ' BMAD+ ๅฎ่ฃ
็จๅบ v0.4.
|
|
411
|
+
installer_title: ' BMAD+ ๅฎ่ฃ
็จๅบ v0.4.4 ',
|
|
290
412
|
select_language: '้ๆฉๆจ็่ฏญ่จ',
|
|
291
413
|
installing_to: 'ๅฎ่ฃ
ๅฐ',
|
|
292
414
|
select_packs: 'ๅฎ่ฃ
ๅชไบๅ
๏ผ๏ผCore ๅง็ปๅ
ๅซ๏ผ',
|
|
@@ -325,14 +447,34 @@ const LANGUAGES = {
|
|
|
325
447
|
guide_or_auto: 'โก ๆ่
๏ผ"autopilot" ๅ
จ่ชๅจ็ฎก็',
|
|
326
448
|
guide_output: '๐ ่พๅบ',
|
|
327
449
|
guide_ready: 'BMAD+ ๅทฒๅฐฑ็ปช๏ผไธ Atlas ไบค่ฐๅผๅง ๐',
|
|
328
|
-
guide_credits: 'โจ BMAD+ ็ฑ Laurent Rochetta ๅๅปบ โ github.com/lrochetta
|
|
450
|
+
guide_credits: 'โจ BMAD+ ็ฑ Laurent Rochetta ๅๅปบ โ github.com/lrochetta/BMAD-PLUS โจ',
|
|
451
|
+
uninstall_confirm: 'ไปๆญค้กน็ฎไธญๅ ้ค BMAD+๏ผ',
|
|
452
|
+
uninstall_removing: 'ๅ ้คไธญ...',
|
|
453
|
+
uninstall_done: (n) => `โ
BMAD+ ๅทฒๅ ้ค๏ผ${n} ้กน๏ผ`,
|
|
454
|
+
uninstall_output_kept: '๐ _bmad-output/ ๅทฒไฟ็๏ผๅ
ๅซๆไปถ๏ผ',
|
|
455
|
+
installed_on: 'ๅฎ่ฃ
ไบ',
|
|
456
|
+
update_confirm: 'ๆดๆฐไปฃ็ๅๆ่ฝ๏ผ',
|
|
457
|
+
update_updating: 'ๆญฃๅจๆดๆฐไปฃ็ๅๆ่ฝ...',
|
|
458
|
+
update_done: (n) => `โ
${n} ไธชๆไปถๅทฒๆดๆฐ`,
|
|
459
|
+
update_current: 'โ
ๅทฒๆฏๆๆฐ็ๆฌ๏ผ',
|
|
460
|
+
update_ready: 'ๆดๆฐๅฎๆ๏ผ๐',
|
|
461
|
+
guide_cli_title: 'CLI ๅฝไปค',
|
|
462
|
+
guide_cli_install: 'โ ๅฎ่ฃ
ไปฃ็ๅๆ่ฝ',
|
|
463
|
+
guide_cli_update: 'โ ๆดๆฐ๏ผไฟ็้
็ฝฎ๏ผ',
|
|
464
|
+
guide_cli_doctor: 'โ ๆฃๆฅๅฎ่ฃ
',
|
|
465
|
+
guide_cli_uninstall: 'โ ๅ ้ค BMAD+',
|
|
466
|
+
guide_examples_title: 'ๅฟซ้็คบไพ',
|
|
467
|
+
guide_example_seo: '๐ SEO: "/seo audit https://example.com"',
|
|
468
|
+
guide_example_backup: '๐๏ธ ๅคไปฝ: "/backup create" โ ZIP',
|
|
469
|
+
guide_example_animated: '๐ฌ ๅจ็ป: "/animated build hero.mp4"',
|
|
470
|
+
guide_example_osint: '๐ OSINT: "Shadow, investigate John Doe"',
|
|
329
471
|
},
|
|
330
472
|
|
|
331
473
|
he: {
|
|
332
474
|
flag: '๐ฎ๐ฑ',
|
|
333
475
|
name: 'ืขืืจืืช',
|
|
334
476
|
locale: 'he',
|
|
335
|
-
installer_title: ' BMAD+ ืืชืงืื v0.4.
|
|
477
|
+
installer_title: ' BMAD+ ืืชืงืื v0.4.4 ',
|
|
336
478
|
select_language: 'ืืืจ ืืช ืืฉืคื ืฉืื',
|
|
337
479
|
installing_to: 'ืืชืงืื ื',
|
|
338
480
|
select_packs: 'ืืืื ืืืืืืช ืืืชืงืื? (Core ืชืืื ืืืื)',
|
|
@@ -371,14 +513,34 @@ const LANGUAGES = {
|
|
|
371
513
|
guide_or_auto: 'โก ืื: "autopilot" ืื ืืืื ืืืืืืื ืืื',
|
|
372
514
|
guide_output: '๐ ืคืื',
|
|
373
515
|
guide_ready: '!BMAD+ ืืืื! ืืืจ ืขื Atlas ืืื ืืืชืืื ๐',
|
|
374
|
-
guide_credits: 'โจ BMAD+ ื ืืฆืจ ืขื ืืื Laurent Rochetta โ github.com/lrochetta
|
|
516
|
+
guide_credits: 'โจ BMAD+ ื ืืฆืจ ืขื ืืื Laurent Rochetta โ github.com/lrochetta/BMAD-PLUS โจ',
|
|
517
|
+
uninstall_confirm: 'ืืืกืืจ ืืช BMAD+ ืืืคืจืืืงื ืืื?',
|
|
518
|
+
uninstall_removing: 'ืืกืืจ...',
|
|
519
|
+
uninstall_done: (n) => `โ
BMAD+ ืืืกืจ (${n} ืคืจืืืื)`,
|
|
520
|
+
uninstall_output_kept: '๐ _bmad-output/ ื ืฉืืจ (ืืืื ืงืืฆืื)',
|
|
521
|
+
installed_on: 'ืืืชืงื ื',
|
|
522
|
+
update_confirm: 'ืืขืืื ืกืืื ืื ืืืืฉืืจืื?',
|
|
523
|
+
update_updating: 'ืืขืืื ืกืืื ืื ืืืืฉืืจืื...',
|
|
524
|
+
update_done: (n) => `โ
${n} ืงืืฆืื ืขืืืื ื`,
|
|
525
|
+
update_current: 'โ
ืืืจ ืืขืืืื!',
|
|
526
|
+
update_ready: 'ืืขืืืื ืืืฉืื! ๐',
|
|
527
|
+
guide_cli_title: 'ืคืงืืืืช CLI',
|
|
528
|
+
guide_cli_install: 'โ ืืชืงื ืช ืกืืื ืื',
|
|
529
|
+
guide_cli_update: 'โ ืขืืืื (ืฉืืืจ ืชืฆืืจื)',
|
|
530
|
+
guide_cli_doctor: 'โ ืืืืงืช ืืชืงื ื',
|
|
531
|
+
guide_cli_uninstall: 'โ ืืกืจืช BMAD+',
|
|
532
|
+
guide_examples_title: 'ืืืืืืืช ืืืืจืืช',
|
|
533
|
+
guide_example_seo: '๐ SEO: "/seo audit https://example.com"',
|
|
534
|
+
guide_example_backup: '๐๏ธ ืืืืื: "/backup create" โ ZIP',
|
|
535
|
+
guide_example_animated: '๐ฌ ืื ืืืฆืื: "/animated build hero.mp4"',
|
|
536
|
+
guide_example_osint: '๐ OSINT: "Shadow, investigate John Doe"',
|
|
375
537
|
},
|
|
376
538
|
|
|
377
539
|
ja: {
|
|
378
540
|
flag: '๐ฏ๐ต',
|
|
379
541
|
name: 'ๆฅๆฌ่ช',
|
|
380
542
|
locale: 'ja',
|
|
381
|
-
installer_title: ' BMAD+ ใคใณในใใผใฉใผ v0.4.
|
|
543
|
+
installer_title: ' BMAD+ ใคใณในใใผใฉใผ v0.4.4 ',
|
|
382
544
|
select_language: '่จ่ชใ้ธๆใใฆใใ ใใ',
|
|
383
545
|
installing_to: 'ใคใณในใใผใซๅ
',
|
|
384
546
|
select_packs: 'ใฉใฎใใใฏใใคใณในใใผใซใใพใใ๏ผ๏ผCoreใฏๅธธใซๅซใพใใพใ๏ผ',
|
|
@@ -417,14 +579,34 @@ const LANGUAGES = {
|
|
|
417
579
|
guide_or_auto: 'โก ใพใใฏ: "autopilot" ใงๅ
จ่ชๅ็ฎก็',
|
|
418
580
|
guide_output: '๐ ๅบๅ',
|
|
419
581
|
guide_ready: 'BMAD+ ๆบๅๅฎไบ๏ผAtlasใซ่ฉฑใใใใฆๅงใใพใใใ ๐',
|
|
420
|
-
guide_credits: 'โจ BMAD+ ใฏ Laurent Rochetta ใซใใฃใฆไฝๆใใใพใใ โ github.com/lrochetta
|
|
582
|
+
guide_credits: 'โจ BMAD+ ใฏ Laurent Rochetta ใซใใฃใฆไฝๆใใใพใใ โ github.com/lrochetta/BMAD-PLUS โจ',
|
|
583
|
+
uninstall_confirm: 'ใใฎใใญใธใงใฏใใใBMAD+ใๅ้คใใพใใ๏ผ',
|
|
584
|
+
uninstall_removing: 'ๅ้คไธญ...',
|
|
585
|
+
uninstall_done: (n) => `โ
BMAD+ใๅ้คใใพใใ๏ผ${n}้
็ฎ๏ผ`,
|
|
586
|
+
uninstall_output_kept: '๐ _bmad-output/ ใฏไฟๆใใใพใใ๏ผใใกใคใซใๅซใพใใฆใใพใ๏ผ',
|
|
587
|
+
installed_on: 'ใคใณในใใผใซๆฅ',
|
|
588
|
+
update_confirm: 'ใจใผใธใงใณใใจในใญใซใๆดๆฐใใพใใ๏ผ',
|
|
589
|
+
update_updating: 'ใจใผใธใงใณใใจในใญใซใๆดๆฐไธญ...',
|
|
590
|
+
update_done: (n) => `โ
${n}ใใกใคใซใๆดๆฐใใพใใ`,
|
|
591
|
+
update_current: 'โ
ๆๆฐใฎ็ถๆ
ใงใ๏ผ',
|
|
592
|
+
update_ready: 'ใขใใใใผใๅฎไบ๏ผ๐',
|
|
593
|
+
guide_cli_title: 'CLIใณใใณใ',
|
|
594
|
+
guide_cli_install: 'โ ใจใผใธใงใณใใใคใณในใใผใซ',
|
|
595
|
+
guide_cli_update: 'โ ๆดๆฐ๏ผ่จญๅฎไฟๆ๏ผ',
|
|
596
|
+
guide_cli_doctor: 'โ ใคใณในใใผใซ็ขบ่ช',
|
|
597
|
+
guide_cli_uninstall: 'โ BMAD+ใๅ้ค',
|
|
598
|
+
guide_examples_title: 'ใฏใคใใฏไพ',
|
|
599
|
+
guide_example_seo: '๐ SEO: "/seo audit https://example.com"',
|
|
600
|
+
guide_example_backup: '๐๏ธ ใใใฏใขใใ: "/backup create" โ ZIP',
|
|
601
|
+
guide_example_animated: '๐ฌ ใขใใก: "/animated build hero.mp4"',
|
|
602
|
+
guide_example_osint: '๐ OSINT: "Shadow, investigate John Doe"',
|
|
421
603
|
},
|
|
422
604
|
|
|
423
605
|
it: {
|
|
424
606
|
flag: '๐ฎ๐น',
|
|
425
607
|
name: 'Italiano',
|
|
426
608
|
locale: 'it',
|
|
427
|
-
installer_title: ' BMAD+ Installatore v0.4.
|
|
609
|
+
installer_title: ' BMAD+ Installatore v0.4.4 ',
|
|
428
610
|
select_language: 'Seleziona la tua lingua',
|
|
429
611
|
installing_to: 'Installazione in',
|
|
430
612
|
select_packs: 'Quali pack installare? (Core รจ sempre incluso)',
|
|
@@ -463,7 +645,27 @@ const LANGUAGES = {
|
|
|
463
645
|
guide_or_auto: 'โก Oppure: "autopilot" per gestire tutto automaticamente',
|
|
464
646
|
guide_output: '๐ Output',
|
|
465
647
|
guide_ready: 'BMAD+ รจ pronto! Parla con Atlas per iniziare ๐',
|
|
466
|
-
guide_credits: 'โจ BMAD+ รจ creato da Laurent Rochetta โ github.com/lrochetta
|
|
648
|
+
guide_credits: 'โจ BMAD+ รจ creato da Laurent Rochetta โ github.com/lrochetta/BMAD-PLUS โจ',
|
|
649
|
+
uninstall_confirm: 'Rimuovere BMAD+ da questo progetto?',
|
|
650
|
+
uninstall_removing: 'Rimozione...',
|
|
651
|
+
uninstall_done: (n) => `โ
BMAD+ rimosso (${n} elementi)`,
|
|
652
|
+
uninstall_output_kept: '๐ _bmad-output/ conservato (contiene file)',
|
|
653
|
+
installed_on: 'installato il',
|
|
654
|
+
update_confirm: 'Aggiornare agenti e skill?',
|
|
655
|
+
update_updating: 'Aggiornamento agenti e skill...',
|
|
656
|
+
update_done: (n) => `โ
${n} file aggiornati`,
|
|
657
|
+
update_current: 'โ
Giร aggiornato!',
|
|
658
|
+
update_ready: 'Aggiornamento completato! ๐',
|
|
659
|
+
guide_cli_title: 'Comandi CLI',
|
|
660
|
+
guide_cli_install: 'โ Installa agenti e skill',
|
|
661
|
+
guide_cli_update: 'โ Aggiorna (mantiene la config)',
|
|
662
|
+
guide_cli_doctor: 'โ Verifica installazione',
|
|
663
|
+
guide_cli_uninstall: 'โ Rimuovi BMAD+ dal progetto',
|
|
664
|
+
guide_examples_title: 'Esempi rapidi',
|
|
665
|
+
guide_example_seo: '๐ SEO: "/seo audit https://example.com"',
|
|
666
|
+
guide_example_backup: '๐๏ธ Backup: "/backup create" โ ZIP con timestamp',
|
|
667
|
+
guide_example_animated: '๐ฌ Animato: "/animated build hero.mp4"',
|
|
668
|
+
guide_example_osint: '๐ OSINT: "Shadow, investigate John Doe"',
|
|
467
669
|
},
|
|
468
670
|
};
|
|
469
671
|
|