@devo-bmad-custom/agent-orchestration 1.0.17 → 1.0.18

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 (2) hide show
  1. package/lib/installer.js +34 -4
  2. package/package.json +1 -1
package/lib/installer.js CHANGED
@@ -724,19 +724,22 @@ async function setupTmux(projectRoot, chalk) {
724
724
  console.log(' ' + chalk.cyan('sudo apt-get install -y wl-clipboard imagemagick wslu'));
725
725
  console.log(' ' + chalk.white('⑤ Docker Desktop WSL integration') + chalk.dim(' — GUI only:'));
726
726
  console.log(' ' + chalk.dim('Docker Desktop → Settings → Resources → WSL Integration → toggle Ubuntu → Apply & Restart'));
727
+ console.log(' ' + chalk.white('⑥ gsudo') + chalk.dim(' (Windows sudo — allows WSL to run elevated PowerShell):'));
728
+ console.log(' ' + chalk.cyan('winget install gerardog.gsudo'));
729
+ console.log(' ' + chalk.dim(' Or via scoop: scoop install gsudo'));
727
730
 
728
731
  console.log('');
729
732
  console.log(chalk.bold.yellow(' ✦ Can be done manually OR by an AI with relaxed permissions:'));
730
733
  console.log(chalk.dim(' These are safe to automate — no sudo or system-level access needed.\n'));
731
- console.log(' ' + chalk.white(' NVM + Node') + chalk.dim(' (required for Node-based MCP servers):'));
734
+ console.log(' ' + chalk.white(' NVM + Node') + chalk.dim(' (required for Node-based MCP servers):'));
732
735
  console.log(' ' + chalk.cyan('curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash'));
733
736
  console.log(' ' + chalk.cyan('source ~/.bashrc && nvm install --lts'));
734
- console.log(' ' + chalk.white(' TPM (tmux Plugin Manager):'));
737
+ console.log(' ' + chalk.white(' TPM (tmux Plugin Manager):'));
735
738
  console.log(' ' + chalk.cyan('git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm'));
736
739
  console.log(' ' + chalk.dim(' Then inside tmux: press Ctrl+B I to install plugins'));
737
- console.log(' ' + chalk.white(' fzf') + chalk.dim(' (required for Actions popup menu):'));
740
+ console.log(' ' + chalk.white(' fzf') + chalk.dim(' (required for Actions popup menu):'));
738
741
  console.log(' ' + chalk.cyan('mkdir -p ~/.local/bin && curl -Lo /tmp/fzf.tar.gz https://github.com/junegunn/fzf/releases/download/v0.54.3/fzf-0.54.3-linux_amd64.tar.gz && tar -xzf /tmp/fzf.tar.gz -C ~/.local/bin'));
739
- console.log(' ' + chalk.white(' Nerd Fonts') + chalk.dim(' (required for Powerline status bar separators):'));
742
+ console.log(' ' + chalk.white(' Nerd Fonts') + chalk.dim(' (required for Powerline status bar separators):'));
740
743
  console.log(' ' + chalk.dim(' Download JetBrainsMono NFM from https://www.nerdfonts.com/'));
741
744
  console.log(' ' + chalk.dim(' Install JetBrainsMonoNerdFontMono-Regular.ttf to Windows (double-click → Install for all users)'));
742
745
  console.log(' ' + chalk.white(' Cursor/VS Code:') + ' ' + chalk.cyan('"terminal.integrated.fontFamily": "JetBrainsMono NFM"'));
@@ -798,6 +801,33 @@ async function setupTmux(projectRoot, chalk) {
798
801
  console.log(chalk.dim(` ○ ${xdgOpenPath} already exists`));
799
802
  }
800
803
 
804
+ // gsudo shim — lets WSL call Windows-side gsudo.exe without full path
805
+ const gsudoShimPath = path.join(homeDir, '.local', 'bin', 'gsudo');
806
+ if (!await fs.pathExists(gsudoShimPath)) {
807
+ // Find gsudo.exe on Windows side
808
+ const { execSync } = require('child_process');
809
+ let gsudoExe = null;
810
+ try {
811
+ // cmd.exe /c where gsudo returns Windows paths — convert first result to WSL path
812
+ const winPath = execSync('cmd.exe /c where gsudo 2>NUL', { stdio: 'pipe' })
813
+ .toString().split('\n')[0].trim();
814
+ if (winPath && winPath.endsWith('.exe')) {
815
+ // Convert C:\... → /mnt/c/...
816
+ gsudoExe = '/mnt/' + winPath.replace(/\\/g, '/').replace(/^([A-Za-z]):/, (_, d) => d.toLowerCase());
817
+ }
818
+ } catch { /* gsudo not installed on Windows yet */ }
819
+
820
+ if (gsudoExe) {
821
+ const shimContent = `#!/bin/bash\nexec '${gsudoExe}' "$@"\n`;
822
+ await fs.writeFile(gsudoShimPath, shimContent, { mode: 0o755 });
823
+ console.log(chalk.green(` ✓ gsudo shim → ${gsudoShimPath} (delegates to ${gsudoExe})`));
824
+ } else {
825
+ console.log(chalk.yellow(' ⚠ gsudo not found on Windows — install it first (winget install gerardog.gsudo), then re-run setup'));
826
+ }
827
+ } else {
828
+ console.log(chalk.dim(` ○ gsudo shim already exists at ${gsudoShimPath}`));
829
+ }
830
+
801
831
  // ── Step 3: TPM check ────────────────────────────────────────────────────
802
832
  console.log('\n' + chalk.bold('Step 3 — TPM check'));
803
833
  if (await fs.pathExists(tpmPath)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devo-bmad-custom/agent-orchestration",
3
- "version": "1.0.17",
3
+ "version": "1.0.18",
4
4
  "description": "BMAD Method — AI-native agile workflow system for Claude Code and compatible AI assistants",
5
5
  "keywords": [
6
6
  "bmad",