bmad-plus 0.22.0 → 0.23.1
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 +59 -0
- package/README.md +46 -26
- package/SECURITY.md +1 -1
- package/osint-agent-package/agents/osint-investigator.md +3 -3
- package/osint-agent-package/skills/bmad-osint-investigate/osint/SKILL.md +51 -51
- package/osint-agent-package/skills/bmad-osint-investigate/osint/references/content-extraction.md +7 -7
- package/osint-agent-package/skills/bmad-osint-investigate/osint/references/platforms.md +2 -2
- package/osint-agent-package/skills/bmad-osint-investigate/osint/references/tools.md +31 -41
- package/package.json +24 -5
- package/readme-international/README.de.md +46 -26
- package/readme-international/README.es.md +47 -27
- package/readme-international/README.fr.md +46 -26
- package/src/bmad-plus/agents/agent-maker/SKILL.md +39 -14
- package/src/bmad-plus/agents/agent-orchestrator/SKILL.md +5 -1
- package/src/bmad-plus/data/role-triggers.yaml +34 -0
- package/src/bmad-plus/module-help.csv +2 -0
- package/src/bmad-plus/module.yaml +26 -4
- package/src/bmad-plus/packs/pack-animated/animated-website-agent.md +40 -14
- package/src/bmad-plus/packs/pack-animated/templates/animated-website-workflow.md +15 -12
- package/src/bmad-plus/packs/pack-backup/backup-agent.md +2 -1
- package/src/bmad-plus/packs/pack-backup/templates/backup-workflow.md +2 -0
- package/src/bmad-plus/packs/pack-design/SKILL.md +72 -0
- package/src/bmad-plus/packs/pack-design/bmad-skill-manifest.yaml +13 -0
- package/src/bmad-plus/packs/pack-design/design-engine.md +126 -0
- package/src/bmad-plus/packs/pack-design/intake.yaml +105 -0
- package/src/bmad-plus/packs/pack-memory/zecher-agent.md +1 -1
- package/src/bmad-plus/packs/pack-shield/README.md +1 -1
- package/src/bmad-plus/packs/pack-shield/SKILL.md +3 -3
- package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/pci-dss-agent.md +1 -1
- package/src/bmad-plus/packs/pack-shield/shield-orchestrator.md +2 -2
- package/src/bmad-plus/skills/bmad-plus-autopilot/SKILL.md +7 -0
- package/src/bmad-plus/skills/bmad-plus-intake/SKILL.md +87 -0
- package/src/bmad-plus/skills/bmad-plus-intake/ref/intake-format.md +112 -0
- package/src/bmad-plus/skills/bmad-plus-parallel/SKILL.md +18 -0
- package/src/bmad-plus/skills/bmad-plus-swarm/SKILL.md +115 -0
- package/src/bmad-plus/skills/bmad-plus-swarm/ref/definition.md +188 -0
- package/tools/build/adapters.config.js +3 -1
- package/tools/build/generate-adapters.js +26 -2
- package/tools/build/generate.js +269 -7
- package/tools/build/intake-contract.js +522 -0
- package/tools/cli/bmad-plus-cli.js +2 -0
- package/tools/cli/commands/install.js +45 -11
- package/tools/cli/commands/intake.js +124 -0
- package/tools/cli/commands/nexus.js +2 -1
- package/tools/cli/commands/review.js +1 -1
- package/tools/cli/commands/swarm.js +119 -0
- package/tools/cli/commands/uninstall.js +17 -0
- package/tools/cli/commands/update.js +30 -1
- package/tools/cli/i18n.js +50 -30
- package/tools/cli/lib/intake.js +202 -0
- package/tools/cli/lib/pack-copy.js +95 -5
- package/tools/cli/lib/packs.js +102 -12
- package/tools/cli/lib/review.js +2 -1
- package/tools/cli/lib/swarm-deal.js +116 -0
- package/tools/cli/lib/swarm-defaults.js +6 -0
- package/tools/cli/lib/swarm-tally.js +195 -0
- package/tools/cli/lib/swarm-validate.js +589 -0
- package/tools/cli/lib/swarm.js +712 -0
- package/tools/cli/lib/update-dispatch.js +10 -2
- package/tools/cli/lib/update-transaction.js +9 -6
|
@@ -24,6 +24,14 @@ function refusal(reason, detail) {
|
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
/**
|
|
28
|
+
* One refusal for an `--auto` request, wherever it is evaluated: a policy that
|
|
29
|
+
* is not in `auto` mode never reads as the generic `approval-required` status.
|
|
30
|
+
*/
|
|
31
|
+
function autoRefusal(reason) {
|
|
32
|
+
return refusal(reason === 'approval-required' ? 'automatic-updates-not-authorized' : reason);
|
|
33
|
+
}
|
|
34
|
+
|
|
27
35
|
function requirePolicy(policy, targetVersion, auto) {
|
|
28
36
|
if (policy.registry !== OFFICIAL_REGISTRY) throw refusal('unsupported-registry');
|
|
29
37
|
if (policy.mode === 'off') throw refusal('updates-disabled');
|
|
@@ -31,7 +39,7 @@ function requirePolicy(policy, targetVersion, auto) {
|
|
|
31
39
|
throw refusal('prerelease-not-allowed');
|
|
32
40
|
if (auto) {
|
|
33
41
|
const authorization = authorizeTarget(policy, targetVersion);
|
|
34
|
-
if (!authorization.allowed) throw
|
|
42
|
+
if (!authorization.allowed) throw autoRefusal(authorization.reason);
|
|
35
43
|
}
|
|
36
44
|
}
|
|
37
45
|
|
|
@@ -179,4 +187,4 @@ async function runLatestUpdate({ projectDir, auto = false, yes = false }, inject
|
|
|
179
187
|
};
|
|
180
188
|
}
|
|
181
189
|
|
|
182
|
-
module.exports = { runLatestUpdate };
|
|
190
|
+
module.exports = { runLatestUpdate, autoRefusal };
|
|
@@ -78,11 +78,15 @@ function collectManagedFiles({ projectDir, packageRoot = DEFAULT_PACKAGE_ROOT, p
|
|
|
78
78
|
pack: PACKS[id],
|
|
79
79
|
});
|
|
80
80
|
for (const entry of entries.files)
|
|
81
|
-
files.set(relativeFile(projectDir, entry.target),
|
|
81
|
+
files.set(relativeFile(projectDir, entry.target), {
|
|
82
|
+
source: entry.source,
|
|
83
|
+
root: entry.root || packageRoot,
|
|
84
|
+
});
|
|
82
85
|
}
|
|
83
|
-
for (const file of MODULE_FILES)
|
|
84
|
-
|
|
85
|
-
|
|
86
|
+
for (const file of MODULE_FILES)
|
|
87
|
+
files.set(file, { source: path.join(bmadSrc, path.basename(file)), root: packageRoot });
|
|
88
|
+
return [...files].map(([file, { source, root }]) => {
|
|
89
|
+
safeTarget(root, relativeFile(root, source));
|
|
86
90
|
return { file, content: fs.readFileSync(source), kind: 'pack' };
|
|
87
91
|
});
|
|
88
92
|
}
|
|
@@ -260,8 +264,7 @@ function planUpdate({
|
|
|
260
264
|
for (const { file } of files) safeTarget(projectDir, file);
|
|
261
265
|
if (auto && (legacy || conflicts.length))
|
|
262
266
|
throw new Error(
|
|
263
|
-
'
|
|
264
|
-
(legacy ? 'legacy ownership inventory' : 'local file conflicts')
|
|
267
|
+
'Update refused: ' + (legacy ? 'legacy ownership inventory' : 'local file conflicts') + '.'
|
|
265
268
|
);
|
|
266
269
|
return {
|
|
267
270
|
projectDir,
|