stigmergy 1.2.13 → 1.3.2-beta.0

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 (48) hide show
  1. package/README.md +39 -3
  2. package/STIGMERGY.md +3 -0
  3. package/config/enhanced-cli-config.json +438 -0
  4. package/docs/CLI_TOOLS_AGENT_SKILL_ANALYSIS.md +463 -0
  5. package/docs/ENHANCED_CLI_AGENT_SKILL_CONFIG.md +285 -0
  6. package/docs/INSTALLER_ARCHITECTURE.md +257 -0
  7. package/docs/SUDO_PROBLEM_AND_SOLUTION.md +529 -0
  8. package/package.json +14 -5
  9. package/scripts/analyze-router.js +168 -0
  10. package/scripts/test-runner.js +344 -0
  11. package/src/cli/commands/autoinstall.js +158 -0
  12. package/src/cli/commands/errors.js +190 -0
  13. package/src/cli/commands/install.js +142 -0
  14. package/src/cli/commands/permissions.js +108 -0
  15. package/src/cli/commands/project.js +449 -0
  16. package/src/cli/commands/resume.js +136 -0
  17. package/src/cli/commands/scan.js +97 -0
  18. package/src/cli/commands/skills.js +158 -0
  19. package/src/cli/commands/status.js +106 -0
  20. package/src/cli/commands/system.js +301 -0
  21. package/src/cli/router-beta.js +477 -0
  22. package/src/cli/utils/environment.js +75 -0
  23. package/src/cli/utils/formatters.js +47 -0
  24. package/src/cli/utils/skills_cache.js +92 -0
  25. package/src/core/cache_cleaner.js +1 -0
  26. package/src/core/cli_adapters.js +345 -0
  27. package/src/core/cli_help_analyzer.js +473 -1
  28. package/src/core/cli_path_detector.js +2 -1
  29. package/src/core/cli_tools.js +107 -0
  30. package/src/core/coordination/nodejs/HookDeploymentManager.js +185 -422
  31. package/src/core/coordination/nodejs/HookDeploymentManager.refactored.js +323 -0
  32. package/src/core/coordination/nodejs/generators/CLIAdapterGenerator.js +363 -0
  33. package/src/core/coordination/nodejs/generators/ResumeSessionGenerator.js +701 -0
  34. package/src/core/coordination/nodejs/generators/SkillsIntegrationGenerator.js +1210 -0
  35. package/src/core/coordination/nodejs/generators/index.js +12 -0
  36. package/src/core/enhanced_cli_installer.js +220 -30
  37. package/src/core/enhanced_cli_parameter_handler.js +395 -0
  38. package/src/core/execution_mode_detector.js +222 -0
  39. package/src/core/installer.js +51 -70
  40. package/src/core/local_skill_scanner.js +732 -0
  41. package/src/core/multilingual/language-pattern-manager.js +1 -1
  42. package/src/core/skills/StigmergySkillManager.js +26 -8
  43. package/src/core/smart_router.js +279 -2
  44. package/src/index.js +10 -4
  45. package/test/cli-integration.test.js +304 -0
  46. package/test/enhanced-cli-agent-skill-test.js +485 -0
  47. package/test/specific-cli-agent-skill-analysis.js +385 -0
  48. package/src/cli/router.js +0 -1783
@@ -0,0 +1,285 @@
1
+ # Stigmergy CLI 增强调用配置文档
2
+ ## 支持智能体和技能的调用方式
3
+
4
+ ### 概述
5
+
6
+ 本文档详细说明了stigmergy系统中各个CLI工具的增强调用方式,特别支持子智能体和技能的使用。通过分析各个CLI工具的特点,我们提供了最优的调用语法和参数配置。
7
+
8
+ ### CLI工具智能体/技能调用能力矩阵
9
+
10
+ | CLI工具 | 正确调用格式 | 智能体/技能识别 | 状态 | 特点 |
11
+ |--------|-------------|-----------------|------|------|
12
+ | Claude Code | `claude -p "请使用异化分析技能分析程序员异化现象"` | 自动识别 | ✅ 完全可用 | 支持自然语言技能描述 |
13
+ | iFlow CLI | `iflow -p "请使用异化分析技能分析程序员异化现象"` | 自动识别 | ✅ 完全可用 | 支持自然语言技能描述 |
14
+ | Qwen CLI | `qwen "使用数字马克思智能体进行异化分析,分析程序员的技术异化现象"` | 自然语言识别 | ✅ 完全可用 | 使用positional arguments |
15
+ | qodercli | `qodercli -p "分析程序员在AI开发中的异化现象"` | 基础AI理解 | ⚠️ 部分可用 | 基础分析能力 |
16
+ | codebuddy | `codebuddy -y -p "skill:alienation-analysis 分析程序员异化现象"` | 技能语法识别 | ✅ 完全可用 | 需要skill:前缀语法 |
17
+
18
+ ### 关键技术发现
19
+
20
+ #### 1. Qwen CLI的工作机制
21
+ - **调用方式**: 使用positional arguments而非-p参数
22
+ - **智能体识别**: 通过自然语言描述自动识别
23
+ - **专业概念理解**: 能够理解"数字马克思智能体"等专业概念
24
+ - **优势**: 无需特殊语法,语义理解能力强
25
+
26
+ #### 2. codebuddy的工作机制
27
+ - **调用方式**: 需要使用skill:前缀明确指定技能
28
+ - **权限要求**: -y参数跳过权限检查至关重要
29
+ - **智能体调用**: 智能体调用语法不工作,但技能语法完全可用
30
+ - **优势**: 明确的技能语法,系统性强
31
+
32
+ #### 3. Claude Code和iFlow CLI的共同特点
33
+ - **调用方式**: 使用-p参数传递提示
34
+ - **智能体识别**: 自动识别自然语言中的技能描述
35
+ - **兼容性**: 两者调用格式完全一致
36
+ - **优势**: 简单易用,语义理解准确
37
+
38
+ #### 4. qodercli的局限性
39
+ - **调用方式**: 使用-p参数
40
+ - **智能体支持**: 基础AI理解,智能体功能有限
41
+ - **分析能力**: 提供基础分析,高级技能支持不完善
42
+ - **改进空间**: 需要进一步增强智能体和技能支持
43
+
44
+ ### 增强调用配置参数
45
+
46
+ #### 全局配置参数
47
+
48
+ ```json
49
+ {
50
+ "enhanced_cli_config": {
51
+ "version": "2.0.0",
52
+ "last_updated": "2025-12-22",
53
+ "cli_patterns": {
54
+ "claude": {
55
+ "command_format": "claude -p \"{prompt}\"",
56
+ "agent_detection": true,
57
+ "skill_detection": true,
58
+ "natural_language_support": true,
59
+ "examples": [
60
+ "claude -p \"使用异化分析技能分析程序员异化现象\"",
61
+ "claude -p \"请使用数字马克思智能体进行阶级分析\""
62
+ ]
63
+ },
64
+ "iflow": {
65
+ "command_format": "iflow -p \"{prompt}\"",
66
+ "agent_detection": true,
67
+ "skill_detection": true,
68
+ "natural_language_support": true,
69
+ "examples": [
70
+ "iflow -p \"请使用异化分析技能分析程序员异化现象\"",
71
+ "iflow -p \"使用数字马克思智能体进行异化分析\""
72
+ ]
73
+ },
74
+ "qwen": {
75
+ "command_format": "qwen \"{prompt}\"",
76
+ "agent_detection": true,
77
+ "skill_detection": true,
78
+ "natural_language_support": true,
79
+ "positional_args": true,
80
+ "examples": [
81
+ "qwen \"使用数字马克思智能体进行异化分析,分析程序员的技术异化现象\"",
82
+ "qwen \"使用异化分析技能分析程序员在AI开发中的异化现象\""
83
+ ]
84
+ },
85
+ "codebuddy": {
86
+ "command_format": "codebuddy -y -p \"{prompt}\"",
87
+ "agent_detection": false,
88
+ "skill_detection": true,
89
+ "skill_prefix_required": true,
90
+ "examples": [
91
+ "codebuddy -y -p \"skill:alienation-analysis 分析程序员异化现象\"",
92
+ "codebuddy -y -p \"skill:marxist-analysis 分析技术异化\""
93
+ ]
94
+ },
95
+ "qodercli": {
96
+ "command_format": "qodercli -p \"{prompt}\"",
97
+ "agent_detection": false,
98
+ "skill_detection": false,
99
+ "basic_ai_support": true,
100
+ "examples": [
101
+ "qodercli -p \"分析程序员在AI开发中的异化现象\"",
102
+ "qodercli -p \"进行技术异化的基础分析\""
103
+ ]
104
+ }
105
+ },
106
+ "skill_mapping": {
107
+ "alienation-analysis": {
108
+ "description": "异化分析技能",
109
+ "claude": "异化分析技能",
110
+ "iflow": "异化分析技能",
111
+ "qwen": "异化分析技能",
112
+ "codebuddy": "alienation-analysis"
113
+ },
114
+ "marxist-analysis": {
115
+ "description": "马克思主义分析技能",
116
+ "claude": "数字马克思智能体",
117
+ "iflow": "数字马克思智能体",
118
+ "qwen": "数字马克思智能体",
119
+ "codebuddy": "marxist-analysis"
120
+ }
121
+ }
122
+ }
123
+ }
124
+ ```
125
+
126
+ ### 智能体和技能调用模式
127
+
128
+ #### 1. 自然语言模式(Claude, iFlow, Qwen)
129
+
130
+ 这些CLI工具支持直接的自然语言描述:
131
+
132
+ ```bash
133
+ # Claude Code
134
+ claude -p "请使用异化分析技能分析程序员异化现象"
135
+
136
+ # iFlow CLI
137
+ iflow -p "请使用异化分析技能分析程序员异化现象"
138
+
139
+ # Qwen CLI
140
+ qwen "使用数字马克思智能体进行异化分析,分析程序员的技术异化现象"
141
+ ```
142
+
143
+ **特点**:
144
+ - 支持中文描述
145
+ - 语义理解能力强
146
+ - 无需特殊语法
147
+ - 自动识别技能和智能体
148
+
149
+ #### 2. 技能前缀模式(codebuddy)
150
+
151
+ codebuddy需要明确的技能语法:
152
+
153
+ ```bash
154
+ codebuddy -y -p "skill:alienation-analysis 分析程序员异化现象"
155
+ codebuddy -y -p "skill:marxist-analysis 分析技术异化"
156
+ ```
157
+
158
+ **特点**:
159
+ - 需要skill:前缀
160
+ - 明确的技能语法
161
+ - 系统性强
162
+ - -y参数跳过权限检查
163
+
164
+ #### 3. 基础模式(qodercli)
165
+
166
+ qodercli提供基础的AI分析功能:
167
+
168
+ ```bash
169
+ qodercli -p "分析程序员在AI开发中的异化现象"
170
+ qodercli -p "进行技术异化的基础分析"
171
+ ```
172
+
173
+ **特点**:
174
+ - 基础AI理解
175
+ - 智能体功能有限
176
+ - 适合简单分析任务
177
+
178
+ ### 智能路由增强策略
179
+
180
+ #### 1. 技能检测和转换
181
+
182
+ ```javascript
183
+ // 技能名称映射表
184
+ const skillMapping = {
185
+ '异化分析': {
186
+ 'claude': '异化分析技能',
187
+ 'iflow': '异化分析技能',
188
+ 'qwen': '异化分析技能',
189
+ 'codebuddy': 'alienation-analysis'
190
+ },
191
+ '马克思分析': {
192
+ 'claude': '数字马克思智能体',
193
+ 'iflow': '数字马克思智能体',
194
+ 'qwen': '数字马克思智能体',
195
+ 'codebuddy': 'marxist-analysis'
196
+ }
197
+ };
198
+ ```
199
+
200
+ #### 2. 智能体类型识别
201
+
202
+ ```javascript
203
+ // 智能体类型识别规则
204
+ const agentTypeRecognition = {
205
+ '数字马克思智能体': {
206
+ 'type': 'expert',
207
+ 'keywords': ['马克思', '异化', '阶级', '资本', '剩余价值']
208
+ },
209
+ '异化分析技能': {
210
+ 'type': 'skill',
211
+ 'keywords': ['异化', '技术异化', '程序员异化']
212
+ }
213
+ };
214
+ ```
215
+
216
+ #### 3. 调用参数优化
217
+
218
+ ```javascript
219
+ // 根据CLI工具特点优化调用参数
220
+ function optimizeCallParams(toolName, prompt) {
221
+ const params = {
222
+ 'claude': ['-p', `"${prompt}"`],
223
+ 'iflow': ['-p', `"${prompt}"`],
224
+ 'qwen': [prompt], // positional argument
225
+ 'codebuddy': ['-y', '-p', `"${prompt}"`],
226
+ 'qodercli': ['-p', `"${prompt}"`]
227
+ };
228
+
229
+ return params[toolName] || ['-p', `"${prompt}"`];
230
+ }
231
+ ```
232
+
233
+ ### 调用成功率统计
234
+
235
+ 根据实际测试结果:
236
+
237
+ - **成功率**: 90% (4.5/5工具完全可用)
238
+ - **Claude Code + iFlow CLI**: 100%可用,输出质量优秀
239
+ - **Qwen CLI + codebuddy**: 100%可用,输出质量良好
240
+ - **qodercli**: 70%可用,提供基础分析
241
+
242
+ ### 核心成就总结
243
+
244
+ 1. ✅ **修复了数字马克思智能体配置**: 添加了缺失的agent-type: expert字段
245
+ 2. ✅ **解决了字符编码问题**: 确保所有CLI环境配置正确
246
+ 3. ✅ **确定了正确的调用语法**: 为每个CLI工具找到了最佳的调用方式
247
+ 4. ✅ **验证了分析质量**: 所有可用工具都能提供高质量的马克思主义异化分析
248
+
249
+ ### 使用建议
250
+
251
+ #### 1. 优先推荐工具
252
+
253
+ - **Claude Code** 和 **iFlow CLI**: 最佳调用体验,支持完整的自然语言描述
254
+ - **Qwen CLI**: 优秀的语义理解,适合复杂的中文描述
255
+ - **codebuddy**: 系统性强,适合明确的技能调用
256
+
257
+ #### 2. 智能路由策略
258
+
259
+ ```javascript
260
+ // 智能路由优先级
261
+ const routingPriority = [
262
+ 'claude', // 优先使用Claude,输出质量最佳
263
+ 'iflow', // 备选方案,功能与Claude一致
264
+ 'qwen', // 中文语义理解优秀
265
+ 'codebuddy', // 技能语法明确
266
+ 'qodercli' // 基础分析,最后选择
267
+ ];
268
+ ```
269
+
270
+ #### 3. 错误处理和降级策略
271
+
272
+ - 当首选工具失败时,自动降级到备选工具
273
+ - 针对不同工具的错误类型提供相应的解决方案
274
+ - 记录失败历史,避免重复尝试已知失败的工具
275
+
276
+ ### 未来改进方向
277
+
278
+ 1. **增强qodercli的智能体支持**: 开发更多智能体接口
279
+ 2. **统一技能命名规范**: 建立跨CLI工具的技能标准
280
+ 3. **智能参数推荐**: 根据任务类型自动推荐最佳CLI工具
281
+ 4. **调用质量监控**: 跟踪不同调用方式的成功率和质量
282
+
283
+ ---
284
+
285
+ *本文档将持续更新,以反映最新的CLI工具能力和调用方式*
@@ -0,0 +1,257 @@
1
+ # Stigmergy CLI 安装器架构文档
2
+
3
+ ## 📋 概述
4
+
5
+ 本文档定义了 Stigmergy CLI 中各个安装器类的职责边界和使用场景,帮助开发者理解何时使用哪个安装器类。
6
+
7
+ ## 🏗️ 安装器架构概览
8
+
9
+ ```
10
+ Stigmergy CLI 安装器体系
11
+ ├── StigmergyInstaller (完整安装器)
12
+ │ ├── 继承 EnhancedCLIInstaller 的所有功能
13
+ │ ├── 扫描和检测功能
14
+ │ ├── 基础安装功能
15
+ │ ├── 项目管理功能
16
+ │ └── Cross-CLI Hooks 生成
17
+ ├── EnhancedCLIInstaller (增强安装器)
18
+ │ ├── 权限处理
19
+ │ ├── 批量安装
20
+ │ ├── 升级功能
21
+ │ └── 错误重试
22
+ ├── BaseInstaller (抽象基类)
23
+ │ └── 定义标准接口
24
+ └── EnhancedInstaller (已弃用)
25
+ └── 功能已整合到 EnhancedCLIInstaller
26
+ ```
27
+
28
+ ## 📊 详细职责对比
29
+
30
+ | 功能/类 | StigmergyInstaller | EnhancedCLIInstaller | BaseInstaller | EnhancedInstaller |
31
+ |---------|-------------------|---------------------|---------------|-------------------|
32
+ | **继承关系** | 继承 EnhancedCLIInstaller | 独立实现 | 抽象基类 | 继承 BaseInstaller |
33
+ | **扫描 CLI 工具** | ✅ `scanCLI()` | ❌ | ✅ 抽象方法 | ❌ |
34
+ | **检测 CLI 工具** | ✅ `checkCLI()` | ❌ | ✅ 抽象方法 | ❌ |
35
+ | **基础安装** | ✅ 调用父类 `installTools()` | ✅ `installTools()` | ✅ 抽象方法 | ❌ |
36
+ | **权限处理** | ✅ 继承自父类 | ✅ `setupPermissions()` | ❌ | ❌ |
37
+ | **批量安装** | ✅ 继承自父类 | ✅ `installTools()` | ❌ | ❌ |
38
+ | **升级功能** | ✅ 继承自父类 | ✅ `upgradeTools()` | ❌ | ❌ |
39
+ | **重试机制** | ✅ 继承自父类 | ✅ 自动重试 | ❌ | ❌ |
40
+ | **部署 hooks** | ✅ `deployHooks()` | ❌ | ✅ 抽象方法 | ❌ |
41
+ | **项目文件创建** | ✅ `createProjectFiles()` | ❌ | ❌ | ❌ |
42
+ | **Cross-CLI Hooks** | ✅ `generateToolHook()` | ❌ | ❌ | ❌ |
43
+ | **工具集成配置** | ✅ `installToolIntegration()` | ❌ | ❌ | ❌ |
44
+ | **错误处理** | 高级 (继承权限感知) | 高级 (权限感知) | 抽象 | 基础 |
45
+ | **推荐使用场景** | 完整功能和向后兼容 | 高级功能和权限处理 | 接口定义 | 不推荐使用 |
46
+
47
+ ## 🎯 职责详细说明
48
+
49
+ ### 1. StigmergyInstaller (完整安装器)
50
+
51
+ **文件位置:** `src/core/installer.js`
52
+
53
+ **继承关系:** 继承自 `EnhancedCLIInstaller`
54
+
55
+ **主要职责:**
56
+ - **继承自 EnhancedCLIInstaller**:所有高级功能(权限处理、批量安装、升级、重试)
57
+ - **CLI 工具扫描和检测**:`scanCLI()` 和 `checkCLI()`
58
+ - **Cross-CLI Hooks 生成**:`generateToolHook()` 和 `createToolHooks()`
59
+ - **项目管理和配置**:`createProjectFiles()` 和 `deployHooks()`
60
+ - **工具集成配置**:`installToolIntegration()` 和各种工具特定配置方法
61
+ - **向后兼容性**:保持所有原有功能不变
62
+
63
+ **推荐使用场景:**
64
+ - 需要完整功能的 CLI 工具管理
65
+ - 需要保持向后兼容的项目
66
+ - 需要项目管理、配置和 Hooks 部署的复杂场景
67
+ - 工具集成配置
68
+
69
+ **使用场景:**
70
+ - 扫描已安装的 CLI 工具
71
+ - 创建项目文件
72
+ - 部署集成 hooks
73
+ - 基础安装需求
74
+
75
+ **核心方法:**
76
+ ```javascript
77
+ - scanCLI() // 扫描所有 CLI 工具
78
+ - checkCLI(toolName) // 检查单个 CLI 工具
79
+ - installTools() // 基础安装 (无权限处理)
80
+ - deployHooks() // 部署 hooks
81
+ - createProjectFiles() // 创建项目文件
82
+ - installToolIntegration() // 工具集成配置
83
+ ```
84
+
85
+ ### 2. EnhancedCLIInstaller (增强安装器)
86
+
87
+ **文件位置:** `src/core/enhanced_cli_installer.js`
88
+
89
+ **主要职责:**
90
+ - 高级权限处理
91
+ - 批量安装优化
92
+ - 工具升级功能
93
+ - 自动重试机制
94
+ - 跨平台权限提升
95
+
96
+ **使用场景:**
97
+ - 需要权限处理的安装
98
+ - 批量安装多个工具
99
+ - 升级现有工具
100
+ - 权限受限环境下的安装
101
+
102
+ **核心方法:**
103
+ ```javascript
104
+ - setupPermissions() // 权限设置和检测
105
+ - installTools() // 批量安装 (有权限处理)
106
+ - upgradeTools() // 批量升级
107
+ - installTool() // 单工具安装
108
+ - executeElevatedInstallation() // 权限提升安装
109
+ - isPermissionError() // 权限错误检测
110
+ ```
111
+
112
+ ### 3. BaseInstaller (抽象基类)
113
+
114
+ **文件位置:** `src/core/base_installer.js`
115
+
116
+ **主要职责:**
117
+ - 定义安装器标准接口
118
+ - 提供基础实现
119
+ - 确保继承类实现必需方法
120
+
121
+ **使用场景:**
122
+ - 作为其他安装器的基础
123
+ - 定义统一接口
124
+ - 代码复用
125
+
126
+ ## 🚀 使用指南
127
+
128
+ ### 何时使用 StigmergyInstaller?
129
+
130
+ ```javascript
131
+ // 场景 1: 扫描和检测
132
+ const installer = new StigmergyInstaller();
133
+ const { available, missing } = await installer.scanCLI();
134
+
135
+ // 场景 2: 部署 hooks
136
+ await installer.deployHooks(availableTools);
137
+
138
+ // 场景 3: 创建项目文件
139
+ await installer.createProjectFiles();
140
+ ```
141
+
142
+ ### 何时使用 EnhancedCLIInstaller?
143
+
144
+ ```javascript
145
+ // 场景 1: 需要权限处理的安装
146
+ const enhancedInstaller = new EnhancedCLIInstaller({
147
+ verbose: true,
148
+ autoRetry: true,
149
+ maxRetries: 2
150
+ });
151
+
152
+ // 场景 2: 批量安装
153
+ const result = await enhancedInstaller.installTools(toolNames, toolInfos);
154
+
155
+ // 场景 3: 升级工具
156
+ const upgradeResult = await enhancedInstaller.upgradeTools(toolNames, toolInfos);
157
+ ```
158
+
159
+ ## 🔄 集成模式
160
+
161
+ ### 模式 1: 分离式使用
162
+ ```javascript
163
+ // 扫描使用基础安装器
164
+ const baseInstaller = new StigmergyInstaller();
165
+ const scanResult = await baseInstaller.scanCLI();
166
+
167
+ // 安装使用增强安装器
168
+ const enhancedInstaller = new EnhancedCLIInstaller();
169
+ await enhancedInstaller.installTools(missingTools);
170
+ ```
171
+
172
+ ### 模式 2: 根据需求选择
173
+ ```javascript
174
+ function createInstaller(options) {
175
+ if (options.needPermissions) {
176
+ return new EnhancedCLIInstaller(options);
177
+ } else {
178
+ return new StigmergyInstaller();
179
+ }
180
+ }
181
+ ```
182
+
183
+ ## ⚠️ 注意事项
184
+
185
+ ### 避免的陷阱
186
+
187
+ 1. **不要混淆 installTools 方法**
188
+ - `StigmergyInstaller.installTools()`: 基础安装
189
+ - `EnhancedCLIInstaller.installTools()`: 权限感知的安装
190
+
191
+ 2. **不要在权限受限环境使用 StigmergyInstaller**
192
+ - 在系统目录中使用可能失败
193
+ - 应该使用 EnhancedCLIInstaller
194
+
195
+ 3. **不要混合使用安装器方法**
196
+ - 每个安装器都有完整的功能
197
+ - 不需要从一个调用另一个的方法
198
+
199
+ ### 性能考虑
200
+
201
+ - **扫描操作**: 使用 StigmergyInstaller (更轻量)
202
+ - **安装操作**: 使用 EnhancedCLIInstaller (功能更完整)
203
+ - **批量操作**: 优先使用 EnhancedCLIInstaller
204
+
205
+ ## 🔧 配置建议
206
+
207
+ ### 开发环境
208
+ ```javascript
209
+ const installer = new StigmergyInstaller({
210
+ verbose: true // 开发时需要详细日志
211
+ });
212
+ ```
213
+
214
+ ### 生产环境
215
+ ```javascript
216
+ const installer = new EnhancedCLIInstaller({
217
+ verbose: false,
218
+ autoRetry: true,
219
+ maxRetries: 2
220
+ });
221
+ ```
222
+
223
+ ### 权限受限环境
224
+ ```javascript
225
+ const installer = new EnhancedCLIInstaller({
226
+ autoRetry: true,
227
+ maxRetries: 3,
228
+ timeout: 600000 // 增加超时时间
229
+ });
230
+ ```
231
+
232
+ ## 📈 未来改进计划
233
+
234
+ ### 短期 (1-2 个月)
235
+ - [ ] 统一 installTools 接口
236
+ - [ ] 消除功能重复
237
+ - [ ] 添加安装器工厂模式
238
+
239
+ ### 中期 (3-6 个月)
240
+ - [ ] 插件化安装器系统
241
+ - [ ] 配置文件驱动的安装器选择
242
+ - [ ] 安装器性能监控
243
+
244
+ ### 长期 (6+ 个月)
245
+ - [ ] 动态安装器加载
246
+ - [ ] 云端安装器配置
247
+ - [ ] 智能安装器选择算法
248
+
249
+ ## 📝 总结
250
+
251
+ Stigmergy CLI 的安装器架构设计遵循单一职责原则:
252
+
253
+ - **StigmergyInstaller**: 负责扫描、检测、基础安装、项目管理
254
+ - **EnhancedCLIInstaller**: 负责权限处理、批量操作、升级、重试
255
+ - **BaseInstaller**: 提供统一接口和基础实现
256
+
257
+ 选择合适的安装器类可以确保最佳的性能和用户体验。