diff --git a/package-lock.json b/package-lock.json index 26e40bb8..de5442eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "fs-extra": "^11.3.0", "glob": "^11.0.3", "ignore": "^7.0.5", - "inquirer": "^8.2.6", + "inquirer": "^9.3.8", "js-yaml": "^4.1.0", "ora": "^5.4.1", "semver": "^7.6.3", @@ -4977,13 +4977,13 @@ } }, "node_modules/@inquirer/external-editor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.1.tgz", - "integrity": "sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", "license": "MIT", "dependencies": { - "chardet": "^2.1.0", - "iconv-lite": "^0.6.3" + "chardet": "^2.1.1", + "iconv-lite": "^0.7.0" }, "engines": { "node": ">=18" @@ -4997,6 +4997,15 @@ } } }, + "node_modules/@inquirer/figures": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@isaacs/balanced-match": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", @@ -9070,9 +9079,9 @@ } }, "node_modules/chardet": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.0.tgz", - "integrity": "sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", + "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", "license": "MIT" }, "node_modules/cheerio": { @@ -9355,12 +9364,12 @@ } }, "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "license": "ISC", "engines": { - "node": ">= 10" + "node": ">= 12" } }, "node_modules/cliui": { @@ -12172,6 +12181,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" @@ -12187,6 +12197,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.8.0" @@ -13634,15 +13645,19 @@ } }, "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.1.tgz", + "integrity": "sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==", "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/icss-utils": { @@ -13816,29 +13831,26 @@ "license": "MIT" }, "node_modules/inquirer": { - "version": "8.2.7", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.7.tgz", - "integrity": "sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==", + "version": "9.3.8", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.3.8.tgz", + "integrity": "sha512-pFGGdaHrmRKMh4WoDDSowddgjT1Vkl90atobmTeSmcPGdYiwikch/m/Ef5wRaiamHejtw0cUUMMerzDUXCci2w==", "license": "MIT", "dependencies": { - "@inquirer/external-editor": "^1.0.0", - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", + "@inquirer/external-editor": "^1.0.2", + "@inquirer/figures": "^1.0.3", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "1.0.0", "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^6.0.1" + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=18" } }, "node_modules/inquirer/node_modules/wrap-ansi": { @@ -15666,6 +15678,7 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, "license": "MIT" }, "node_modules/lodash.debounce": { @@ -17596,10 +17609,13 @@ } }, "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "license": "ISC" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/nano-spawn": { "version": "1.0.2", @@ -21446,9 +21462,9 @@ } }, "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", "license": "MIT", "engines": { "node": ">=0.12.0" @@ -22913,12 +22929,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "license": "MIT" - }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -24726,6 +24736,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/zip-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", diff --git a/package.json b/package.json index fad132f5..a9539a48 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "fs-extra": "^11.3.0", "glob": "^11.0.3", "ignore": "^7.0.5", - "inquirer": "^8.2.6", + "inquirer": "^9.3.8", "js-yaml": "^4.1.0", "ora": "^5.4.1", "semver": "^7.6.3", diff --git a/samples/sample-custom-modules/sample-unitary-module/agents/commit-poet/commit-poet.agent.yaml b/samples/sample-custom-modules/sample-unitary-module/agents/commit-poet/commit-poet.agent.yaml index 659f3bce..a8b8033f 100644 --- a/samples/sample-custom-modules/sample-unitary-module/agents/commit-poet/commit-poet.agent.yaml +++ b/samples/sample-custom-modules/sample-unitary-module/agents/commit-poet/commit-poet.agent.yaml @@ -4,6 +4,7 @@ agent: name: "Inkwell Von Comitizen" title: "Commit Message Artisan" icon: "šŸ“œ" + module: stand-alone persona: role: | diff --git a/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith.agent.yaml b/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith.agent.yaml index 5679c55d..96d82bef 100644 --- a/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith.agent.yaml +++ b/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith.agent.yaml @@ -4,6 +4,8 @@ agent: name: Vexor title: Toolsmith + Guardian of the BMAD Forge icon: āš’ļø + module: stand-alone + hasSidecar: true persona: role: | Toolsmith + Guardian of the BMAD Forge diff --git a/samples/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion.agent.yaml b/samples/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion.agent.yaml index f20e8523..c1cc2048 100644 --- a/samples/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion.agent.yaml +++ b/samples/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion.agent.yaml @@ -5,6 +5,7 @@ agent: title: "Wellness Companion" icon: "🌱" module: "mwm" + hasSidecar: true persona: role: "Empathetic emotional support and wellness guide" identity: | diff --git a/src/modules/cis/agents/storyteller/storyteller.agent.yaml b/src/modules/cis/agents/storyteller/storyteller.agent.yaml index 9971ad54..102e2f31 100644 --- a/src/modules/cis/agents/storyteller/storyteller.agent.yaml +++ b/src/modules/cis/agents/storyteller/storyteller.agent.yaml @@ -7,6 +7,7 @@ agent: title: Master Storyteller icon: šŸ“– module: cis + hasSidecar: true persona: role: Expert Storytelling Guide + Narrative Strategist diff --git a/tools/cli/installers/lib/core/config-collector.js b/tools/cli/installers/lib/core/config-collector.js index ca09ca2f..fad0f108 100644 --- a/tools/cli/installers/lib/core/config-collector.js +++ b/tools/cli/installers/lib/core/config-collector.js @@ -2,7 +2,7 @@ const path = require('node:path'); const fs = require('fs-extra'); const yaml = require('yaml'); const chalk = require('chalk'); -const inquirer = require('inquirer'); +const inquirer = require('inquirer').default || require('inquirer'); const { getProjectRoot, getModulePath } = require('../../../lib/project-root'); const { CLIUtils } = require('../../../lib/cli-utils'); diff --git a/tools/cli/installers/lib/core/installer.js b/tools/cli/installers/lib/core/installer.js index 5b403972..bc85d2f2 100644 --- a/tools/cli/installers/lib/core/installer.js +++ b/tools/cli/installers/lib/core/installer.js @@ -2,7 +2,7 @@ const path = require('node:path'); const fs = require('fs-extra'); const chalk = require('chalk'); const ora = require('ora'); -const inquirer = require('inquirer'); +const inquirer = require('inquirer').default || require('inquirer'); const { Detector } = require('./detector'); const { Manifest } = require('./manifest'); const { ModuleManager } = require('../modules/manager'); @@ -2140,7 +2140,7 @@ class Installer { * Private: Prompt for update action */ async promptUpdateAction() { - const inquirer = require('inquirer'); + const inquirer = require('inquirer').default || require('inquirer'); return await inquirer.prompt([ { type: 'list', @@ -2170,7 +2170,7 @@ class Installer { return !name.startsWith('_bmad'); // Everything else is manual cleanup }); - const inquirer = require('inquirer'); + const inquirer = require('inquirer').default || require('inquirer'); // Show warning for other offending paths FIRST if (otherOffenders.length > 0) { @@ -2469,7 +2469,7 @@ class Installer { console.log(chalk.yellow(`\nāš ļø Found ${customModulesWithMissingSources.length} custom module(s) with missing sources:`)); - const inquirer = require('inquirer'); + const inquirer = require('inquirer').default || require('inquirer'); let keptCount = 0; let updatedCount = 0; let removedCount = 0; diff --git a/tools/cli/installers/lib/ide/antigravity.js b/tools/cli/installers/lib/ide/antigravity.js index b921b4de..a7fed6ea 100644 --- a/tools/cli/installers/lib/ide/antigravity.js +++ b/tools/cli/installers/lib/ide/antigravity.js @@ -58,7 +58,7 @@ class AntigravitySetup extends BaseIdeSetup { if (config.subagentChoices.install !== 'none') { // Ask for installation location - const inquirer = require('inquirer'); + const inquirer = require('inquirer').default || require('inquirer'); const locationAnswer = await inquirer.prompt([ { type: 'list', @@ -297,7 +297,7 @@ class AntigravitySetup extends BaseIdeSetup { choices = await this.promptSubagentInstallation(config.subagents); if (choices.install !== 'none') { - const inquirer = require('inquirer'); + const inquirer = require('inquirer').default || require('inquirer'); const locationAnswer = await inquirer.prompt([ { type: 'list', @@ -334,7 +334,7 @@ class AntigravitySetup extends BaseIdeSetup { * Prompt user for subagent installation preferences */ async promptSubagentInstallation(subagentConfig) { - const inquirer = require('inquirer'); + const inquirer = require('inquirer').default || require('inquirer'); // First ask if they want to install subagents const { install } = await inquirer.prompt([ diff --git a/tools/cli/installers/lib/ide/claude-code.js b/tools/cli/installers/lib/ide/claude-code.js index 56131e44..35e70b0b 100644 --- a/tools/cli/installers/lib/ide/claude-code.js +++ b/tools/cli/installers/lib/ide/claude-code.js @@ -57,7 +57,7 @@ class ClaudeCodeSetup extends BaseIdeSetup { if (config.subagentChoices.install !== 'none') { // Ask for installation location - const inquirer = require('inquirer'); + const inquirer = require('inquirer').default || require('inquirer'); const locationAnswer = await inquirer.prompt([ { type: 'list', @@ -305,7 +305,7 @@ class ClaudeCodeSetup extends BaseIdeSetup { choices = await this.promptSubagentInstallation(config.subagents); if (choices.install !== 'none') { - const inquirer = require('inquirer'); + const inquirer = require('inquirer').default || require('inquirer'); const locationAnswer = await inquirer.prompt([ { type: 'list', @@ -342,7 +342,7 @@ class ClaudeCodeSetup extends BaseIdeSetup { * Prompt user for subagent installation preferences */ async promptSubagentInstallation(subagentConfig) { - const inquirer = require('inquirer'); + const inquirer = require('inquirer').default || require('inquirer'); // First ask if they want to install subagents const { install } = await inquirer.prompt([ diff --git a/tools/cli/installers/lib/ide/codex.js b/tools/cli/installers/lib/ide/codex.js index e538fa6f..9967057a 100644 --- a/tools/cli/installers/lib/ide/codex.js +++ b/tools/cli/installers/lib/ide/codex.js @@ -21,7 +21,7 @@ class CodexSetup extends BaseIdeSetup { * @returns {Object} Collected configuration */ async collectConfiguration(options = {}) { - const inquirer = require('inquirer'); + const inquirer = require('inquirer').default || require('inquirer'); let confirmed = false; let installLocation = 'global'; diff --git a/tools/cli/installers/lib/ide/github-copilot.js b/tools/cli/installers/lib/ide/github-copilot.js index 998ec657..36d3eecb 100644 --- a/tools/cli/installers/lib/ide/github-copilot.js +++ b/tools/cli/installers/lib/ide/github-copilot.js @@ -1,7 +1,7 @@ const path = require('node:path'); const { BaseIdeSetup } = require('./_base-ide'); const chalk = require('chalk'); -const inquirer = require('inquirer'); +const inquirer = require('inquirer').default || require('inquirer'); const { AgentCommandGenerator } = require('./shared/agent-command-generator'); /** diff --git a/tools/cli/lib/ui.js b/tools/cli/lib/ui.js index d2997178..ab055643 100644 --- a/tools/cli/lib/ui.js +++ b/tools/cli/lib/ui.js @@ -1,5 +1,5 @@ const chalk = require('chalk'); -const inquirer = require('inquirer'); +const inquirer = require('inquirer').default || require('inquirer'); const path = require('node:path'); const os = require('node:os'); const fs = require('fs-extra'); diff --git a/tools/platform-codes.yaml b/tools/platform-codes.yaml index a58e2119..04c4a45f 100644 --- a/tools/platform-codes.yaml +++ b/tools/platform-codes.yaml @@ -56,11 +56,23 @@ platforms: description: "Enhanced Cline fork" rovo: - name: "Rovo Dev" + name: "Rovo" preferred: false category: ide description: "Atlassian's AI coding assistant" + rovo-dev: + name: "Rovo Dev" + preferred: false + category: ide + description: "Atlassian's Rovo development environment" + + kiro-cli: + name: "Kiro CLI" + preferred: false + category: cli + description: "Kiro command-line interface" + github-copilot: name: "GitHub Copilot" preferred: false