bmad-method 4.35.3 → 4.36.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.
Files changed (26) hide show
  1. package/.github/workflows/discord.yaml +16 -0
  2. package/.github/workflows/release.yaml +1 -1
  3. package/CHANGELOG.md +14 -2
  4. package/README.md +36 -3
  5. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/Complete AI Agent System - Flowchart.svg +102 -0
  6. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash copy.txt +13 -0
  7. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash.txt +13 -0
  8. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.2 Agent Development Kit Installation/1.2.2 - Basic Project Structure - txt.txt +25 -0
  9. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.1 - settings.py +34 -0
  10. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.2 - main.py - Base Application.py +70 -0
  11. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.4 Deployment Configuration/1.4.2 - cloudbuild.yaml +26 -0
  12. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/README.md +109 -0
  13. package/package.json +2 -2
  14. package/tools/flattener/aggregate.js +76 -0
  15. package/tools/flattener/binary.js +53 -0
  16. package/tools/flattener/discovery.js +70 -0
  17. package/tools/flattener/files.js +35 -0
  18. package/tools/flattener/ignoreRules.js +176 -0
  19. package/tools/flattener/main.js +113 -466
  20. package/tools/flattener/projectRoot.js +45 -0
  21. package/tools/flattener/prompts.js +44 -0
  22. package/tools/flattener/stats.js +30 -0
  23. package/tools/flattener/xml.js +86 -0
  24. package/tools/installer/package.json +1 -1
  25. package/tools/shared/bannerArt.js +105 -0
  26. package/tools/installer/package-lock.json +0 -906
@@ -0,0 +1,176 @@
1
+ const fs = require("fs-extra");
2
+ const path = require("node:path");
3
+ const ignore = require("ignore");
4
+
5
+ // Central default ignore patterns for discovery and filtering.
6
+ // These complement .gitignore and are applied regardless of VCS presence.
7
+ const DEFAULT_PATTERNS = [
8
+ // Project/VCS
9
+ "**/.bmad-core/**",
10
+ "**/.git/**",
11
+ "**/.svn/**",
12
+ "**/.hg/**",
13
+ "**/.bzr/**",
14
+ // Package/build outputs
15
+ "**/node_modules/**",
16
+ "**/bower_components/**",
17
+ "**/vendor/**",
18
+ "**/packages/**",
19
+ "**/build/**",
20
+ "**/dist/**",
21
+ "**/out/**",
22
+ "**/target/**",
23
+ "**/bin/**",
24
+ "**/obj/**",
25
+ "**/release/**",
26
+ "**/debug/**",
27
+ // Environments
28
+ "**/.venv/**",
29
+ "**/venv/**",
30
+ "**/.virtualenv/**",
31
+ "**/virtualenv/**",
32
+ "**/env/**",
33
+ // Logs & coverage
34
+ "**/*.log",
35
+ "**/npm-debug.log*",
36
+ "**/yarn-debug.log*",
37
+ "**/yarn-error.log*",
38
+ "**/lerna-debug.log*",
39
+ "**/coverage/**",
40
+ "**/.nyc_output/**",
41
+ "**/.coverage/**",
42
+ "**/test-results/**",
43
+ // Caches & temp
44
+ "**/.cache/**",
45
+ "**/.tmp/**",
46
+ "**/.temp/**",
47
+ "**/tmp/**",
48
+ "**/temp/**",
49
+ "**/.sass-cache/**",
50
+ // IDE/editor
51
+ "**/.vscode/**",
52
+ "**/.idea/**",
53
+ "**/*.swp",
54
+ "**/*.swo",
55
+ "**/*~",
56
+ "**/.project",
57
+ "**/.classpath",
58
+ "**/.settings/**",
59
+ "**/*.sublime-project",
60
+ "**/*.sublime-workspace",
61
+ // Lockfiles
62
+ "**/package-lock.json",
63
+ "**/yarn.lock",
64
+ "**/pnpm-lock.yaml",
65
+ "**/composer.lock",
66
+ "**/Pipfile.lock",
67
+ // Python/Java/compiled artifacts
68
+ "**/*.pyc",
69
+ "**/*.pyo",
70
+ "**/*.pyd",
71
+ "**/__pycache__/**",
72
+ "**/*.class",
73
+ "**/*.jar",
74
+ "**/*.war",
75
+ "**/*.ear",
76
+ "**/*.o",
77
+ "**/*.so",
78
+ "**/*.dll",
79
+ "**/*.exe",
80
+ // System junk
81
+ "**/lib64/**",
82
+ "**/.venv/lib64/**",
83
+ "**/venv/lib64/**",
84
+ "**/_site/**",
85
+ "**/.jekyll-cache/**",
86
+ "**/.jekyll-metadata",
87
+ "**/.DS_Store",
88
+ "**/.DS_Store?",
89
+ "**/._*",
90
+ "**/.Spotlight-V100/**",
91
+ "**/.Trashes/**",
92
+ "**/ehthumbs.db",
93
+ "**/Thumbs.db",
94
+ "**/desktop.ini",
95
+ // XML outputs
96
+ "**/flattened-codebase.xml",
97
+ "**/repomix-output.xml",
98
+ // Images, media, fonts, archives, docs, dylibs
99
+ "**/*.jpg",
100
+ "**/*.jpeg",
101
+ "**/*.png",
102
+ "**/*.gif",
103
+ "**/*.bmp",
104
+ "**/*.ico",
105
+ "**/*.svg",
106
+ "**/*.pdf",
107
+ "**/*.doc",
108
+ "**/*.docx",
109
+ "**/*.xls",
110
+ "**/*.xlsx",
111
+ "**/*.ppt",
112
+ "**/*.pptx",
113
+ "**/*.zip",
114
+ "**/*.tar",
115
+ "**/*.gz",
116
+ "**/*.rar",
117
+ "**/*.7z",
118
+ "**/*.dylib",
119
+ "**/*.mp3",
120
+ "**/*.mp4",
121
+ "**/*.avi",
122
+ "**/*.mov",
123
+ "**/*.wav",
124
+ "**/*.ttf",
125
+ "**/*.otf",
126
+ "**/*.woff",
127
+ "**/*.woff2",
128
+ // Env files
129
+ "**/.env",
130
+ "**/.env.*",
131
+ "**/*.env",
132
+ // Misc
133
+ "**/junit.xml",
134
+ ];
135
+
136
+ async function readIgnoreFile(filePath) {
137
+ try {
138
+ if (!await fs.pathExists(filePath)) return [];
139
+ const content = await fs.readFile(filePath, "utf8");
140
+ return content
141
+ .split("\n")
142
+ .map((l) => l.trim())
143
+ .filter((l) => l && !l.startsWith("#"));
144
+ } catch (err) {
145
+ return [];
146
+ }
147
+ }
148
+
149
+ // Backward compatible export matching previous signature
150
+ async function parseGitignore(gitignorePath) {
151
+ return readIgnoreFile(gitignorePath);
152
+ }
153
+
154
+ async function loadIgnore(rootDir, extraPatterns = []) {
155
+ const ig = ignore();
156
+ const gitignorePath = path.join(rootDir, ".gitignore");
157
+ const patterns = [
158
+ ...await readIgnoreFile(gitignorePath),
159
+ ...DEFAULT_PATTERNS,
160
+ ...extraPatterns,
161
+ ];
162
+ // De-duplicate
163
+ const unique = Array.from(new Set(patterns.map((p) => String(p))));
164
+ ig.add(unique);
165
+
166
+ // Include-only filter: return true if path should be included
167
+ const filter = (relativePath) => !ig.ignores(relativePath.replace(/\\/g, "/"));
168
+
169
+ return { ig, filter, patterns: unique };
170
+ }
171
+
172
+ module.exports = {
173
+ DEFAULT_PATTERNS,
174
+ parseGitignore,
175
+ loadIgnore,
176
+ };