Commit Graph

413 Commits

Author SHA1 Message Date
Nikita Levyankov 251ec93150 refactor: remove dead code (profileModules/Agents/Workflows)
Removed unused properties that were set but never read:
- normalized.profileModules
- normalized.profileAgents
- normalized.profileWorkflows

These values were:
1. Stored as unwrapped (strings like 'all' or arrays)
2. Never accessed anywhere in the codebase
3. Created confusion - actual values used are normalized.modules/agents/workflows
4. Inconsistent with the wrapped versions actually used downstream

The profile values are already correctly processed and stored in
normalized.modules/agents/workflows (with proper array wrapping),
which are then passed to installer via config.cliOptions.

No functional change - just removing dead code that served no purpose.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 12:59:22 +02:00
Nikita Levyankov 32b104b4bc fix: handle array-wrapped 'all' value for modules
After wrapping profile string values in arrays in options-parser, the modules handling in ui.js was still only checking for string 'all', not array ['all']. This would break profiles with `modules: 'all'`.

Added checks for both cases:
- String: `options.modules === 'all'` (original case)
- Array: `options.modules.includes('all')` (new case after wrapping)

Now modules handling is consistent with agents/workflows filtering which already used `.includes('all')`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 12:39:07 +02:00
Nikita Levyankov e9c0aafad9 fix: wrap string profile values in arrays for consistency
The ternary operators WERE needed after all! Profile values can be:
- Arrays: ['dev', 'architect', 'pm']
- Strings: 'all' (special keyword)

Downstream code expects arrays:
- filterWorkflows() checks selectedWorkflows.includes('all')
- filterAgents() checks selectedAgents.includes('all')
- separateModifiers() iterates with for-of loop

Without wrapping strings in arrays:
- 'all' → stays as string → includes() doesn't work
- WITH fix: 'all' → becomes ['all'] → includes('all') works ✓

This fixes the profile workflow:
1. Profile defines: workflows: 'all'
2. Parser wraps: normalized.workflows = ['all']
3. Filter checks: selectedWorkflows.includes('all') → true ✓

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 12:36:30 +02:00
Nikita Levyankov b88845c0fe fix: remove useless ternary operators in options-parser
The ternary operators were checking `Array.isArray()` but returning the same value in both branches, making them completely pointless. Since profiles can contain both arrays (e.g., `['dev', 'architect']`) and strings (e.g., `'all'`), and both are valid, we should just assign the value directly.

Fixed lines:
- normalized.modules = profile.modules
- normalized.agents = profile.agents
- normalized.workflows = profile.workflows

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 12:32:04 +02:00
Nikita Levyankov 1dca5fb4b7 fix: lint and formatting issues in non-interactive installation PR
- Fix ESLint errors: use switch over else-if, remove unused catch bindings, use slice over substring, use replaceAll over replace
- Fix Prettier formatting issues across all modified files
- Fix markdown lint: wrap bare URL in angle brackets

All tests passing: schemas, installation, validation, lint, markdown lint, and formatting checks.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 12:25:01 +02:00
Alex Verkhovsky 57bd2c0731
Merge branch 'main' into main 2025-12-18 01:52:00 -07:00
Brian Madison 23f650ff4d fixed _bmad folder stutter with agent custom files 2025-12-18 03:22:46 +08:00
Brian 52bd250a8c
Merge branch 'main' into main 2025-12-18 02:47:51 +08:00
Brian Madison f36369512b fixed issue with agent customization application, now all fields are customized form the custom yaml. also added a recompile agents menu item 2025-12-17 17:58:37 +08:00
Nikita Levyankov b6ade22984 feat: introduce non-interactive cli installation 2025-12-17 11:42:35 +02:00
Brian Madison e37edf098c modify install now supports adding custom modules even if there were no custom modules originally 2025-12-16 20:45:27 +08:00
Brian Madison 83b0df0f21 .17 changelog and link to changelog in installer output 2025-12-16 18:23:15 +08:00
Brian Madison 32615afaf9 memory location is non configurable _bmad/_memory for sidecar content 2025-12-16 15:43:38 +08:00
Brian Madison 59e4cc7b82 minor code cleanup 2025-12-16 13:09:20 +08:00
Brian Madison c24821b6ed menu wording updates 2025-12-16 01:25:49 +08:00
Brian Madison 2c4c2d9717 reduce installer log output 2025-12-15 23:53:26 +08:00
Brian Madison 901b39de9a fixed duplicate entry in files manfest issue 2025-12-15 20:47:21 +08:00
Brian Madison 4d8d1f84f7 quick update works and retains custom content also 2025-12-15 19:54:40 +08:00
Brian Madison 48795d46de core and custom modules all install through the same flow now 2025-12-15 19:16:03 +08:00
Brian Madison bbda7171bd quick update output modified 2025-12-15 17:30:12 +08:00
Brian Madison 08f05cf9a4 update menu updated 2025-12-15 16:25:01 +08:00
Brian Madison c7827bf031 less verbose final output during install 2025-12-15 15:55:28 +08:00
Brian Madison 5716282898 roo installer had some bugs 2025-12-15 15:08:19 +08:00
Brian Madison 60238d2854 default accepted for installer quesitons 2025-12-15 12:55:57 +08:00
Brian Madison 6513c77d1b single install panel, no clearing disjointed between modules 2025-12-15 11:54:37 +08:00
Brian Madison 3cbe330b8e improved ui for initial install question intake 2025-12-15 11:33:01 +08:00
Brian Madison ecc2901649 remove header display before tool selection 2025-12-15 11:05:27 +08:00
Brian Madison d4eccf07cf reorganize order of questions to make more logical sense 2025-12-15 10:59:15 +08:00
Brian Madison 1da7705821 folder workflow naming alignment for consistency 2025-12-15 10:17:58 +08:00
Brian Madison 7f742d4af6 custom modules install after any non custom modules selected and after the core, manifest tracks custom modules separately to ensure always installed from the custom cache 2025-12-15 09:14:16 +08:00
Brian Madison 4c65f3a006 quick install fixed 2025-12-13 23:45:47 +08:00
Brian Madison cba7cf223f standardize custom agent workflow and module output, and improve module folder selection 2025-12-13 22:59:58 +08:00
Brian Madison add789a408 remove unused code 2025-12-13 19:53:03 +08:00
Brian Madison ae9851acab _cfg -> _config 2025-12-13 19:41:09 +08:00
Brian Madison ac5fa5c23f agent customization now gets allied on quick update and compile agents 2025-12-13 19:23:02 +08:00
Brian Madison 8642553bd7 we only need one yaml lib 2025-12-13 18:35:07 +08:00
Brian Madison ce42d56fdd agent customzation almost working again 2025-12-13 17:50:33 +08:00
Brian Madison 25c79e3fe5 folder rename from .bmad to _bmad 2025-12-13 16:22:34 +08:00
Brian Madison e6f911d791 remove dead and unused functionality - the web bundler will be replaced 2025-12-13 14:06:35 +08:00
Dicky Moore ed0defbe08
fix: normalize workflow manifest schema (#1071)
* fix: normalize workflow manifest schema

* fix: escape workflow manifest values safely

---------

Co-authored-by: Brian <bmadcode@gmail.com>
2025-12-12 07:20:43 +08:00
Kevin Heidt 3bc485d0ed
Enhance config collector to support static fields (#1086)
Refactor config collection to handle both interactive and static fields. Update logic to process new static fields and merge answers accordingly.

Co-authored-by: Brian <bmadcode@gmail.com>
2025-12-12 06:56:31 +08:00
Brian Madison 446a0359ab fix bmb workflow paths 2025-12-10 20:50:24 +09:00
Brian Madison 45a97b070a disable custom content installation temporarily 2025-12-10 19:11:18 +09:00
Alex Verkhovsky cf50f4935d
fix: address code review issues from alpha.14 to alpha.15 (#1068)
* fix: remove debug console.log statements from ui.js

* fix: add error handling and rollback for temp directory cleanup

* fix: use streaming for hash calculation to reduce memory usage

* refactor: hoist CustomHandler require to top of installer.js and ui.js

* fix: fail fast on malformed custom module YAML

User customizations must be valid - silent skip hides broken configs.

* refactor: use consistent return type in handleMissingCustomSources

* refactor: clone config at install() entry to prevent mutation
2025-12-08 13:24:30 -06:00
OhSeungWan 1513b2d478
fix: collect module.yaml prompts for custom modules (#1065)
Custom modules with module.yaml configuration prompts were not being
collected during installation. Added customModulePaths option to
ConfigCollector to resolve custom module paths from selectedFiles
and cachedModules sources.
2025-12-08 07:33:53 -06:00
Brian Madison 9d7b09d065 bmad_folder replacement working properly with custom and defauly modules 2025-12-07 21:58:44 -06:00
Brian Madison 86f2786dde remove hardcoded .bmad folders from demo content 2025-12-07 21:41:37 -06:00
Brian Madison a638f062b9 some debug output when installer errors 2025-12-07 21:03:05 -06:00
Brian Madison 738237b4ae custom install module cached 2025-12-07 20:46:09 -06:00
Brian Madison 6430173738 all modules custom or core use the same installer and have consistent behavior now. 2025-12-07 17:17:50 -06:00