speccore 1.0.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 (196) hide show
  1. package/README.en.md +401 -0
  2. package/README.md +401 -0
  3. package/bin/speccore +2 -0
  4. package/dist/cli.d.ts +2 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +450 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/archive.d.ts +10 -0
  9. package/dist/commands/archive.d.ts.map +1 -0
  10. package/dist/commands/archive.js +138 -0
  11. package/dist/commands/archive.js.map +1 -0
  12. package/dist/commands/audit.d.ts +10 -0
  13. package/dist/commands/audit.d.ts.map +1 -0
  14. package/dist/commands/audit.js +278 -0
  15. package/dist/commands/audit.js.map +1 -0
  16. package/dist/commands/baseline.d.ts +13 -0
  17. package/dist/commands/baseline.d.ts.map +1 -0
  18. package/dist/commands/baseline.js +227 -0
  19. package/dist/commands/baseline.js.map +1 -0
  20. package/dist/commands/bugfix.d.ts +13 -0
  21. package/dist/commands/bugfix.d.ts.map +1 -0
  22. package/dist/commands/bugfix.js +181 -0
  23. package/dist/commands/bugfix.js.map +1 -0
  24. package/dist/commands/change.d.ts +14 -0
  25. package/dist/commands/change.d.ts.map +1 -0
  26. package/dist/commands/change.js +150 -0
  27. package/dist/commands/change.js.map +1 -0
  28. package/dist/commands/config.d.ts +7 -0
  29. package/dist/commands/config.d.ts.map +1 -0
  30. package/dist/commands/config.js +110 -0
  31. package/dist/commands/config.js.map +1 -0
  32. package/dist/commands/dashboard.d.ts +9 -0
  33. package/dist/commands/dashboard.d.ts.map +1 -0
  34. package/dist/commands/dashboard.js +209 -0
  35. package/dist/commands/dashboard.js.map +1 -0
  36. package/dist/commands/demo.d.ts +10 -0
  37. package/dist/commands/demo.d.ts.map +1 -0
  38. package/dist/commands/demo.js +151 -0
  39. package/dist/commands/demo.js.map +1 -0
  40. package/dist/commands/execute.d.ts +18 -0
  41. package/dist/commands/execute.d.ts.map +1 -0
  42. package/dist/commands/execute.js +127 -0
  43. package/dist/commands/execute.js.map +1 -0
  44. package/dist/commands/global-status.d.ts +9 -0
  45. package/dist/commands/global-status.d.ts.map +1 -0
  46. package/dist/commands/global-status.js +135 -0
  47. package/dist/commands/global-status.js.map +1 -0
  48. package/dist/commands/goal.d.ts +15 -0
  49. package/dist/commands/goal.d.ts.map +1 -0
  50. package/dist/commands/goal.js +282 -0
  51. package/dist/commands/goal.js.map +1 -0
  52. package/dist/commands/handover.d.ts +11 -0
  53. package/dist/commands/handover.d.ts.map +1 -0
  54. package/dist/commands/handover.js +169 -0
  55. package/dist/commands/handover.js.map +1 -0
  56. package/dist/commands/health.d.ts +7 -0
  57. package/dist/commands/health.d.ts.map +1 -0
  58. package/dist/commands/health.js +80 -0
  59. package/dist/commands/health.js.map +1 -0
  60. package/dist/commands/help.d.ts +10 -0
  61. package/dist/commands/help.d.ts.map +1 -0
  62. package/dist/commands/help.js +93 -0
  63. package/dist/commands/help.js.map +1 -0
  64. package/dist/commands/history.d.ts +9 -0
  65. package/dist/commands/history.d.ts.map +1 -0
  66. package/dist/commands/history.js +87 -0
  67. package/dist/commands/history.js.map +1 -0
  68. package/dist/commands/impact.d.ts +12 -0
  69. package/dist/commands/impact.d.ts.map +1 -0
  70. package/dist/commands/impact.js +238 -0
  71. package/dist/commands/impact.js.map +1 -0
  72. package/dist/commands/import.d.ts +15 -0
  73. package/dist/commands/import.d.ts.map +1 -0
  74. package/dist/commands/import.js +366 -0
  75. package/dist/commands/import.js.map +1 -0
  76. package/dist/commands/init.d.ts +6 -0
  77. package/dist/commands/init.d.ts.map +1 -0
  78. package/dist/commands/init.js +564 -0
  79. package/dist/commands/init.js.map +1 -0
  80. package/dist/commands/iteration/create.d.ts +7 -0
  81. package/dist/commands/iteration/create.d.ts.map +1 -0
  82. package/dist/commands/iteration/create.js +141 -0
  83. package/dist/commands/iteration/create.js.map +1 -0
  84. package/dist/commands/iteration/split.d.ts +9 -0
  85. package/dist/commands/iteration/split.d.ts.map +1 -0
  86. package/dist/commands/iteration/split.js +165 -0
  87. package/dist/commands/iteration/split.js.map +1 -0
  88. package/dist/commands/iteration-from-global.d.ts +11 -0
  89. package/dist/commands/iteration-from-global.d.ts.map +1 -0
  90. package/dist/commands/iteration-from-global.js +294 -0
  91. package/dist/commands/iteration-from-global.js.map +1 -0
  92. package/dist/commands/plan.d.ts +12 -0
  93. package/dist/commands/plan.d.ts.map +1 -0
  94. package/dist/commands/plan.js +126 -0
  95. package/dist/commands/plan.js.map +1 -0
  96. package/dist/commands/progress.d.ts +10 -0
  97. package/dist/commands/progress.d.ts.map +1 -0
  98. package/dist/commands/progress.js +89 -0
  99. package/dist/commands/progress.js.map +1 -0
  100. package/dist/commands/rename.d.ts +14 -0
  101. package/dist/commands/rename.d.ts.map +1 -0
  102. package/dist/commands/rename.js +298 -0
  103. package/dist/commands/rename.js.map +1 -0
  104. package/dist/commands/report.d.ts +10 -0
  105. package/dist/commands/report.d.ts.map +1 -0
  106. package/dist/commands/report.js +124 -0
  107. package/dist/commands/report.js.map +1 -0
  108. package/dist/commands/research.d.ts +14 -0
  109. package/dist/commands/research.d.ts.map +1 -0
  110. package/dist/commands/research.js +181 -0
  111. package/dist/commands/research.js.map +1 -0
  112. package/dist/commands/retro.d.ts +10 -0
  113. package/dist/commands/retro.d.ts.map +1 -0
  114. package/dist/commands/retro.js +130 -0
  115. package/dist/commands/retro.js.map +1 -0
  116. package/dist/commands/spec.d.ts +8 -0
  117. package/dist/commands/spec.d.ts.map +1 -0
  118. package/dist/commands/spec.js +155 -0
  119. package/dist/commands/spec.js.map +1 -0
  120. package/dist/commands/status.d.ts +7 -0
  121. package/dist/commands/status.d.ts.map +1 -0
  122. package/dist/commands/status.js +48 -0
  123. package/dist/commands/status.js.map +1 -0
  124. package/dist/commands/sync-global.d.ts +13 -0
  125. package/dist/commands/sync-global.d.ts.map +1 -0
  126. package/dist/commands/sync-global.js +218 -0
  127. package/dist/commands/sync-global.js.map +1 -0
  128. package/dist/commands/sync.d.ts +13 -0
  129. package/dist/commands/sync.d.ts.map +1 -0
  130. package/dist/commands/sync.js +170 -0
  131. package/dist/commands/sync.js.map +1 -0
  132. package/dist/commands/task/new.d.ts +13 -0
  133. package/dist/commands/task/new.d.ts.map +1 -0
  134. package/dist/commands/task/new.js +195 -0
  135. package/dist/commands/task/new.js.map +1 -0
  136. package/dist/commands/template-add.d.ts +12 -0
  137. package/dist/commands/template-add.d.ts.map +1 -0
  138. package/dist/commands/template-add.js +65 -0
  139. package/dist/commands/template-add.js.map +1 -0
  140. package/dist/commands/validate.d.ts +10 -0
  141. package/dist/commands/validate.d.ts.map +1 -0
  142. package/dist/commands/validate.js +37 -0
  143. package/dist/commands/validate.js.map +1 -0
  144. package/dist/commands/welcome.d.ts +9 -0
  145. package/dist/commands/welcome.d.ts.map +1 -0
  146. package/dist/commands/welcome.js +166 -0
  147. package/dist/commands/welcome.js.map +1 -0
  148. package/dist/core/context.d.ts +31 -0
  149. package/dist/core/context.d.ts.map +1 -0
  150. package/dist/core/context.js +145 -0
  151. package/dist/core/context.js.map +1 -0
  152. package/dist/core/global-layer.d.ts +124 -0
  153. package/dist/core/global-layer.d.ts.map +1 -0
  154. package/dist/core/global-layer.js +456 -0
  155. package/dist/core/global-layer.js.map +1 -0
  156. package/dist/core/index.d.ts +8 -0
  157. package/dist/core/index.d.ts.map +1 -0
  158. package/dist/core/index.js +24 -0
  159. package/dist/core/index.js.map +1 -0
  160. package/dist/core/intent-recognition.d.ts +48 -0
  161. package/dist/core/intent-recognition.d.ts.map +1 -0
  162. package/dist/core/intent-recognition.js +485 -0
  163. package/dist/core/intent-recognition.js.map +1 -0
  164. package/dist/core/state.d.ts +26 -0
  165. package/dist/core/state.d.ts.map +1 -0
  166. package/dist/core/state.js +187 -0
  167. package/dist/core/state.js.map +1 -0
  168. package/dist/core/template-engine.d.ts +28 -0
  169. package/dist/core/template-engine.d.ts.map +1 -0
  170. package/dist/core/template-engine.js +57 -0
  171. package/dist/core/template-engine.js.map +1 -0
  172. package/dist/core/validator.d.ts +26 -0
  173. package/dist/core/validator.d.ts.map +1 -0
  174. package/dist/core/validator.js +246 -0
  175. package/dist/core/validator.js.map +1 -0
  176. package/dist/core/yaml-parser.d.ts +25 -0
  177. package/dist/core/yaml-parser.d.ts.map +1 -0
  178. package/dist/core/yaml-parser.js +113 -0
  179. package/dist/core/yaml-parser.js.map +1 -0
  180. package/dist/index.d.ts +2 -0
  181. package/dist/index.d.ts.map +1 -0
  182. package/dist/index.js +18 -0
  183. package/dist/index.js.map +1 -0
  184. package/dist/utils/file.d.ts +29 -0
  185. package/dist/utils/file.d.ts.map +1 -0
  186. package/dist/utils/file.js +126 -0
  187. package/dist/utils/file.js.map +1 -0
  188. package/dist/utils/git.d.ts +25 -0
  189. package/dist/utils/git.d.ts.map +1 -0
  190. package/dist/utils/git.js +77 -0
  191. package/dist/utils/git.js.map +1 -0
  192. package/dist/utils/logger.d.ts +41 -0
  193. package/dist/utils/logger.d.ts.map +1 -0
  194. package/dist/utils/logger.js +184 -0
  195. package/dist/utils/logger.js.map +1 -0
  196. package/package.json +49 -0
@@ -0,0 +1,485 @@
1
+ "use strict";
2
+ /**
3
+ * 意图识别引擎
4
+ * 基于 SpecCore v2.0 的自然语言意图识别引擎
5
+ * 支持 12 种意图类型、100+ 关键词匹配、置信度计算、上下文感知增强
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.recognizeIntent = recognizeIntent;
9
+ exports.getConfidenceLevel = getConfidenceLevel;
10
+ exports.getAllCommandMappings = getAllCommandMappings;
11
+ exports.getCommandMapping = getCommandMapping;
12
+ exports.getCommandsByIntent = getCommandsByIntent;
13
+ const context_1 = require("./context");
14
+ // ============================================================
15
+ // 命令映射表(12 种意图,按优先级排序)
16
+ // ============================================================
17
+ const COMMAND_MAPPINGS = [
18
+ // 变更层 - 优先级最高("改成"不应被"做"匹配)
19
+ {
20
+ id: 'change',
21
+ intent: 'change',
22
+ priority: 100,
23
+ triggers: ['改成', '改为', '调整', '修改', '更新', '变更', '升级', '换成', '替换'],
24
+ patterns: ['把(.+)改成(.+)', '将(.+)调整为(.+)', '修改(.+)', '升级(.+)', '换成(.+)'],
25
+ description: '需求变更联动 — 修改需求时自动更新关联 Spec 文件',
26
+ },
27
+ // 执行层
28
+ {
29
+ id: 'execute',
30
+ intent: 'execute',
31
+ priority: 90,
32
+ triggers: ['开始', '执行', '干活', '继续', '开发', '做', '跑', '开工', '跑一下'],
33
+ patterns: ['开始(.+)', '继续(.+)', '开发(.+)', '做(.+)', '执行(.+)'],
34
+ description: '执行控制中心 — 按过滤条件执行开发任务,支持断点续传',
35
+ },
36
+ // Bug 修复
37
+ {
38
+ id: 'bugfix',
39
+ intent: 'bugfix',
40
+ priority: 88,
41
+ triggers: ['修复', '解决', 'bug', '报错', '错误', '超时', '出问题了'],
42
+ patterns: ['修复(.+)问题', '修复(.+)bug', '解决(.+)', '(.+)报错'],
43
+ description: '快速 Bug 修复 — 创建修复任务并关联变更联动',
44
+ },
45
+ // 创建层
46
+ {
47
+ id: 'goal',
48
+ intent: 'create',
49
+ priority: 85,
50
+ triggers: ['创建一个', '新增一个', '做一个', '实现', '添加一个', '新建', '创建', '新增'],
51
+ patterns: ['创建(.+)', '新增(.+)', '做一个(.+)', '开发(.+)功能', '实现(.+)功能'],
52
+ description: '完整需求交付 — 从需求到代码的全流程自动化',
53
+ args: '"<name>" --desc="<description>"',
54
+ },
55
+ // 初始化
56
+ {
57
+ id: 'init',
58
+ intent: 'init',
59
+ priority: 85,
60
+ triggers: ['初始化', '建立项目', '创建项目', '新建项目', '迁移项目'],
61
+ patterns: ['初始化(.+)项目', '建立(.+)项目', '创建(.+)项目'],
62
+ description: '项目初始化 — 创建 .speccore 配置目录和基础文件',
63
+ },
64
+ // 导入
65
+ {
66
+ id: 'import',
67
+ intent: 'import',
68
+ priority: 82,
69
+ triggers: ['导入', '迁移', '转换', '从代码导入', '从需求导入'],
70
+ patterns: ['导入(.+)代码', '从(.+)导入', '迁移(.+)项目'],
71
+ description: '存量项目导入 — 从代码/PRD/原型自动生成 Spec 配置',
72
+ },
73
+ // 审查层
74
+ {
75
+ id: 'review',
76
+ intent: 'review',
77
+ priority: 80,
78
+ triggers: ['审查', '检查', 'review', '查看产出', '核对', '校验'],
79
+ patterns: ['审查(.+)', '检查(.+)', '查看(.+)产出', 'review(.+)'],
80
+ description: '审查产出 — 检查任务产出物和验收标准是否符合规范',
81
+ },
82
+ // 调研
83
+ {
84
+ id: 'research',
85
+ intent: 'research',
86
+ priority: 80,
87
+ triggers: ['调研', '评估', '选型', '对比'],
88
+ patterns: ['调研(.+)方案', '调研(.+)技术', '评估(.+)技术', '对比(.+)'],
89
+ description: '技术调研 — 评估技术方案、对比工具选项',
90
+ },
91
+ // 计划层
92
+ {
93
+ id: 'plan',
94
+ intent: 'plan',
95
+ priority: 78,
96
+ triggers: ['方案', '计划', '怎么做', '怎么实现', '技术方案', '评估', '估算'],
97
+ patterns: ['(.+)怎么做', '(.+)怎么实现', '需要(.+)时间', '评估(.+)'],
98
+ description: '智能调度 — 分析依赖关系,生成并行执行方案',
99
+ },
100
+ // 归档层
101
+ {
102
+ id: 'archive',
103
+ intent: 'archive',
104
+ priority: 75,
105
+ triggers: ['归档', '存档', '清理', '整理'],
106
+ patterns: ['归档(.+)', '清理(.+)', '整理(.+)'],
107
+ description: '归档任务 — 将已完成任务移动到归档目录',
108
+ },
109
+ // 参考层
110
+ {
111
+ id: 'reference',
112
+ intent: 'reference',
113
+ priority: 75,
114
+ triggers: ['参考', '借鉴', '类似', '有没有', '之前', '以前'],
115
+ patterns: ['参考(.+)', '借鉴(.+)', '有没有(.+)示例'],
116
+ description: '模式搜索 — 在 PATTERNS 中搜索相关技术参考',
117
+ },
118
+ // 同步
119
+ {
120
+ id: 'sync',
121
+ intent: 'sync',
122
+ priority: 70,
123
+ triggers: ['同步', '反向同步', '更新Spec', '对齐'],
124
+ patterns: ['同步(.+)', '更新(.+)Spec', '对齐(.+)'],
125
+ description: '反向同步 — 检测代码与 Spec 的差异并同步更新',
126
+ },
127
+ // 进度层
128
+ {
129
+ id: 'progress',
130
+ intent: 'query_progress',
131
+ priority: 70,
132
+ triggers: ['进度', '进展', '完成多少', '还差', '多少'],
133
+ patterns: ['进度(.+)', '进展(.+)', '完成(.+)'],
134
+ description: '进度总览 — 多维度统计任务完成情况',
135
+ },
136
+ {
137
+ id: 'status',
138
+ intent: 'query_progress',
139
+ priority: 68,
140
+ triggers: ['状态', '情况', '怎么样了'],
141
+ patterns: ['状态(.+)', '情况(.+)', '(.+)怎么样了'],
142
+ description: '状态看板 — 简洁版任务状态总览',
143
+ },
144
+ // 交接
145
+ {
146
+ id: 'handover',
147
+ intent: 'handover',
148
+ priority: 65,
149
+ triggers: ['交接', '转交', '移交', '交付'],
150
+ patterns: ['交接(.+)', '转交(.+)', '生成交接文档'],
151
+ description: '生成交接文档 — 汇总期次关键信息和待办事项',
152
+ },
153
+ // 健康度
154
+ {
155
+ id: 'health',
156
+ intent: 'health',
157
+ priority: 65,
158
+ triggers: ['健康', '质量', '评分'],
159
+ patterns: ['健康度(.+)', '质量(.+)', '评分(.+)'],
160
+ description: '项目健康度 — 4 维度质量评估与风险预警',
161
+ },
162
+ // 回顾
163
+ {
164
+ id: 'retro',
165
+ intent: 'retro',
166
+ priority: 60,
167
+ triggers: ['回顾', '总结', '复盘', '反思'],
168
+ patterns: ['回顾(.+)', '总结(.+)', '复盘(.+)'],
169
+ description: '期次回顾 — 总结经验和改进建议',
170
+ },
171
+ // 配置
172
+ {
173
+ id: 'config',
174
+ intent: 'config',
175
+ priority: 60,
176
+ triggers: ['配置', '设置'],
177
+ patterns: ['配置(.+)', '设置(.+)'],
178
+ description: '配置管理 — 查看和修改框架功能开关',
179
+ },
180
+ // 模板
181
+ {
182
+ id: 'template-add',
183
+ intent: 'template_add',
184
+ priority: 55,
185
+ triggers: ['添加模板', '新增模板', '保存模板'],
186
+ patterns: ['添加(.+)模板', '新增(.+)模板', '保存(.+)模板'],
187
+ description: '添加代码模板 — 将现有代码保存为可复用模板',
188
+ },
189
+ // 帮助
190
+ {
191
+ id: 'help',
192
+ intent: 'help',
193
+ priority: 50,
194
+ triggers: ['帮助', '怎么用', '教程', '不会用', '如何使用'],
195
+ patterns: ['帮助(.+)', '怎么用(.+)', '教程(.+)'],
196
+ description: '命令帮助 — 查看所有可用命令和参数说明',
197
+ },
198
+ // 体验
199
+ {
200
+ id: 'demo',
201
+ intent: 'demo',
202
+ priority: 45,
203
+ triggers: ['示例', '体验', '试一下', 'demo'],
204
+ patterns: ['示例(.+)', '体验(.+)', '试一下(.+)'],
205
+ description: '快速体验 — 5 分钟体验 SpecCore 完整流程',
206
+ },
207
+ // 引导
208
+ {
209
+ id: 'welcome',
210
+ intent: 'welcome',
211
+ priority: 40,
212
+ triggers: ['引导', '第一次', '新手', '入门'],
213
+ patterns: ['引导(.+)', '第一次使用', '新手入门', '入门(.+)'],
214
+ description: '首次使用引导 — 交互式引导完成第一个功能开发',
215
+ },
216
+ // ============================================================
217
+ // 全量层命令
218
+ // ============================================================
219
+ // 导入到全量层
220
+ {
221
+ id: 'import-to-global',
222
+ intent: 'import_to_global',
223
+ priority: 83,
224
+ triggers: ['导入项目', '导入到全量层', '添加项目到全量'],
225
+ patterns: ['导入(.+)项目到全量', '添加(.+)到全量层', '导入(.+)作为(.+)项目'],
226
+ description: '导入到全量层 — 扫描项目代码并填充 GLOBAL/ 目录',
227
+ },
228
+ // 从全量生成期次
229
+ {
230
+ id: 'iteration-from-global',
231
+ intent: 'iteration_from_global',
232
+ priority: 80,
233
+ triggers: ['从全量生成', '基于全局创建', '选择需求生成期次'],
234
+ patterns: ['从全量(.*)生成期次', '基于全局(.*)创建期次', '选择(.*)需求生成期次'],
235
+ description: '从全量层生成期次 — 按需求 ID 选择并生成新的期次',
236
+ },
237
+ // 同步全量
238
+ {
239
+ id: 'sync-global',
240
+ intent: 'sync_to_global',
241
+ priority: 70,
242
+ triggers: ['同步全量', '同步全局', '更新全量层', '同步到全量'],
243
+ patterns: ['同步(.*)到全量层', '更新全量层', '同步全量'],
244
+ description: '全量层双向同步 — 期次与全量层之间的双向同步',
245
+ },
246
+ // 全量状态
247
+ {
248
+ id: 'global-status',
249
+ intent: 'global_status',
250
+ priority: 65,
251
+ triggers: ['全量状态', '全局状态', '全量层', '查看全量'],
252
+ patterns: ['全量状态', '全局状态', '查看全量层'],
253
+ description: '查看全量层状态 — 所有项目、需求、架构总览',
254
+ },
255
+ // 历史
256
+ {
257
+ id: 'history',
258
+ intent: 'history',
259
+ priority: 55,
260
+ triggers: ['历史', '变更记录', '谁改的', '什么时候'],
261
+ patterns: ['查看(.*)历史', '(.*)变更记录', '谁改了(.*)', '(.*)的变更历史'],
262
+ description: '查看需求历史 — 变更历史和版本演进',
263
+ },
264
+ // ============================================================
265
+ // P0/P1/P2 新增命令
266
+ // ============================================================
267
+ // 影响分析 (P0)
268
+ {
269
+ id: 'impact',
270
+ intent: 'impact',
271
+ priority: 80,
272
+ triggers: ['影响', '依赖', '波及', '影响分析', '变更影响', '会影响谁'],
273
+ patterns: ['(.*)影响(.*)', '变更(.*)影响', '分析(.*)依赖', '(.*)会影响谁'],
274
+ description: '变更影响分析 — 分析需求变更对上下游的影响范围',
275
+ },
276
+ // 版本基线 (P1)
277
+ {
278
+ id: 'baseline',
279
+ intent: 'baseline',
280
+ priority: 60,
281
+ triggers: ['基线', '快照', '版本', '回滚'],
282
+ patterns: ['创建基线', '打快照', '回滚', '(.*)基线'],
283
+ description: '版本基线管理 — 创建需求快照、对比和回滚',
284
+ },
285
+ // 仪表盘 (P1)
286
+ {
287
+ id: 'dashboard',
288
+ intent: 'dashboard',
289
+ priority: 55,
290
+ triggers: ['仪表盘', '看板', '可视化', '总览图'],
291
+ patterns: ['仪表盘', '看板', '可视化', '生成.*总览'],
292
+ description: '可视化仪表盘 — 生成 Chart.js 图表看板',
293
+ },
294
+ // 智能审计 (P2)
295
+ {
296
+ id: 'audit',
297
+ intent: 'audit',
298
+ priority: 50,
299
+ triggers: ['审计', '扫描', '检查', '重复', '歧义'],
300
+ patterns: ['智能审计', '扫描全量层', '检查重复需求'],
301
+ description: 'AI 智能审计 — 发现重复需求、歧义描述、孤立需求',
302
+ },
303
+ // 重命名
304
+ {
305
+ id: 'rename',
306
+ intent: 'rename',
307
+ priority: 78,
308
+ triggers: ['重命名', '改名', '修改名称', '更换名称', '改成', '改名为', '更名为'],
309
+ patterns: ['把(.*)改成(.*)', '重命名(.*)为(.*)', '修改(.*)名称为(.*)', '(.*)改名为(.*)'],
310
+ description: '重命名期次/任务 — 自动更新所有关联引用',
311
+ },
312
+ ];
313
+ const CONTEXT_RULES = {
314
+ execute: {
315
+ intent: 'execute',
316
+ noContextMessage: '当前无活跃期次,请先创建期次',
317
+ withContextEnhancement: (ctx) => `当前期次: ${ctx.currentIteration},准备执行待开发任务`,
318
+ },
319
+ query_progress: {
320
+ intent: 'query_progress',
321
+ noContextMessage: '当前无活跃期次,无法查看进度',
322
+ withContextEnhancement: (ctx) => `当前期次: ${ctx.currentIteration}`,
323
+ },
324
+ review: {
325
+ intent: 'review',
326
+ noContextMessage: '请指定要审查的 Task',
327
+ withContextEnhancement: (ctx) => ctx.currentTask
328
+ ? `审查当前 Task: ${ctx.currentTask}`
329
+ : `审查当前期次: ${ctx.currentIteration}`,
330
+ },
331
+ change: {
332
+ intent: 'change',
333
+ noContextMessage: '请指定要变更的 Task',
334
+ withContextEnhancement: (ctx) => ctx.currentTask
335
+ ? `变更当前 Task: ${ctx.currentTask}`
336
+ : `变更当前期次: ${ctx.currentIteration}`,
337
+ },
338
+ };
339
+ // ============================================================
340
+ // 意图识别引擎
341
+ // ============================================================
342
+ /**
343
+ * 从用户自然语言输入中识别意图
344
+ */
345
+ async function recognizeIntent(input) {
346
+ const context = await (0, context_1.loadContext)();
347
+ const activeIteration = await (0, context_1.detectActiveIteration)();
348
+ if (activeIteration) {
349
+ context.currentIteration = activeIteration;
350
+ }
351
+ const results = [];
352
+ const inputLower = input.toLowerCase();
353
+ for (const mapping of COMMAND_MAPPINGS) {
354
+ let totalScore = 0;
355
+ const matched = [];
356
+ // 1. 关键词直接匹配
357
+ for (const trigger of mapping.triggers) {
358
+ if (input.includes(trigger) || inputLower.includes(trigger.toLowerCase())) {
359
+ totalScore += 20;
360
+ matched.push(`关键词: "${trigger}"`);
361
+ }
362
+ }
363
+ // 2. 正则模式匹配
364
+ for (const pattern of mapping.patterns) {
365
+ try {
366
+ const regex = new RegExp(pattern);
367
+ const match = input.match(regex);
368
+ if (match) {
369
+ totalScore += 30;
370
+ matched.push(`模式: "${pattern}"`);
371
+ }
372
+ }
373
+ catch {
374
+ // 忽略无效正则
375
+ }
376
+ }
377
+ if (totalScore > 0) {
378
+ // 3. 优先级加成
379
+ totalScore += mapping.priority * 0.3;
380
+ // 4. 上下文感知增强
381
+ let contextAware = false;
382
+ const contextRule = CONTEXT_RULES[mapping.id];
383
+ if (contextRule) {
384
+ if (activeIteration) {
385
+ totalScore += 15;
386
+ contextAware = true;
387
+ matched.push('上下文感知: 有活跃期次');
388
+ }
389
+ else if (mapping.intent === 'execute' ||
390
+ mapping.intent === 'query_progress') {
391
+ totalScore -= 20; // 无上下文降权
392
+ matched.push('上下文感知: 无活跃期次');
393
+ }
394
+ }
395
+ // 5. 计算置信度百分比 (0-100)
396
+ const confidence = Math.min(100, Math.round(totalScore));
397
+ // 6. 提取参数
398
+ const extractedParams = extractParams(input, mapping);
399
+ results.push({
400
+ intent: mapping.intent,
401
+ command: mapping.id,
402
+ confidence,
403
+ priority: mapping.priority,
404
+ matchedTriggers: matched,
405
+ extractedParams,
406
+ contextAware,
407
+ });
408
+ }
409
+ }
410
+ // 按置信度降序排列
411
+ return results.sort((a, b) => {
412
+ if (b.confidence !== a.confidence)
413
+ return b.confidence - a.confidence;
414
+ return b.priority - a.priority;
415
+ });
416
+ }
417
+ /**
418
+ * 从输入中提取参数
419
+ */
420
+ function extractParams(input, mapping) {
421
+ const params = {};
422
+ // 提取任务名称(引号内容)
423
+ const quoted = input.match(/[""]([^""]+)[""]/);
424
+ if (quoted) {
425
+ params.name = quoted[1];
426
+ }
427
+ // 提取描述(冒号后或"支持"后内容)
428
+ const descMatch = input.match(/[::]\s*(.+)$/);
429
+ if (descMatch) {
430
+ params.desc = descMatch[1].trim();
431
+ }
432
+ // 从模式中提取参数
433
+ for (const pattern of mapping.patterns) {
434
+ try {
435
+ const regex = new RegExp(pattern);
436
+ const match = input.match(regex);
437
+ if (match && match[1]) {
438
+ if (!params.name) {
439
+ params.name = match[1].trim();
440
+ }
441
+ if (match[2]) {
442
+ params.target = match[2].trim();
443
+ }
444
+ }
445
+ }
446
+ catch {
447
+ // 忽略
448
+ }
449
+ }
450
+ // 检测是否指定了期次
451
+ const iterMatch = input.match(/期次[::]*\s*(\S+)/);
452
+ if (iterMatch) {
453
+ params.iteration = iterMatch[1];
454
+ }
455
+ return params;
456
+ }
457
+ /**
458
+ * 根据置信度分级获取行为建议
459
+ */
460
+ function getConfidenceLevel(confidence) {
461
+ if (confidence >= 80)
462
+ return 'high';
463
+ if (confidence >= 50)
464
+ return 'medium';
465
+ return 'low';
466
+ }
467
+ /**
468
+ * 获取所有命令映射(用于 help 命令)
469
+ */
470
+ function getAllCommandMappings() {
471
+ return [...COMMAND_MAPPINGS];
472
+ }
473
+ /**
474
+ * 根据命令 ID 获取映射
475
+ */
476
+ function getCommandMapping(commandId) {
477
+ return COMMAND_MAPPINGS.find((m) => m.id === commandId);
478
+ }
479
+ /**
480
+ * 根据意图类型获取相关命令
481
+ */
482
+ function getCommandsByIntent(intent) {
483
+ return COMMAND_MAPPINGS.filter((m) => m.intent === intent);
484
+ }
485
+ //# sourceMappingURL=intent-recognition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-recognition.js","sourceRoot":"","sources":["../../src/core/intent-recognition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export interface TaskState {
2
+ id: string;
3
+ name: string;
4
+ type: string;
5
+ status: 'pending' | 'in_progress' | 'completed' | 'archived';
6
+ assignee: string;
7
+ dependencies: string[];
8
+ priority: 'high' | 'medium' | 'low';
9
+ progress: number;
10
+ startDate?: string;
11
+ endDate?: string;
12
+ }
13
+ export interface IterationState {
14
+ name: string;
15
+ status: string;
16
+ startDate: string;
17
+ endDate: string;
18
+ tasks: TaskState[];
19
+ completionRate: number;
20
+ }
21
+ export declare function readProjectGraph(iteration: string): Promise<IterationState>;
22
+ export declare function scanTasks(iteration: string): Promise<TaskState[]>;
23
+ export declare function calculateCompletionRate(tasks: TaskState[]): number;
24
+ export declare function buildDependencyGraph(tasks: TaskState[]): Map<string, string[]>;
25
+ export declare function topologicalSort(tasks: TaskState[]): TaskState[];
26
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAgBjF;AAwDD,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAkDvE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAIlE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAM9E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAyB/D"}