stigmergy 1.2.13 → 1.3.1-beta

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 (84) hide show
  1. package/README.md +39 -3
  2. package/STIGMERGY.md +3 -0
  3. package/config/builtin-skills.json +43 -0
  4. package/config/enhanced-cli-config.json +438 -0
  5. package/docs/CLI_TOOLS_AGENT_SKILL_ANALYSIS.md +463 -0
  6. package/docs/DESIGN_CLI_HELP_ANALYZER_REFACTOR.md +726 -0
  7. package/docs/ENHANCED_CLI_AGENT_SKILL_CONFIG.md +285 -0
  8. package/docs/IMPLEMENTATION_CHECKLIST_CLI_HELP_ANALYZER_REFACTOR.md +1268 -0
  9. package/docs/INSTALLER_ARCHITECTURE.md +257 -0
  10. package/docs/LESSONS_LEARNED.md +252 -0
  11. package/docs/SPECS_CLI_HELP_ANALYZER_REFACTOR.md +287 -0
  12. package/docs/SUDO_PROBLEM_AND_SOLUTION.md +529 -0
  13. package/docs/correct-skillsio-implementation.md +368 -0
  14. package/docs/development_guidelines.md +276 -0
  15. package/docs/independent-resume-implementation.md +198 -0
  16. package/docs/resumesession-final-implementation.md +195 -0
  17. package/docs/resumesession-usage.md +87 -0
  18. package/package.json +19 -9
  19. package/scripts/analyze-router.js +168 -0
  20. package/scripts/run-comprehensive-tests.js +230 -0
  21. package/scripts/run-quick-tests.js +90 -0
  22. package/scripts/test-runner.js +344 -0
  23. package/skills/resumesession/INDEPENDENT_SKILL.md +171 -0
  24. package/skills/resumesession/SKILL.md +127 -0
  25. package/skills/resumesession/__init__.py +33 -0
  26. package/skills/resumesession/implementations/simple-resume.js +13 -0
  27. package/src/adapters/claude/install_claude_integration.js +9 -1
  28. package/src/adapters/codebuddy/install_codebuddy_integration.js +3 -1
  29. package/src/adapters/codex/install_codex_integration.js +15 -5
  30. package/src/adapters/gemini/install_gemini_integration.js +3 -1
  31. package/src/adapters/qwen/install_qwen_integration.js +3 -1
  32. package/src/cli/commands/autoinstall.js +65 -0
  33. package/src/cli/commands/errors.js +190 -0
  34. package/src/cli/commands/independent-resume.js +395 -0
  35. package/src/cli/commands/install.js +179 -0
  36. package/src/cli/commands/permissions.js +108 -0
  37. package/src/cli/commands/project.js +485 -0
  38. package/src/cli/commands/scan.js +97 -0
  39. package/src/cli/commands/simple-resume.js +377 -0
  40. package/src/cli/commands/skills.js +158 -0
  41. package/src/cli/commands/status.js +113 -0
  42. package/src/cli/commands/stigmergy-resume.js +775 -0
  43. package/src/cli/commands/system.js +301 -0
  44. package/src/cli/commands/universal-resume.js +394 -0
  45. package/src/cli/router-beta.js +471 -0
  46. package/src/cli/utils/environment.js +75 -0
  47. package/src/cli/utils/formatters.js +47 -0
  48. package/src/cli/utils/skills_cache.js +92 -0
  49. package/src/core/cache_cleaner.js +1 -0
  50. package/src/core/cli_adapters.js +345 -0
  51. package/src/core/cli_help_analyzer.js +582 -26
  52. package/src/core/cli_path_detector.js +702 -709
  53. package/src/core/cli_tools.js +515 -160
  54. package/src/core/coordination/nodejs/CLIIntegrationManager.js +18 -0
  55. package/src/core/coordination/nodejs/HookDeploymentManager.js +242 -412
  56. package/src/core/coordination/nodejs/HookDeploymentManager.refactored.js +323 -0
  57. package/src/core/coordination/nodejs/generators/CLIAdapterGenerator.js +363 -0
  58. package/src/core/coordination/nodejs/generators/ResumeSessionGenerator.js +932 -0
  59. package/src/core/coordination/nodejs/generators/SkillsIntegrationGenerator.js +1395 -0
  60. package/src/core/coordination/nodejs/generators/index.js +12 -0
  61. package/src/core/enhanced_cli_installer.js +1208 -608
  62. package/src/core/enhanced_cli_parameter_handler.js +402 -0
  63. package/src/core/execution_mode_detector.js +222 -0
  64. package/src/core/installer.js +151 -106
  65. package/src/core/local_skill_scanner.js +732 -0
  66. package/src/core/multilingual/language-pattern-manager.js +1 -1
  67. package/src/core/skills/BuiltinSkillsDeployer.js +188 -0
  68. package/src/core/skills/StigmergySkillManager.js +123 -16
  69. package/src/core/skills/embedded-openskills/SkillParser.js +7 -3
  70. package/src/core/smart_router.js +291 -2
  71. package/src/index.js +10 -4
  72. package/src/utils.js +66 -7
  73. package/test/cli-integration.test.js +304 -0
  74. package/test/direct_smart_router_test.js +88 -0
  75. package/test/enhanced-cli-agent-skill-test.js +485 -0
  76. package/test/simple_test.js +82 -0
  77. package/test/smart_router_test_runner.js +123 -0
  78. package/test/smart_routing_edge_cases.test.js +284 -0
  79. package/test/smart_routing_simple_verification.js +139 -0
  80. package/test/smart_routing_verification.test.js +346 -0
  81. package/test/specific-cli-agent-skill-analysis.js +385 -0
  82. package/test/unit/smart_router.test.js +295 -0
  83. package/test/very_simple_test.js +54 -0
  84. package/src/cli/router.js +0 -1783
@@ -0,0 +1,287 @@
1
+ # CLI Help Analyzer 重构 - 规范需求文档 (SPECS)
2
+
3
+ ## 1. 项目概述
4
+
5
+ ### 1.1 背景
6
+ 当前 `CLIHelpAnalyzer` 类存在以下问题:
7
+ - 方法冗余:5个方法实际都调用同一个核心方法
8
+ - 职责不清:基础分析和增强分析的边界模糊
9
+ - 调用混乱:不同地方调用不同方法
10
+ - 维护困难:修改一个方法可能影响多个调用点
11
+
12
+ ### 1.2 目标
13
+ 重构 `CLIHelpAnalyzer` 类,实现:
14
+ - 单一入口:所有分析通过 `analyzeCLI()` 进入
15
+ - 参数控制:使用 `options` 参数控制分析深度
16
+ - 向后兼容:保留旧方法作为包装器
17
+ - 职责清晰:每个方法只做一件事
18
+
19
+ ### 1.3 范围
20
+ - 重构 `src/core/cli_help_analyzer.js`
21
+ - 更新外部调用方代码(如需要)
22
+ - 保持所有现有功能不变
23
+ - 保持向后兼容性
24
+
25
+ ## 2. 功能需求
26
+
27
+ ### 2.1 核心方法重构
28
+
29
+ #### FR-001: 统一 analyzeCLI() 方法
30
+ **需求描述**:`analyzeCLI()` 方法应支持可选参数控制分析行为
31
+
32
+ **优先级**:高 (P0)
33
+
34
+ **验收标准**:
35
+ - [ ] 方法签名:`async analyzeCLI(cliName, options = {})`
36
+ - [ ] 支持 `options.enhanced` 布尔参数(默认 false)
37
+ - [ ] 支持 `options.forceRefresh` 布尔参数(默认 false)
38
+ - [ ] 当 `enhanced=true` 时,返回结果包含 `agentSkillSupport` 字段
39
+ - [ ] 当 `forceRefresh=true` 时,忽略缓存重新分析
40
+ - [ ] 保持原有的版本检测逻辑
41
+ - [ ] 保持原有的缓存过期逻辑(24小时)
42
+
43
+ **示例**:
44
+ ```javascript
45
+ // 基础分析
46
+ const pattern = await analyzer.analyzeCLI('claude');
47
+
48
+ // 增强分析
49
+ const enhancedPattern = await analyzer.analyzeCLI('claude', { enhanced: true });
50
+
51
+ // 强制刷新
52
+ const freshPattern = await analyzer.analyzeCLI('claude', { forceRefresh: true });
53
+
54
+ // 组合使用
55
+ const result = await analyzer.analyzeCLI('claude', {
56
+ enhanced: true,
57
+ forceRefresh: true
58
+ });
59
+ ```
60
+
61
+ #### FR-002: 提取 addEnhancedInfo() 方法
62
+ **需求描述**:将增强信息添加逻辑提取为独立方法
63
+
64
+ **优先级**:高 (P0)
65
+
66
+ **验收标准**:
67
+ - [ ] 方法签名:`addEnhancedInfo(analysis, cliName)`
68
+ - [ ] 从 `this.enhancedPatterns` 读取配置
69
+ - [ ] 添加 `agentSkillSupport` 字段到分析结果
70
+ - [ ] 返回增强后的分析对象
71
+ - [ ] 不修改原始 `analysis` 对象(返回新对象)
72
+
73
+ **示例**:
74
+ ```javascript
75
+ const basicAnalysis = { cliName: 'claude', version: '2.1.4' };
76
+ const enhancedAnalysis = analyzer.addEnhancedInfo(basicAnalysis, 'claude');
77
+ // enhancedAnalysis.agentSkillSupport = { supportsAgents: true, ... }
78
+ ```
79
+
80
+ #### FR-003: 简化包装器方法
81
+ **需求描述**:简化 `getCLIPattern()`, `getEnhancedCLIPattern()`, `analyzeCLIEnhanced()` 为包装器
82
+
83
+ **优先级**:中 (P1)
84
+
85
+ **验收标准**:
86
+ - [ ] `getCLIPattern(cliName)` 调用 `analyzeCLI(cliName, { enhanced: false })`
87
+ - [ ] `getEnhancedCLIPattern(cliName)` 调用 `analyzeCLI(cliName, { enhanced: true })`
88
+ - [ ] `analyzeCLIEnhanced(cliName)` 调用 `analyzeCLI(cliName, { enhanced: true })`
89
+ - [ ] 保持方法签名不变
90
+ - [ ] 保持返回值格式不变
91
+
92
+ ### 2.2 版本检测和缓存
93
+
94
+ #### FR-004: 版本检测逻辑
95
+ **需求描述**:确保版本检测在所有场景下正常工作
96
+
97
+ **优先级**:高 (P0)
98
+
99
+ **验收标准**:
100
+ - [ ] 获取当前版本:执行 `cliName --version` 命令
101
+ - [ ] 对比缓存版本:`currentVersion === cachedAnalysis.version`
102
+ - [ ] 版本相同时使用缓存
103
+ - [ ] 版本不同时重新分析
104
+ - [ ] 版本未知时(unknown)重新分析
105
+
106
+ #### FR-005: 缓存过期逻辑
107
+ **需求描述**:确保缓存过期机制正常工作
108
+
109
+ **优先级**:高 (P0)
110
+
111
+ **验收标准**:
112
+ - [ ] 缓存有效期:24小时
113
+ - [ ] 超过24小时自动过期
114
+ - [ ] 过期后重新分析
115
+ - [ ] 更新缓存时记录时间戳
116
+
117
+ ### 2.3 向后兼容性
118
+
119
+ #### FR-006: 保持外部调用兼容
120
+ **需求描述**:确保所有外部调用不受影响
121
+
122
+ **优先级**:高 (P0)
123
+
124
+ **验收标准**:
125
+ - [ ] `smart_router.js` 的调用正常工作
126
+ - [ ] `enhanced_cli_parameter_handler.js` 的调用正常工作
127
+ - [ ] 所有测试用例通过
128
+ - [ ] 不破坏现有功能
129
+
130
+ ### 2.4 错误处理
131
+
132
+ #### FR-007: 错误处理和恢复
133
+ **需求描述**:确保系统在错误情况下能够优雅处理和恢复
134
+
135
+ **优先级**:高 (P0)
136
+
137
+ **验收标准**:
138
+ - [ ] 记录失败尝试到配置文件
139
+ - [ ] 失败后能够重新分析
140
+ - [ ] 错误日志记录到错误处理器
141
+ - [ ] 工具不存在时返回失败结果而非抛出异常
142
+ - [ ] 缓存读取失败时使用内存配置
143
+ - [ ] 配置文件写入失败时不阻塞主流程
144
+
145
+ ### 2.5 边界条件处理
146
+
147
+ #### FR-008: 边界条件处理
148
+ **需求描述**:正确处理各种边界条件和异常输入
149
+
150
+ **优先级**:高 (P0)
151
+
152
+ **验收标准**:
153
+ - [ ] cliName为空或null时抛出明确错误
154
+ - [ ] cliName为空字符串时抛出明确错误
155
+ - [ ] cliName不存在于配置中时抛出明确错误
156
+ - [ ] options参数为null时使用默认值
157
+ - [ ] options参数类型错误时抛出明确错误
158
+ - [ ] 配置文件不存在时创建默认配置
159
+ - [ ] 配置文件损坏时恢复默认配置
160
+ - [ ] 版本检测失败时使用 'unknown' 标记
161
+ - [ ] 帮助信息获取失败时记录错误并返回失败结果
162
+ - [ ] CLI命令执行超时时记录错误并返回失败结果
163
+
164
+ ## 3. 非功能需求
165
+
166
+ ### 3.1 性能需求
167
+
168
+ #### NFR-001: 性能不降低
169
+ **需求描述**:重构后性能不低于重构前
170
+
171
+ **优先级**:高 (P0)
172
+
173
+ **验收标准**:
174
+ - [ ] 缓存命中时间:≤ 3秒
175
+ - [ ] 首次分析时间:≤ 10秒(单个CLI)
176
+ - [ ] 并行分析时间:≤ 35秒(13个CLI)
177
+
178
+ #### NFR-002: 内存使用
179
+ **需求描述**:内存使用不显著增加
180
+
181
+ **优先级**:中 (P1)
182
+
183
+ **验收标准**:
184
+ - [ ] 内存增量:≤ 10MB
185
+ - [ ] 无内存泄漏
186
+
187
+ ### 3.2 可维护性需求
188
+
189
+ #### NFR-003: 代码可读性
190
+ **需求描述**:代码结构清晰,易于理解
191
+
192
+ **优先级**:高 (P0)
193
+
194
+ **验收标准**:
195
+ - [ ] 方法职责单一
196
+ - [ ] 方法长度 ≤ 50行
197
+ - [ ] 注释清晰完整
198
+ - [ ] 变量命名规范
199
+
200
+ #### NFR-004: 测试覆盖
201
+ **需求描述**:确保充分的测试覆盖
202
+
203
+ **优先级**:高 (P0)
204
+
205
+ **验收标准**:
206
+ - [ ] 单元测试覆盖率 ≥ 80%
207
+ - [ ] 集成测试覆盖所有主要流程
208
+ - [ ] 性能测试验证性能指标
209
+
210
+ ## 4. 约束条件
211
+
212
+ ### 4.1 技术约束
213
+ - 必须使用现有的 `CLI_TOOLS` 配置
214
+ - 必须保持现有的缓存文件格式
215
+ - 必须保持现有的 `enhancedPatterns` 配置
216
+
217
+ ### 4.2 兼容性约束
218
+ - 必须保持向后兼容性
219
+ - 不能破坏现有API
220
+ - 必须支持所有现有调用方式
221
+
222
+ ### 4.3 时间约束
223
+ - 重构完成后需要通过所有现有测试
224
+ - 重构不能影响已发布的功能
225
+
226
+ ## 5. 依赖关系
227
+
228
+ ### 5.1 内部依赖
229
+ - `cli_tools.js` - CLI工具配置
230
+ - `error_handler.js` - 错误处理
231
+ - `cli_path_detector.js` - 路径检测
232
+
233
+ ### 5.2 外部依赖
234
+ - Node.js 内置模块:`child_process`, `fs`, `path`, `os`
235
+
236
+ ## 6. 风险评估
237
+
238
+ ### 6.1 技术风险
239
+ | 风险 | 概率 | 影响 | 缓解措施 |
240
+ |------|------|------|----------|
241
+ | 破坏现有功能 | 中 | 高 | 充分测试,保留包装器 |
242
+ | 性能下降 | 低 | 中 | 性能测试,基准对比 |
243
+ | 缓存逻辑错误 | 中 | 高 | 单元测试,集成测试 |
244
+
245
+ ### 6.2 业务风险
246
+ | 风险 | 概率 | 影响 | 缓解措施 |
247
+ |------|------|------|----------|
248
+ | 用户升级后出现问题 | 低 | 高 | 向后兼容,充分测试 |
249
+ | 维护成本增加 | 低 | 低 | 代码审查,文档完善 |
250
+
251
+ ## 7. 验收标准
252
+
253
+ ### 7.1 功能验收
254
+ - [ ] 所有功能需求 (FR-001 到 FR-006) 满足
255
+ - [ ] 所有现有测试通过
256
+ - [ ] 新增测试用例通过
257
+
258
+ ### 7.2 性能验收
259
+ - [ ] 所有性能需求 (NFR-001, NFR-002) 满足
260
+ - [ ] 性能测试报告通过
261
+
262
+ ### 7.3 质量验收
263
+ - [ ] 代码审查通过
264
+ - [ ] 测试覆盖率 ≥ 80%
265
+ - [ ] 无严重bug
266
+
267
+ ## 8. 交付物
268
+
269
+ ### 8.1 代码
270
+ - 重构后的 `cli_help_analyzer.js`
271
+ - 更新的测试文件(如有)
272
+
273
+ ### 8.2 文档
274
+ - 规范需求文档(本文档)
275
+ - 设计文档
276
+ - 实施清单
277
+ - 测试报告
278
+
279
+ ### 8.3 其他
280
+ - 性能测试报告
281
+ - 代码审查记录
282
+
283
+ ## 9. 变更历史
284
+
285
+ | 版本 | 日期 | 作者 | 变更说明 |
286
+ |------|------|------|----------|
287
+ | 1.0 | 2026-01-11 | iFlow | 初始版本 |