@zeyue0329/xiaoma-cli 1.0.13 → 1.0.14

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@zeyue0329/xiaoma-cli",
4
- "version": "1.0.13",
4
+ "version": "1.0.14",
5
5
  "description": "XiaoMa Cli: Universal AI Agent Framework",
6
6
  "keywords": [
7
7
  "agile",
@@ -1,4 +1,4 @@
1
- # BMad Method Installer
1
+ # XiaoMa-Cli Installer
2
2
 
3
3
  ## Usage
4
4
 
@@ -1,6 +1,6 @@
1
1
  installation-options:
2
2
  full:
3
- name: Complete BMad Core
3
+ name: Complete XiaoMa Core
4
4
  description: Copy the entire .xiaoma-core folder with all agents, templates, and tools
5
5
  action: copy-folder
6
6
  source: xiaoma-core
@@ -15,26 +15,26 @@ ide-configurations:
15
15
  format: multi-file
16
16
  command-suffix: .mdc
17
17
  instructions: |
18
- # To use BMad agents in Cursor:
18
+ # To use XiaoMa agents in Cursor:
19
19
  # 1. Press Ctrl+L (Cmd+L on Mac) to open the chat
20
20
  # 2. Type @agent-name (e.g., "@dev", "@pm", "@architect")
21
21
  # 3. The agent will adopt that persona for the conversation
22
22
  claude-code:
23
23
  name: Claude Code
24
- rule-dir: .claude/commands/BMad/
24
+ rule-dir: .claude/commands/XiaoMa/
25
25
  format: multi-file
26
26
  command-suffix: .md
27
27
  instructions: |
28
- # To use BMad agents in Claude Code:
28
+ # To use XiaoMa agents in Claude Code:
29
29
  # 1. Type /agent-name (e.g., "/dev", "/pm", "/architect")
30
30
  # 2. Claude will switch to that agent's persona
31
31
  crush:
32
32
  name: Crush
33
- rule-dir: .crush/commands/BMad/
33
+ rule-dir: .crush/commands/XiaoMa/
34
34
  format: multi-file
35
35
  command-suffix: .md
36
36
  instructions: |
37
- # To use BMad agents in Crush:
37
+ # To use XiaoMa agents in Crush:
38
38
  # 1. Press CTRL + P and press TAB
39
39
  # 2. Select agent or task
40
40
  # 3. Crush will switch to that agent's persona / task
@@ -44,7 +44,7 @@ ide-configurations:
44
44
  format: multi-file
45
45
  command-suffix: .md
46
46
  instructions: |
47
- # To use BMad agents in Windsurf:
47
+ # To use XiaoMa agents in Windsurf:
48
48
  # 1. Type /agent-name (e.g., "/dev", "/pm")
49
49
  # 2. Windsurf will adopt that agent's persona
50
50
  trae:
@@ -53,7 +53,7 @@ ide-configurations:
53
53
  format: multi-file
54
54
  command-suffix: .md
55
55
  instructions: |
56
- # To use BMad agents in Trae:
56
+ # To use XiaoMa agents in Trae:
57
57
  # 1. Type @agent-name (e.g., "@dev", "@pm", "@architect")
58
58
  # 2. Trae will adopt that agent's persona
59
59
  roo:
@@ -61,7 +61,7 @@ ide-configurations:
61
61
  format: custom-modes
62
62
  file: .roomodes
63
63
  instructions: |
64
- # To use BMad agents in Roo Code:
64
+ # To use XiaoMa agents in Roo Code:
65
65
  # 1. Open the mode selector (usually in the status bar)
66
66
  # 2. Select any bmad-{agent} mode (e.g., "bmad-dev", "bmad-pm")
67
67
  # 3. The AI will adopt that agent's full personality and capabilities
@@ -71,7 +71,7 @@ ide-configurations:
71
71
  format: multi-file
72
72
  command-suffix: .md
73
73
  instructions: |
74
- # To use BMad agents in Cline:
74
+ # To use XiaoMa agents in Cline:
75
75
  # 1. Open the Cline chat panel in VS Code
76
76
  # 2. Type @agent-name (e.g., "@dev", "@pm", "@architect")
77
77
  # 3. The agent will adopt that persona for the conversation
@@ -82,7 +82,7 @@ ide-configurations:
82
82
  format: single-file
83
83
  command-suffix: .md
84
84
  instructions: |
85
- # To use BMad agents with the Gemini CLI:
85
+ # To use XiaoMa agents with the Gemini CLI:
86
86
  # 1. The installer creates a .gemini/xiaoma-cli/ directory in your project.
87
87
  # 2. It concatenates all agent files into a single GEMINI.md file.
88
88
  # 3. Simply mention the agent in your prompt (e.g., "As *dev, ...").
@@ -93,7 +93,7 @@ ide-configurations:
93
93
  format: multi-file
94
94
  command-suffix: .md
95
95
  instructions: |
96
- # To use BMad agents with Github Copilot:
96
+ # To use XiaoMa agents with Github Copilot:
97
97
  # 1. The installer creates a .github/chatmodes/ directory in your project
98
98
  # 2. Open the Chat view (`⌃⌘I` on Mac, `Ctrl+Alt+I` on Windows/Linux) and select **Agent** from the chat mode selector.
99
99
  # 3. The agent will adopt that persona for the conversation
@@ -105,7 +105,7 @@ ide-configurations:
105
105
  format: custom-modes
106
106
  file: .kilocodemodes
107
107
  instructions: |
108
- # To use BMAD™ agents in Kilo Code:
108
+ # To use XIAOMA™ agents in Kilo Code:
109
109
  # 1. Open the mode selector in VSCode
110
110
  # 2. Select a bmad-{agent} mode (e.g. "bmad-dev")
111
111
  # 3. The AI adopts that agent's persona and capabilities
@@ -116,7 +116,7 @@ ide-configurations:
116
116
  format: single-file
117
117
  command-suffix: .md
118
118
  instructions: |
119
- # To use BMad agents with Qwen Code:
119
+ # To use XiaoMa agents with Qwen Code:
120
120
  # 1. The installer creates a .qwen/xiaoma-cli/ directory in your project.
121
121
  # 2. It concatenates all agent files into a single QWEN.md file.
122
122
  # 3. Simply mention the agent in your prompt (e.g., "As *dev, ...").
@@ -136,7 +136,7 @@ ide-configurations:
136
136
  description: Stored in your repository and shared with your team
137
137
  command-suffix: .md
138
138
  instructions: |
139
- # To use BMad agents in Auggie CLI (Augment Code):
139
+ # To use XiaoMa agents in Auggie CLI (Augment Code):
140
140
  # 1. Type /bmad:agent-name (e.g., "/bmad:dev", "/bmad:pm", "/bmad:architect")
141
141
  # 2. The agent will adopt that persona for the conversation
142
142
  # 3. Commands are available based on your selected location(s)
@@ -146,8 +146,8 @@ ide-configurations:
146
146
  format: project-memory
147
147
  file: AGENTS.md
148
148
  instructions: |
149
- # To use BMAD agents with Codex CLI:
150
- # 1. The installer updates/creates AGENTS.md at your project root with BMAD agents and tasks.
149
+ # To use XIAOMA agents with Codex CLI:
150
+ # 1. The installer updates/creates AGENTS.md at your project root with XIAOMA agents and tasks.
151
151
  # 2. Run `codex` in your project. Codex automatically reads AGENTS.md as project memory.
152
152
  # 3. Mention agents in your prompt (e.g., "As dev, please implement ...") or reference tasks.
153
153
  # 4. You can further customize global Codex behavior via ~/.codex/config.toml.
@@ -157,7 +157,7 @@ ide-configurations:
157
157
  format: project-memory
158
158
  file: AGENTS.md
159
159
  instructions: |
160
- # To enable BMAD agents for Codex Web (cloud):
160
+ # To enable XIAOMA agents for Codex Web (cloud):
161
161
  # 1. The installer updates/creates AGENTS.md and ensures `.xiaoma-core` is NOT ignored by git.
162
162
  # 2. Commit `.xiaoma-core/` and `AGENTS.md` to your repository.
163
163
  # 3. Open the repo in Codex Web and reference agents naturally (e.g., "As dev, ...").
@@ -95,7 +95,7 @@ class ConfigLoader {
95
95
  fullDescription:
96
96
  config.description || config['short-title'] || 'No description available',
97
97
  version: config.version || '1.0.0',
98
- author: config.author || 'BMad Team',
98
+ author: config.author || 'XiaoMa Team',
99
99
  packPath: packPath,
100
100
  dependencies: config.dependencies?.agents || [],
101
101
  });
@@ -117,7 +117,7 @@ class ConfigLoader {
117
117
  description: 'No description available',
118
118
  fullDescription: 'No description available',
119
119
  version: '1.0.0',
120
- author: 'BMad Team',
120
+ author: 'XiaoMa Team',
121
121
  packPath: packPath,
122
122
  dependencies: [],
123
123
  });
@@ -93,15 +93,15 @@ class IdeSetup extends BaseIdeSetup {
93
93
  async setupCodex(installDir, selectedAgent, options) {
94
94
  options = options ?? { webEnabled: false };
95
95
  // Codex reads AGENTS.md at the project root as project memory (CLI & Web).
96
- // Inject/update a BMAD section with guidance, directory, and details.
96
+ // Inject/update a XIAOMA section with guidance, directory, and details.
97
97
  const filePath = path.join(installDir, 'AGENTS.md');
98
- const startMarker = '<!-- BEGIN: BMAD-AGENTS -->';
99
- const endMarker = '<!-- END: BMAD-AGENTS -->';
98
+ const startMarker = '<!-- BEGIN: XIAOMA-AGENTS -->';
99
+ const endMarker = '<!-- END: XIAOMA-AGENTS -->';
100
100
 
101
101
  const agents = selectedAgent ? [selectedAgent] : await this.getAllAgentIds(installDir);
102
102
  const tasks = await this.getAllTaskIds(installDir);
103
103
 
104
- // Build BMAD section content
104
+ // Build XIAOMA section content
105
105
  let section = '';
106
106
  section += `${startMarker}\n`;
107
107
  section += `# XIAOMA-CLI Agents and Tasks\n\n`;
@@ -114,7 +114,7 @@ class IdeSetup extends BaseIdeSetup {
114
114
 
115
115
  section += `### Helpful Commands\n\n`;
116
116
  section += `- List agents: \`npx xiaoma-cli list:agents\`\n`;
117
- section += `- Reinstall BMAD core and regenerate AGENTS.md: \`npx xiaoma-cli install -f -i codex\`\n`;
117
+ section += `- Reinstall XIAOMA core and regenerate AGENTS.md: \`npx xiaoma-cli install -f -i codex\`\n`;
118
118
  section += `- Validate configuration: \`npx xiaoma-cli validate\`\n\n`;
119
119
 
120
120
  // Agents directory table
@@ -172,16 +172,16 @@ class IdeSetup extends BaseIdeSetup {
172
172
  if (await fileManager.pathExists(filePath)) {
173
173
  const existing = await fileManager.readFile(filePath);
174
174
  if (existing.includes(startMarker) && existing.includes(endMarker)) {
175
- // Replace existing BMAD block
175
+ // Replace existing XIAOMA block
176
176
  const pattern = String.raw`${startMarker}[\s\S]*?${endMarker}`;
177
177
  const replaced = existing.replace(new RegExp(pattern, 'm'), section);
178
178
  finalContent = replaced;
179
179
  } else {
180
- // Append BMAD block to existing file
180
+ // Append XIAOMA block to existing file
181
181
  finalContent = existing.trimEnd() + `\n\n` + section;
182
182
  }
183
183
  } else {
184
- // Create fresh AGENTS.md with a small header and BMAD block
184
+ // Create fresh AGENTS.md with a small header and XIAOMA block
185
185
  finalContent += '# Project Agents\n\n';
186
186
  finalContent += 'This file provides guidance and memory for Codex CLI.\n\n';
187
187
  finalContent += section;
@@ -191,7 +191,7 @@ class IdeSetup extends BaseIdeSetup {
191
191
  console.log(chalk.green('✓ Created/updated AGENTS.md for Codex CLI integration'));
192
192
  console.log(
193
193
  chalk.dim(
194
- 'Codex reads AGENTS.md automatically. Run `codex` in this project to use BMAD agents.',
194
+ 'Codex reads AGENTS.md automatically. Run `codex` in this project to use XIAOMA agents.',
195
195
  ),
196
196
  );
197
197
 
@@ -222,12 +222,12 @@ class IdeSetup extends BaseIdeSetup {
222
222
  // Adjust .gitignore behavior depending on Codex mode
223
223
  try {
224
224
  const gitignorePath = path.join(installDir, '.gitignore');
225
- const ignoreLines = ['# BMAD (local only)', '.xiaoma-core/', '.bmad-*/'];
225
+ const ignoreLines = ['# XIAOMA (local only)', '.xiaoma-core/', '.bmad-*/'];
226
226
  const exists = await fileManager.pathExists(gitignorePath);
227
227
  if (options.webEnabled) {
228
228
  if (exists) {
229
229
  let gi = await fileManager.readFile(gitignorePath);
230
- // Remove lines that ignore BMAD dot-folders
230
+ // Remove lines that ignore XIAOMA dot-folders
231
231
  const updated = gi
232
232
  .split(/\r?\n/)
233
233
  .filter((l) => !/^\s*\.xiaoma-core\/?\s*$/.test(l) && !/^\s*\.bmad-\*\/?\s*$/.test(l))
@@ -844,17 +844,17 @@ class IdeSetup extends BaseIdeSetup {
844
844
  if (await fileManager.pathExists(altConfigPath)) {
845
845
  const configContent = await fileManager.readFile(altConfigPath);
846
846
  const config = yaml.load(configContent);
847
- return config.slashPrefix || 'BMad';
847
+ return config.slashPrefix || 'XiaoMa';
848
848
  }
849
- return 'BMad'; // fallback
849
+ return 'XiaoMa'; // fallback
850
850
  }
851
851
 
852
852
  const configContent = await fileManager.readFile(coreConfigPath);
853
853
  const config = yaml.load(configContent);
854
- return config.slashPrefix || 'BMad';
854
+ return config.slashPrefix || 'XiaoMa';
855
855
  } catch (error) {
856
- console.warn(`Failed to read core slashPrefix, using default 'BMad': ${error.message}`);
857
- return 'BMad';
856
+ console.warn(`Failed to read core slashPrefix, using default 'XiaoMa': ${error.message}`);
857
+ return 'XiaoMa';
858
858
  }
859
859
  }
860
860
 
@@ -1446,7 +1446,7 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
1446
1446
  }
1447
1447
 
1448
1448
  console.log(chalk.green(`\n✓ Github Copilot setup complete!`));
1449
- console.log(chalk.dim(`You can now find the BMad agents in the Chat view's mode selector.`));
1449
+ console.log(chalk.dim(`You can now find the XiaoMa agents in the Chat view's mode selector.`));
1450
1450
 
1451
1451
  return true;
1452
1452
  }
@@ -1463,7 +1463,9 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
1463
1463
  try {
1464
1464
  const existingContent = await fileManager.readFile(settingsPath);
1465
1465
  existingSettings = JSON.parse(existingContent);
1466
- console.log(chalk.yellow('Found existing .vscode/settings.json. Merging BMad settings...'));
1466
+ console.log(
1467
+ chalk.yellow('Found existing .vscode/settings.json. Merging XiaoMa settings...'),
1468
+ );
1467
1469
  } catch {
1468
1470
  console.warn(chalk.yellow('Could not parse existing settings.json. Creating new one.'));
1469
1471
  existingSettings = {};
@@ -1480,7 +1482,7 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
1480
1482
  console.log('\n'.repeat(2));
1481
1483
  console.log(chalk.blue('🔧 Github Copilot Agent Settings Configuration'));
1482
1484
  console.log(
1483
- chalk.dim('BMad works best with specific VS Code settings for optimal agent experience.'),
1485
+ chalk.dim('XiaoMa works best with specific VS Code settings for optimal agent experience.'),
1484
1486
  );
1485
1487
  console.log(''); // Add extra spacing
1486
1488
 
@@ -1533,7 +1535,7 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
1533
1535
  'github.copilot.chat.agent.autoFix': true,
1534
1536
  'chat.tools.autoApprove': false,
1535
1537
  };
1536
- console.log(chalk.green('✓ Using recommended BMad defaults for Github Copilot settings'));
1538
+ console.log(chalk.green('✓ Using recommended XiaoMa defaults for Github Copilot settings'));
1537
1539
  } else {
1538
1540
  // Manual configuration
1539
1541
  console.log(chalk.blue("\n📋 Let's configure each setting for your preferences:"));
@@ -1591,7 +1593,7 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
1591
1593
  }
1592
1594
 
1593
1595
  bmadSettings = {
1594
- 'chat.agent.enabled': true, // Always enabled - required for BMad agents
1596
+ 'chat.agent.enabled': true, // Always enabled - required for XiaoMa agents
1595
1597
  'chat.agent.maxRequests': Number.parseInt(manualSettings.maxRequests),
1596
1598
  'github.copilot.chat.agent.runTasks': manualSettings.runTasks,
1597
1599
  'chat.mcp.discovery.enabled': manualSettings.mcpDiscovery,
@@ -1646,7 +1648,7 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
1646
1648
  // Clear any previous output and add spacing to avoid conflicts with loaders
1647
1649
  console.log('\n'.repeat(2));
1648
1650
  console.log(chalk.blue('📍 Auggie CLI Location Configuration'));
1649
- console.log(chalk.dim('Choose where to install BMad agents for Auggie CLI access.'));
1651
+ console.log(chalk.dim('Choose where to install XiaoMa agents for Auggie CLI access.'));
1650
1652
  console.log(''); // Add extra spacing
1651
1653
 
1652
1654
  const response = await inquirer.prompt([
@@ -221,7 +221,7 @@ class Installer {
221
221
  }
222
222
 
223
223
  async performFreshInstall(config, installDir, spinner, options = {}) {
224
- spinner.text = 'Installing BMad Method...';
224
+ spinner.text = 'Installing XiaoMa-Cli...';
225
225
 
226
226
  let files = [];
227
227
 
@@ -490,9 +490,9 @@ class Installer {
490
490
  let choices = [];
491
491
 
492
492
  if (versionCompare < 0) {
493
- console.log(chalk.cyan('\n⬆️ Upgrade available for BMad core'));
493
+ console.log(chalk.cyan('\n⬆️ Upgrade available for XiaoMa-Cli core'));
494
494
  choices.push({
495
- name: `Upgrade BMad core (v${currentVersion} → v${newVersion})`,
495
+ name: `Upgrade XiaoMa-Cli core (v${currentVersion} → v${newVersion})`,
496
496
  value: 'upgrade',
497
497
  });
498
498
  } else if (versionCompare === 0) {
@@ -505,13 +505,13 @@ class Installer {
505
505
  }
506
506
  console.log(chalk.yellow('\n⚠️ Same version already installed'));
507
507
  choices.push({
508
- name: `Force reinstall BMad core (v${currentVersion} - reinstall)`,
508
+ name: `Force reinstall XiaoMa-Cli core (v${currentVersion} - reinstall)`,
509
509
  value: 'reinstall',
510
510
  });
511
511
  } else {
512
512
  console.log(chalk.yellow('\n⬇️ Installed version is newer than available'));
513
513
  choices.push({
514
- name: `Downgrade BMad core (v${currentVersion} → v${newVersion})`,
514
+ name: `Downgrade XiaoMa-Cli core (v${currentVersion} → v${newVersion})`,
515
515
  value: 'reinstall',
516
516
  });
517
517
  }
@@ -848,7 +848,7 @@ class Installer {
848
848
  }
849
849
 
850
850
  async performReinstall(config, installDir, spinner) {
851
- spinner.start('Preparing to reinstall BMad Method...');
851
+ spinner.start('Preparing to reinstall XiaoMa-Cli...');
852
852
 
853
853
  // Remove existing .xiaoma-core
854
854
  const bmadCorePath = path.join(installDir, '.xiaoma-core');
@@ -868,14 +868,14 @@ class Installer {
868
868
  }
869
869
 
870
870
  showSuccessMessage(config, installDir, options = {}) {
871
- console.log(chalk.green('\n✓ BMad Method installed successfully!\n'));
871
+ console.log(chalk.green('\n✓ XiaoMa-Cli installed successfully!\n'));
872
872
 
873
873
  const ides = config.ides || (config.ide ? [config.ide] : []);
874
874
  if (ides.length > 0) {
875
875
  for (const ide of ides) {
876
876
  const ideConfig = configLoader.getIdeConfiguration(ide);
877
877
  if (ideConfig?.instructions) {
878
- console.log(chalk.bold(`To use BMad agents in ${ideConfig.name}:`));
878
+ console.log(chalk.bold(`To use XiaoMa-Cli agents in ${ideConfig.name}:`));
879
879
  console.log(ideConfig.instructions);
880
880
  }
881
881
  }
@@ -951,7 +951,7 @@ class Installer {
951
951
  );
952
952
  console.log(
953
953
  chalk.red(
954
- 'This guide contains essential information about the BMad workflow and how to use the agents effectively.',
954
+ 'This guide contains essential information about the XiaoMa-Cli workflow and how to use the agents effectively.',
955
955
  ),
956
956
  );
957
957
  }
@@ -1024,7 +1024,7 @@ class Installer {
1024
1024
  return;
1025
1025
  }
1026
1026
 
1027
- console.log(chalk.bold('\nBMad Installation Status:\n'));
1027
+ console.log(chalk.bold('\nXiaoMa-Cli Installation Status:\n'));
1028
1028
  console.log(` Directory: ${installDir}`);
1029
1029
  console.log(` Version: ${manifest.version}`);
1030
1030
  console.log(` Installed: ${new Date(manifest.installed_at).toLocaleDateString()}`);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "xiaoma-cli",
3
- "version": "1.0.13",
4
- "description": "BMad Method installer - AI-powered Agile development framework",
3
+ "version": "1.0.14",
4
+ "description": "XiaoMa-Cli installer - AI-powered Agile development framework",
5
5
  "keywords": [
6
6
  "bmad",
7
7
  "agile",
@@ -20,7 +20,7 @@
20
20
  "url": "https://github.com/bmad-team/xiaoma-cli.git"
21
21
  },
22
22
  "license": "MIT",
23
- "author": "BMad Team",
23
+ "author": "XiaoMa Team",
24
24
  "main": "lib/installer.js",
25
25
  "bin": {
26
26
  "bmad": "./bin/bmad.js",