speccore 8.3.340 → 8.3.345

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 (246) hide show
  1. package/.agents/skills/speccore-router/SKILL.md +0 -2
  2. package/README.en.md +3 -11
  3. package/README.md +3 -13
  4. package/dist/cli.js +1 -187
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/analyze.d.ts.map +1 -1
  7. package/dist/commands/analyze.js +583 -502
  8. package/dist/commands/analyze.js.map +1 -1
  9. package/dist/commands/ask.d.ts +1 -0
  10. package/dist/commands/ask.d.ts.map +1 -1
  11. package/dist/commands/ask.js +5 -18
  12. package/dist/commands/ask.js.map +1 -1
  13. package/dist/commands/completion.d.ts.map +1 -1
  14. package/dist/commands/completion.js +9 -7
  15. package/dist/commands/completion.js.map +1 -1
  16. package/dist/commands/doctor.js +3 -3
  17. package/dist/commands/doctor.js.map +1 -1
  18. package/dist/commands/done.js +1 -5
  19. package/dist/commands/done.js.map +1 -1
  20. package/dist/commands/execute.js +2 -2
  21. package/dist/commands/execute.js.map +1 -1
  22. package/dist/commands/help.js +5 -54
  23. package/dist/commands/help.js.map +1 -1
  24. package/dist/commands/init.d.ts.map +1 -1
  25. package/dist/commands/init.js +3 -31
  26. package/dist/commands/init.js.map +1 -1
  27. package/dist/commands/iteration/taskify.d.ts.map +1 -1
  28. package/dist/commands/iteration/taskify.js +5 -147
  29. package/dist/commands/iteration/taskify.js.map +1 -1
  30. package/dist/commands/pr.d.ts.map +1 -1
  31. package/dist/commands/pr.js +3 -5
  32. package/dist/commands/pr.js.map +1 -1
  33. package/dist/commands/search.js +1 -1
  34. package/dist/commands/search.js.map +1 -1
  35. package/dist/commands/update-env-configs.d.ts.map +1 -1
  36. package/dist/commands/update-env-configs.js +2 -1
  37. package/dist/commands/update-env-configs.js.map +1 -1
  38. package/dist/commands/update.d.ts +4 -0
  39. package/dist/commands/update.d.ts.map +1 -1
  40. package/dist/commands/update.js +41 -1
  41. package/dist/commands/update.js.map +1 -1
  42. package/dist/commands/welcome.d.ts.map +1 -1
  43. package/dist/commands/welcome.js +37 -36
  44. package/dist/commands/welcome.js.map +1 -1
  45. package/dist/core/analyze-engine.js +3 -3
  46. package/dist/core/analyze-engine.js.map +1 -1
  47. package/dist/core/arbitration/l3-human-arbiter.js +1 -1
  48. package/dist/core/arbitration/l3-human-arbiter.js.map +1 -1
  49. package/dist/core/arbitration/verdict-generator.js +1 -1
  50. package/dist/core/arbitration/verdict-generator.js.map +1 -1
  51. package/dist/core/ask-engine.d.ts.map +1 -1
  52. package/dist/core/ask-engine.js +16 -42
  53. package/dist/core/ask-engine.js.map +1 -1
  54. package/dist/core/code-graph/reporter.d.ts.map +1 -1
  55. package/dist/core/code-graph/reporter.js +3 -12
  56. package/dist/core/code-graph/reporter.js.map +1 -1
  57. package/dist/core/code-graph/requirement-linker.js +1 -1
  58. package/dist/core/code-graph/requirement-linker.js.map +1 -1
  59. package/dist/core/code-scanner.js +1 -1
  60. package/dist/core/code-scanner.js.map +1 -1
  61. package/dist/core/deploy/engine.d.ts.map +1 -1
  62. package/dist/core/deploy/engine.js +58 -44
  63. package/dist/core/deploy/engine.js.map +1 -1
  64. package/dist/core/environment-config.d.ts +2 -0
  65. package/dist/core/environment-config.d.ts.map +1 -1
  66. package/dist/core/environment-config.js +6 -1
  67. package/dist/core/environment-config.js.map +1 -1
  68. package/dist/core/error-diagnosis.js +2 -2
  69. package/dist/core/error-diagnosis.js.map +1 -1
  70. package/dist/core/function-map.d.ts +49 -0
  71. package/dist/core/function-map.d.ts.map +1 -0
  72. package/dist/core/function-map.js +280 -0
  73. package/dist/core/function-map.js.map +1 -0
  74. package/dist/core/git-integration.d.ts +6 -0
  75. package/dist/core/git-integration.d.ts.map +1 -1
  76. package/dist/core/git-integration.js +11 -0
  77. package/dist/core/git-integration.js.map +1 -1
  78. package/dist/core/global-knowledge.js +1 -1
  79. package/dist/core/index-guard.d.ts.map +1 -1
  80. package/dist/core/index-guard.js +4 -26
  81. package/dist/core/index-guard.js.map +1 -1
  82. package/dist/core/intent-recognition.d.ts +1 -1
  83. package/dist/core/intent-recognition.d.ts.map +1 -1
  84. package/dist/core/intent-recognition.js +5 -63
  85. package/dist/core/intent-recognition.js.map +1 -1
  86. package/dist/core/page-bundle.d.ts +25 -0
  87. package/dist/core/page-bundle.d.ts.map +1 -0
  88. package/dist/core/page-bundle.js +144 -0
  89. package/dist/core/page-bundle.js.map +1 -0
  90. package/dist/core/prompt-builder.d.ts +9 -0
  91. package/dist/core/prompt-builder.d.ts.map +1 -1
  92. package/dist/core/prompt-builder.js +135 -3
  93. package/dist/core/prompt-builder.js.map +1 -1
  94. package/dist/core/prompt-plugins/analyze-graph-plugin.js +1 -1
  95. package/dist/core/prompt-plugins/analyze-graph-plugin.js.map +1 -1
  96. package/dist/core/structured-extractor.d.ts +6 -0
  97. package/dist/core/structured-extractor.d.ts.map +1 -1
  98. package/dist/core/structured-extractor.js +6 -0
  99. package/dist/core/structured-extractor.js.map +1 -1
  100. package/dist/core/unified-config.d.ts.map +1 -1
  101. package/dist/core/unified-config.js +29 -19
  102. package/dist/core/unified-config.js.map +1 -1
  103. package/dist/core/usage-analytics.js +1 -1
  104. package/dist/core/usage-analytics.js.map +1 -1
  105. package/package.json +1 -1
  106. package/templates/html/speccore-ask-guide.html +1 -1
  107. package/templates/html/speccore-ask-pipeline.html +1 -1
  108. package/templates/html/speccore-ask-result.html +1 -1
  109. package/templates/html/speccore-help.html +2 -2
  110. package/templates/speccore-yml-example.yml +24 -24
  111. package/dist/commands/audit.d.ts +0 -12
  112. package/dist/commands/audit.d.ts.map +0 -1
  113. package/dist/commands/audit.js +0 -540
  114. package/dist/commands/audit.js.map +0 -1
  115. package/dist/commands/backup.d.ts +0 -18
  116. package/dist/commands/backup.d.ts.map +0 -1
  117. package/dist/commands/backup.js +0 -102
  118. package/dist/commands/backup.js.map +0 -1
  119. package/dist/commands/baseline.d.ts +0 -13
  120. package/dist/commands/baseline.d.ts.map +0 -1
  121. package/dist/commands/baseline.js +0 -227
  122. package/dist/commands/baseline.js.map +0 -1
  123. package/dist/commands/chain.d.ts +0 -55
  124. package/dist/commands/chain.d.ts.map +0 -1
  125. package/dist/commands/chain.js +0 -501
  126. package/dist/commands/chain.js.map +0 -1
  127. package/dist/commands/clarify.d.ts +0 -17
  128. package/dist/commands/clarify.d.ts.map +0 -1
  129. package/dist/commands/clarify.js +0 -351
  130. package/dist/commands/clarify.js.map +0 -1
  131. package/dist/commands/code-index.d.ts +0 -21
  132. package/dist/commands/code-index.d.ts.map +0 -1
  133. package/dist/commands/code-index.js +0 -193
  134. package/dist/commands/code-index.js.map +0 -1
  135. package/dist/commands/context.d.ts +0 -10
  136. package/dist/commands/context.d.ts.map +0 -1
  137. package/dist/commands/context.js +0 -213
  138. package/dist/commands/context.js.map +0 -1
  139. package/dist/commands/current.d.ts +0 -10
  140. package/dist/commands/current.d.ts.map +0 -1
  141. package/dist/commands/current.js +0 -53
  142. package/dist/commands/current.js.map +0 -1
  143. package/dist/commands/dev.d.ts +0 -18
  144. package/dist/commands/dev.d.ts.map +0 -1
  145. package/dist/commands/dev.js +0 -854
  146. package/dist/commands/dev.js.map +0 -1
  147. package/dist/commands/diff.d.ts +0 -10
  148. package/dist/commands/diff.d.ts.map +0 -1
  149. package/dist/commands/diff.js +0 -160
  150. package/dist/commands/diff.js.map +0 -1
  151. package/dist/commands/global-status.d.ts +0 -9
  152. package/dist/commands/global-status.d.ts.map +0 -1
  153. package/dist/commands/global-status.js +0 -135
  154. package/dist/commands/global-status.js.map +0 -1
  155. package/dist/commands/graph.d.ts +0 -25
  156. package/dist/commands/graph.d.ts.map +0 -1
  157. package/dist/commands/graph.js +0 -523
  158. package/dist/commands/graph.js.map +0 -1
  159. package/dist/commands/handover.d.ts +0 -11
  160. package/dist/commands/handover.d.ts.map +0 -1
  161. package/dist/commands/handover.js +0 -170
  162. package/dist/commands/handover.js.map +0 -1
  163. package/dist/commands/health.d.ts +0 -7
  164. package/dist/commands/health.d.ts.map +0 -1
  165. package/dist/commands/health.js +0 -80
  166. package/dist/commands/health.js.map +0 -1
  167. package/dist/commands/history.d.ts +0 -9
  168. package/dist/commands/history.d.ts.map +0 -1
  169. package/dist/commands/history.js +0 -117
  170. package/dist/commands/history.js.map +0 -1
  171. package/dist/commands/impact.d.ts +0 -12
  172. package/dist/commands/impact.d.ts.map +0 -1
  173. package/dist/commands/impact.js +0 -238
  174. package/dist/commands/impact.js.map +0 -1
  175. package/dist/commands/import.d.ts +0 -19
  176. package/dist/commands/import.d.ts.map +0 -1
  177. package/dist/commands/import.js +0 -673
  178. package/dist/commands/import.js.map +0 -1
  179. package/dist/commands/knowledge.d.ts +0 -6
  180. package/dist/commands/knowledge.d.ts.map +0 -1
  181. package/dist/commands/knowledge.js +0 -94
  182. package/dist/commands/knowledge.js.map +0 -1
  183. package/dist/commands/lifecycle.d.ts +0 -9
  184. package/dist/commands/lifecycle.d.ts.map +0 -1
  185. package/dist/commands/lifecycle.js +0 -288
  186. package/dist/commands/lifecycle.js.map +0 -1
  187. package/dist/commands/merge-check.d.ts +0 -10
  188. package/dist/commands/merge-check.d.ts.map +0 -1
  189. package/dist/commands/merge-check.js +0 -183
  190. package/dist/commands/merge-check.js.map +0 -1
  191. package/dist/commands/notify.d.ts +0 -13
  192. package/dist/commands/notify.d.ts.map +0 -1
  193. package/dist/commands/notify.js +0 -63
  194. package/dist/commands/notify.js.map +0 -1
  195. package/dist/commands/rag-index.d.ts +0 -19
  196. package/dist/commands/rag-index.d.ts.map +0 -1
  197. package/dist/commands/rag-index.js +0 -286
  198. package/dist/commands/rag-index.js.map +0 -1
  199. package/dist/commands/recommend.d.ts +0 -13
  200. package/dist/commands/recommend.d.ts.map +0 -1
  201. package/dist/commands/recommend.js +0 -37
  202. package/dist/commands/recommend.js.map +0 -1
  203. package/dist/commands/refresh.d.ts +0 -21
  204. package/dist/commands/refresh.d.ts.map +0 -1
  205. package/dist/commands/refresh.js +0 -211
  206. package/dist/commands/refresh.js.map +0 -1
  207. package/dist/commands/rollback.d.ts +0 -8
  208. package/dist/commands/rollback.d.ts.map +0 -1
  209. package/dist/commands/rollback.js +0 -113
  210. package/dist/commands/rollback.js.map +0 -1
  211. package/dist/commands/status.d.ts +0 -7
  212. package/dist/commands/status.d.ts.map +0 -1
  213. package/dist/commands/status.js +0 -262
  214. package/dist/commands/status.js.map +0 -1
  215. package/dist/commands/trace.d.ts +0 -12
  216. package/dist/commands/trace.d.ts.map +0 -1
  217. package/dist/commands/trace.js +0 -163
  218. package/dist/commands/trace.js.map +0 -1
  219. package/dist/commands/tracker.d.ts +0 -2
  220. package/dist/commands/tracker.d.ts.map +0 -1
  221. package/dist/commands/tracker.js +0 -28
  222. package/dist/commands/tracker.js.map +0 -1
  223. package/dist/commands/verdict.d.ts +0 -16
  224. package/dist/commands/verdict.d.ts.map +0 -1
  225. package/dist/commands/verdict.js +0 -189
  226. package/dist/commands/verdict.js.map +0 -1
  227. package/dist/commands/workspace.d.ts +0 -20
  228. package/dist/commands/workspace.d.ts.map +0 -1
  229. package/dist/commands/workspace.js +0 -142
  230. package/dist/commands/workspace.js.map +0 -1
  231. package/dist/core/constraint-set.d.ts +0 -67
  232. package/dist/core/constraint-set.d.ts.map +0 -1
  233. package/dist/core/constraint-set.js +0 -151
  234. package/dist/core/constraint-set.js.map +0 -1
  235. package/dist/core/smart-recommend.d.ts +0 -16
  236. package/dist/core/smart-recommend.d.ts.map +0 -1
  237. package/dist/core/smart-recommend.js +0 -149
  238. package/dist/core/smart-recommend.js.map +0 -1
  239. package/dist/core/task-type-registry.d.ts +0 -110
  240. package/dist/core/task-type-registry.d.ts.map +0 -1
  241. package/dist/core/task-type-registry.js +0 -334
  242. package/dist/core/task-type-registry.js.map +0 -1
  243. package/dist/utils/mermaid-render.d.ts +0 -39
  244. package/dist/utils/mermaid-render.d.ts.map +0 -1
  245. package/dist/utils/mermaid-render.js +0 -284
  246. package/dist/utils/mermaid-render.js.map +0 -1
@@ -61,6 +61,8 @@ const ui_verify_1 = require("../../core/ui-verify");
61
61
  // v8.3.125+: 公共同义词扩展模块(从 split.ts 提取,供全链路使用)
62
62
  const synonyms_1 = require("../../utils/synonyms");
63
63
  const unit_context_assembler_1 = require("../../core/unit-context-assembler");
64
+ // v8.3.343+: FUNCTION_MAP 解析迁至 core/function-map.ts(analyze 声明过窄检测与 taskify 共用)
65
+ const function_map_1 = require("../../core/function-map");
64
66
  /**
65
67
  * 将 AI 返回的 scope 简写映射到 CONSTITUTION.md 标准端名
66
68
  * v6.69.3+: 解决中文简写(如 "后端"、"admin")导致目录名错误的问题
@@ -871,7 +873,7 @@ async function iterationTaskifyCommand(options) {
871
873
  if (await (0, fs_extra_1.pathExists)(funcMapPath)) {
872
874
  try {
873
875
  const fmContent = await (0, fs_extra_1.readFile)(funcMapPath, 'utf-8');
874
- const funcUnits = parseFunctionMap(fmContent, allPlatforms);
876
+ const funcUnits = (0, function_map_1.parseFunctionMap)(fmContent, allPlatforms);
875
877
  if (funcUnits.length > 0) {
876
878
  const aiUnits = new Set();
877
879
  for (const t of tasks) {
@@ -3866,7 +3868,7 @@ subagent, contextType) {
3866
3868
  let funcUnitsInjected = false;
3867
3869
  if (await (0, fs_extra_1.pathExists)(funcMapPath)) {
3868
3870
  const funcMapContent = await (0, fs_extra_1.readFile)(funcMapPath, 'utf-8');
3869
- const funcUnits = parseFunctionMap(funcMapContent, standardPlatforms);
3871
+ const funcUnits = (0, function_map_1.parseFunctionMap)(funcMapContent, standardPlatforms);
3870
3872
  if (funcUnits.length > 0) {
3871
3873
  p += `## 🧩 功能单元上下文(CLI 从 FUNCTION_MAP.md 精准提取)\n\n`;
3872
3874
  p += `> 以下是从 FUNCTION_MAP.md 中为每个功能单元提取的相关上下文。\n`;
@@ -4674,150 +4676,6 @@ function parseModulePlatformsBySection(content, allPlatforms) {
4674
4676
  }
4675
4677
  return modules;
4676
4678
  }
4677
- /**
4678
- * v6.70.0+: 解析 FUNCTION_MAP.md 跨端功能映射表
4679
- * 支持两种格式:
4680
- * 1. Markdown 表格(功能单元 | 涉及端 | ...)
4681
- * 2. 树形格式(├── 模块名 ... platform1 ✅ | platform2 ✅)
4682
- * 返回功能单元列表,含涉及端、共享能力、依赖关系
4683
- */
4684
- function parseFunctionMap(content, allPlatforms) {
4685
- // v7.4.2+: 先尝试表格格式
4686
- const tableResult = parseFunctionMapTable(content, allPlatforms);
4687
- if (tableResult.length > 0)
4688
- return tableResult;
4689
- // v7.4.2+: 回退到树形格式解析
4690
- return parseFunctionMapTree(content, allPlatforms);
4691
- }
4692
- /**
4693
- * v7.4.2+: 解析 FUNCTION_MAP.md 表格格式
4694
- */
4695
- function parseFunctionMapTable(content, allPlatforms) {
4696
- const units = [];
4697
- const lines = content.split(/\r?\n/);
4698
- let inTable = false;
4699
- let platformColIdx = -1;
4700
- let sharedCapColIdx = -1;
4701
- let dependsOnColIdx = -1;
4702
- let descColIdx = -1;
4703
- for (const line of lines) {
4704
- if (line.includes('功能单元') && line.includes('涉及端')) {
4705
- inTable = true;
4706
- const headerCells = line.split('|').map(c => c.trim()).filter(Boolean);
4707
- platformColIdx = headerCells.findIndex(c => c.includes('涉及端'));
4708
- sharedCapColIdx = headerCells.findIndex(c => c.includes('共享能力'));
4709
- dependsOnColIdx = headerCells.findIndex(c => c.includes('依赖任务'));
4710
- descColIdx = headerCells.findIndex(c => c.includes('说明'));
4711
- continue;
4712
- }
4713
- if (!inTable)
4714
- continue;
4715
- if (line.startsWith('## ') && !line.includes('功能映射'))
4716
- break;
4717
- const cells = line.split('|').map(c => c.trim()).filter(Boolean);
4718
- if (cells.length < 3)
4719
- continue;
4720
- if (cells.every(c => /^[-:]+$/.test(c)))
4721
- continue;
4722
- if (cells.some(c => c.includes('功能单元')) || cells.some(c => c.includes('涉及端')))
4723
- continue;
4724
- // v8.3.268: 功能单元列取 cells[0](表头第一列)。此前取 cells[1] 依赖旧数据
4725
- // 「| 目录名 | 名称 | 端列表 | …」的列错位(cells[1]=名称),一旦表格对齐表头
4726
- // (cells[1]=涉及端)任务名就变成端列表。「dir(名称)」格式剥尾部括号注释。
4727
- const unitNameRaw = cells[0] || cells[1];
4728
- const unitName = unitNameRaw.replace(/[((][^))]*[))]$/, '').trim();
4729
- if (!unitName || unitName === '#' || unitName === '功能单元')
4730
- continue;
4731
- let platforms = [];
4732
- if (platformColIdx >= 0 && platformColIdx < cells.length) {
4733
- const raw = cells[platformColIdx];
4734
- if (raw && raw !== '无' && raw !== '—' && raw !== '-') {
4735
- platforms = raw.split(/[,,]/).map(p => p.trim()).filter(p => p && allPlatforms.includes(p));
4736
- }
4737
- }
4738
- // v8.3.268: 端列自适应——AI 落盘 FUNCTION_MAP 表格可能列错位(涉及端表头下是
4739
- // 名称、端列表落在其他列),按表头解析落空时扫描整行,找「逗号分隔且 ≥2 个
4740
- // 值全部属于标准端名」的单元格作为端列,避免静默回退全端平铺。
4741
- if (platforms.length === 0) {
4742
- for (const cell of cells) {
4743
- const parts = cell.split(/[,,]/).map(p => p.trim()).filter(Boolean);
4744
- if (parts.length >= 2 && parts.every(p => allPlatforms.includes(p))) {
4745
- platforms = parts;
4746
- break;
4747
- }
4748
- }
4749
- }
4750
- if (platforms.length === 0)
4751
- platforms = [...allPlatforms];
4752
- let sharedCapability = '无';
4753
- if (sharedCapColIdx >= 0 && sharedCapColIdx < cells.length) {
4754
- const raw = cells[sharedCapColIdx];
4755
- if (raw && raw !== '无' && raw !== '—' && raw !== '-')
4756
- sharedCapability = raw;
4757
- }
4758
- let dependsOn = [];
4759
- if (dependsOnColIdx >= 0 && dependsOnColIdx < cells.length) {
4760
- const raw = cells[dependsOnColIdx];
4761
- if (raw && raw !== '无' && raw !== '—' && raw !== '-') {
4762
- dependsOn = raw.split(/[,,]/).map(p => p.trim()).filter(Boolean);
4763
- }
4764
- }
4765
- let description = '';
4766
- if (descColIdx >= 0 && descColIdx < cells.length)
4767
- description = cells[descColIdx];
4768
- units.push({ name: unitName, platforms, sharedCapability, dependsOn, description });
4769
- }
4770
- return units;
4771
- }
4772
- /**
4773
- * v7.4.2+: 解析 FUNCTION_MAP.md 树形格式
4774
- * 匹配: ├── 会议室 CRUD .............. room-service ✅ | admin-web ✅
4775
- * 提取: 模块名="会议室 CRUD", 涉及端=[room-service, admin-web]
4776
- */
4777
- function parseFunctionMapTree(content, allPlatforms) {
4778
- const units = [];
4779
- const lines = content.split(/\r?\n/);
4780
- // 树形节点正则:匹配 ├── 或 └── 开头的行
4781
- const treeNodeRe = /[├└]──\s*/;
4782
- // 分隔点正则:匹配连续 .... 或 ———
4783
- const separatorRe = /\s*[.·]{3,}\s*/;
4784
- for (const line of lines) {
4785
- if (!treeNodeRe.test(line))
4786
- continue;
4787
- // 提取树节点后的文本
4788
- const afterTree = line.replace(/.*[├└]──\s*/, '').trim();
4789
- if (!afterTree)
4790
- continue;
4791
- // 跳过分类型节点(如 ├── 🏢 会议室管理),这些是父级分类
4792
- // 父级节点通常没有 ... 分隔符和平台标记
4793
- if (!separatorRe.test(afterTree) && !afterTree.includes('✅') && !afterTree.includes('❌') && !afterTree.includes('⚠️')) {
4794
- continue; // 这是分类父节点,跳过
4795
- }
4796
- // 分割模块名和平台部分
4797
- const parts = afterTree.split(separatorRe);
4798
- if (parts.length < 2)
4799
- continue;
4800
- // 模块名:去除 emoji 和空格
4801
- let unitName = parts[0].replace(/[🏢📅✅💰🔔👥📊⚙️🔑🛡️]/g, '').trim();
4802
- if (!unitName || unitName.length < 2)
4803
- continue;
4804
- // 平台部分:提取所有标准端名
4805
- const platformPart = parts.slice(1).join(' ');
4806
- const platforms = [];
4807
- for (const p of allPlatforms) {
4808
- if (platformPart.includes(p)) {
4809
- platforms.push(p);
4810
- }
4811
- }
4812
- // 如果没匹配到标准端名,尝试匹配常见缩写
4813
- if (platforms.length === 0) {
4814
- // 回退全端
4815
- platforms.push(...allPlatforms);
4816
- }
4817
- units.push({ name: unitName, platforms, sharedCapability: '无', dependsOn: [], description: '' });
4818
- }
4819
- return units;
4820
- }
4821
4679
  /**
4822
4680
  * v7.5.0+: 从 ANALYSIS.md 提取功能单元清单
4823
4681
  * 支持两种格式:
@@ -4945,7 +4803,7 @@ async function tryModuleDrivenSplit(iteration, iterationDir, options) {
4945
4803
  if (await (0, fs_extra_1.pathExists)(functionMapPath)) {
4946
4804
  try {
4947
4805
  const content = await (0, fs_extra_1.readFile)(functionMapPath, 'utf-8');
4948
- const parsed = parseFunctionMap(content, allPlatforms);
4806
+ const parsed = (0, function_map_1.parseFunctionMap)(content, allPlatforms);
4949
4807
  if (parsed.length > 0) {
4950
4808
  for (const u of parsed) {
4951
4809
  modules.push({