@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 +1 -1
- package/tools/installer/README.md +1 -1
- package/tools/installer/config/install.config.yaml +18 -18
- package/tools/installer/lib/config-loader.js +2 -2
- package/tools/installer/lib/ide-setup.js +24 -22
- package/tools/installer/lib/installer.js +10 -10
- package/tools/installer/package.json +3 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
installation-options:
|
|
2
2
|
full:
|
|
3
|
-
name: Complete
|
|
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
|
|
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/
|
|
24
|
+
rule-dir: .claude/commands/XiaoMa/
|
|
25
25
|
format: multi-file
|
|
26
26
|
command-suffix: .md
|
|
27
27
|
instructions: |
|
|
28
|
-
# To use
|
|
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/
|
|
33
|
+
rule-dir: .crush/commands/XiaoMa/
|
|
34
34
|
format: multi-file
|
|
35
35
|
command-suffix: .md
|
|
36
36
|
instructions: |
|
|
37
|
-
# To use
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
150
|
-
# 1. The installer updates/creates AGENTS.md at your project root with
|
|
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
|
|
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 || '
|
|
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: '
|
|
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
|
|
96
|
+
// Inject/update a XIAOMA section with guidance, directory, and details.
|
|
97
97
|
const filePath = path.join(installDir, 'AGENTS.md');
|
|
98
|
-
const startMarker = '<!-- BEGIN:
|
|
99
|
-
const endMarker = '<!-- END:
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 = ['#
|
|
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
|
|
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 || '
|
|
847
|
+
return config.slashPrefix || 'XiaoMa';
|
|
848
848
|
}
|
|
849
|
-
return '
|
|
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 || '
|
|
854
|
+
return config.slashPrefix || 'XiaoMa';
|
|
855
855
|
} catch (error) {
|
|
856
|
-
console.warn(`Failed to read core slashPrefix, using default '
|
|
857
|
-
return '
|
|
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
|
|
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(
|
|
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('
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
493
|
+
console.log(chalk.cyan('\n⬆️ Upgrade available for XiaoMa-Cli core'));
|
|
494
494
|
choices.push({
|
|
495
|
-
name: `Upgrade
|
|
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
|
|
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
|
|
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
|
|
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✓
|
|
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
|
|
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
|
|
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('\
|
|
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.
|
|
4
|
-
"description": "
|
|
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": "
|
|
23
|
+
"author": "XiaoMa Team",
|
|
24
24
|
"main": "lib/installer.js",
|
|
25
25
|
"bin": {
|
|
26
26
|
"bmad": "./bin/bmad.js",
|