speccore 8.3.304 → 8.3.306

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 (130) hide show
  1. package/dist/commands/change.d.ts.map +1 -1
  2. package/dist/commands/change.js +2 -1
  3. package/dist/commands/change.js.map +1 -1
  4. package/dist/commands/doctor.js +7 -6
  5. package/dist/commands/doctor.js.map +1 -1
  6. package/dist/commands/history.d.ts.map +1 -1
  7. package/dist/commands/history.js +2 -1
  8. package/dist/commands/history.js.map +1 -1
  9. package/dist/commands/iteration/taskify.js +3 -1
  10. package/dist/commands/iteration/taskify.js.map +1 -1
  11. package/dist/commands/welcome.d.ts.map +1 -1
  12. package/dist/commands/welcome.js +3 -2
  13. package/dist/commands/welcome.js.map +1 -1
  14. package/dist/core/analyze-engine.js +8 -8
  15. package/dist/core/analyze-engine.js.map +1 -1
  16. package/dist/core/ask-config.d.ts.map +1 -1
  17. package/dist/core/ask-config.js +8 -6
  18. package/dist/core/ask-config.js.map +1 -1
  19. package/dist/core/capabilities.d.ts.map +1 -1
  20. package/dist/core/capabilities.js +2 -1
  21. package/dist/core/capabilities.js.map +1 -1
  22. package/dist/core/change-detection.d.ts.map +1 -1
  23. package/dist/core/change-detection.js +6 -5
  24. package/dist/core/change-detection.js.map +1 -1
  25. package/dist/core/change-inbox.d.ts.map +1 -1
  26. package/dist/core/change-inbox.js +2 -1
  27. package/dist/core/change-inbox.js.map +1 -1
  28. package/dist/core/code-graph/incremental-build.d.ts.map +1 -1
  29. package/dist/core/code-graph/incremental-build.js +2 -1
  30. package/dist/core/code-graph/incremental-build.js.map +1 -1
  31. package/dist/core/code-graph/index.d.ts.map +1 -1
  32. package/dist/core/code-graph/index.js +2 -1
  33. package/dist/core/code-graph/index.js.map +1 -1
  34. package/dist/core/code-graph/requirement-linker.d.ts.map +1 -1
  35. package/dist/core/code-graph/requirement-linker.js +2 -1
  36. package/dist/core/code-graph/requirement-linker.js.map +1 -1
  37. package/dist/core/code-index-markdown.d.ts.map +1 -1
  38. package/dist/core/code-index-markdown.js +5 -4
  39. package/dist/core/code-index-markdown.js.map +1 -1
  40. package/dist/core/code-scanner.d.ts.map +1 -1
  41. package/dist/core/code-scanner.js +6 -5
  42. package/dist/core/code-scanner.js.map +1 -1
  43. package/dist/core/context.d.ts.map +1 -1
  44. package/dist/core/context.js +7 -6
  45. package/dist/core/context.js.map +1 -1
  46. package/dist/core/doc-cross-reference.d.ts.map +1 -1
  47. package/dist/core/doc-cross-reference.js +2 -1
  48. package/dist/core/doc-cross-reference.js.map +1 -1
  49. package/dist/core/doc-quality-gate.d.ts.map +1 -1
  50. package/dist/core/doc-quality-gate.js +2 -1
  51. package/dist/core/doc-quality-gate.js.map +1 -1
  52. package/dist/core/environment-config.d.ts.map +1 -1
  53. package/dist/core/environment-config.js +3 -2
  54. package/dist/core/environment-config.js.map +1 -1
  55. package/dist/core/git-integration.d.ts +13 -0
  56. package/dist/core/git-integration.d.ts.map +1 -1
  57. package/dist/core/git-integration.js +69 -56
  58. package/dist/core/git-integration.js.map +1 -1
  59. package/dist/core/global-artifacts.d.ts.map +1 -1
  60. package/dist/core/global-artifacts.js +2 -1
  61. package/dist/core/global-artifacts.js.map +1 -1
  62. package/dist/core/global-counters.d.ts.map +1 -1
  63. package/dist/core/global-counters.js +2 -1
  64. package/dist/core/global-counters.js.map +1 -1
  65. package/dist/core/global-layer.d.ts.map +1 -1
  66. package/dist/core/global-layer.js +2 -1
  67. package/dist/core/global-layer.js.map +1 -1
  68. package/dist/core/handoff-generator.d.ts.map +1 -1
  69. package/dist/core/handoff-generator.js +4 -3
  70. package/dist/core/handoff-generator.js.map +1 -1
  71. package/dist/core/html-prototype.d.ts.map +1 -1
  72. package/dist/core/html-prototype.js +2 -1
  73. package/dist/core/html-prototype.js.map +1 -1
  74. package/dist/core/inbox.d.ts.map +1 -1
  75. package/dist/core/inbox.js +4 -2
  76. package/dist/core/inbox.js.map +1 -1
  77. package/dist/core/incremental-analyzer.d.ts.map +1 -1
  78. package/dist/core/incremental-analyzer.js +2 -1
  79. package/dist/core/incremental-analyzer.js.map +1 -1
  80. package/dist/core/iteration-cache.d.ts.map +1 -1
  81. package/dist/core/iteration-cache.js +2 -1
  82. package/dist/core/iteration-cache.js.map +1 -1
  83. package/dist/core/notification.d.ts.map +1 -1
  84. package/dist/core/notification.js +2 -1
  85. package/dist/core/notification.js.map +1 -1
  86. package/dist/core/operation-log.d.ts.map +1 -1
  87. package/dist/core/operation-log.js +2 -1
  88. package/dist/core/operation-log.js.map +1 -1
  89. package/dist/core/pattern-detector.d.ts.map +1 -1
  90. package/dist/core/pattern-detector.js +3 -2
  91. package/dist/core/pattern-detector.js.map +1 -1
  92. package/dist/core/pipeline-engine.d.ts.map +1 -1
  93. package/dist/core/pipeline-engine.js +2 -1
  94. package/dist/core/pipeline-engine.js.map +1 -1
  95. package/dist/core/plan-store.d.ts.map +1 -1
  96. package/dist/core/plan-store.js +4 -2
  97. package/dist/core/plan-store.js.map +1 -1
  98. package/dist/core/questions.d.ts.map +1 -1
  99. package/dist/core/questions.js +3 -2
  100. package/dist/core/questions.js.map +1 -1
  101. package/dist/core/rag-engine.d.ts.map +1 -1
  102. package/dist/core/rag-engine.js +2 -1
  103. package/dist/core/rag-engine.js.map +1 -1
  104. package/dist/core/refresh-scheduler.d.ts.map +1 -1
  105. package/dist/core/refresh-scheduler.js +4 -3
  106. package/dist/core/refresh-scheduler.js.map +1 -1
  107. package/dist/core/session-state.d.ts.map +1 -1
  108. package/dist/core/session-state.js +7 -5
  109. package/dist/core/session-state.js.map +1 -1
  110. package/dist/core/spec-rules.d.ts.map +1 -1
  111. package/dist/core/spec-rules.js +3 -2
  112. package/dist/core/spec-rules.js.map +1 -1
  113. package/dist/core/structured-extractor.d.ts.map +1 -1
  114. package/dist/core/structured-extractor.js +10 -9
  115. package/dist/core/structured-extractor.js.map +1 -1
  116. package/dist/core/unified-config.d.ts.map +1 -1
  117. package/dist/core/unified-config.js +20 -19
  118. package/dist/core/unified-config.js.map +1 -1
  119. package/dist/core/validator.d.ts.map +1 -1
  120. package/dist/core/validator.js +2 -1
  121. package/dist/core/validator.js.map +1 -1
  122. package/dist/utils/task-utils.d.ts +7 -0
  123. package/dist/utils/task-utils.d.ts.map +1 -1
  124. package/dist/utils/task-utils.js +11 -1
  125. package/dist/utils/task-utils.js.map +1 -1
  126. package/package.json +1 -1
  127. package/templates/html/speccore-ask-guide.html +1 -1
  128. package/templates/html/speccore-ask-pipeline.html +1 -1
  129. package/templates/html/speccore-ask-result.html +1 -1
  130. package/templates/html/speccore-help.html +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../src/commands/welcome.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,MAAM,WAAW,cAAc;IAAG,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAAE;AAEpF,wBAAsB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAsD5E;AAYD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAClD,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAC/B,MAAM,CAOR"}
1
+ {"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../src/commands/welcome.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH,MAAM,WAAW,cAAc;IAAG,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAAE;AAEpF,wBAAsB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAsD5E;AAYD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAClD,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAC/B,MAAM,CAOR"}
@@ -11,6 +11,7 @@ const ask_host_ai_1 = require("../core/ask-host-ai");
11
11
  const path_1 = require("path");
12
12
  const fs_extra_1 = require("fs-extra");
13
13
  const context_1 = require("../core/context");
14
+ const task_utils_1 = require("../utils/task-utils");
14
15
  const C = { r: '\x1b[0m', b: '\x1b[1m', d: '\x1b[2m', cyan: '\x1b[36m', green: '\x1b[32m', yellow: '\x1b[33m', magenta: '\x1b[35m', gray: '\x1b[90m', blue: '\x1b[34m' };
15
16
  const B = { tl: '╭', tr: '╮', bl: '╰', br: '╯', h: '─', v: '│', dot: '◆', arrow: '→' };
16
17
  function box(title, body, w = 60) {
@@ -35,10 +36,10 @@ async function welcomeCommand(_options) {
35
36
  }
36
37
  let phase = 'doc';
37
38
  if (iterName) {
38
- const reqDoc = (0, path_1.join)(`Iteration-${iterName}`, '020-specs', 'REQUIREMENT.md');
39
+ const reqDoc = (0, path_1.join)((0, task_utils_1.getProjectRoot)(), `Iteration-${iterName}`, '020-specs', 'REQUIREMENT.md');
39
40
  if (!(await (0, fs_extra_1.pathExists)(reqDoc)))
40
41
  phase = 'doc';
41
- else if (!(await (0, fs_extra_1.pathExists)((0, path_1.join)(`Iteration-${iterName}`, '020-specs', 'ANALYSIS.md'))))
42
+ else if (!(await (0, fs_extra_1.pathExists)((0, path_1.join)((0, task_utils_1.getProjectRoot)(), `Iteration-${iterName}`, '020-specs', 'ANALYSIS.md'))))
42
43
  phase = 'analyze';
43
44
  else if (taskCount === 0)
44
45
  phase = 'split';
@@ -1 +1 @@
1
- {"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../src/commands/welcome.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../src/commands/welcome.ts"],"names":[],"mappings":"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"}
@@ -85,7 +85,7 @@ async function runAnalysis(input) {
85
85
  // 自动检测: 都没指定 → 从 01-产品需求/ 递归读取产品原始需求
86
86
  if (requirements.length === 0 && sources.length === 0) {
87
87
  if (input.scope === 'iteration' && input.iteration) {
88
- const productReqDir = (0, path_1.join)(`Iteration-${input.iteration}`, '010-requirements');
88
+ const productReqDir = (0, path_1.join)((0, task_utils_1.getProjectRoot)(), `Iteration-${input.iteration}`, '010-requirements');
89
89
  if (await (0, fs_extra_1.pathExists)(productReqDir)) {
90
90
  // 递归扫描子目录 ({端名}/ 等)
91
91
  const scanDir = async (dir) => {
@@ -104,7 +104,7 @@ async function runAnalysis(input) {
104
104
  }
105
105
  // 回退路径: 如果没有 01-产品需求/, 回退到 010-requirements/REQUIREMENT.md
106
106
  if (requirements.length === 0) {
107
- const legacyReq = (0, path_1.join)(`Iteration-${input.iteration}`, '010-requirements', 'REQUIREMENT.md');
107
+ const legacyReq = (0, path_1.join)((0, task_utils_1.getProjectRoot)(), `Iteration-${input.iteration}`, '010-requirements', 'REQUIREMENT.md');
108
108
  if (await (0, fs_extra_1.pathExists)(legacyReq)) {
109
109
  requirements = [legacyReq];
110
110
  }
@@ -216,12 +216,12 @@ async function analyzeRequirements(input) {
216
216
  let outputPath;
217
217
  let report;
218
218
  if (input.scope === 'global') {
219
- outputPath = (0, path_1.join)('.speccore', 'GLOBAL', input.output || 'REQ_CONSISTENCY.md');
219
+ outputPath = (0, path_1.join)((0, task_utils_1.getProjectRoot)(), '.speccore', 'GLOBAL', input.output || 'REQ_CONSISTENCY.md');
220
220
  report = buildReqConsistencyReport(input, issues, archImpact);
221
221
  }
222
222
  else if (input.scope === 'task') {
223
223
  // task scope — 已在入口校验
224
- outputPath = (0, path_1.join)(`Iteration-${input.iteration}`, '030-tasks', input.taskId, '00-specs', input.output || 'ANALYSIS.md');
224
+ outputPath = (0, path_1.join)((0, task_utils_1.getProjectRoot)(), `Iteration-${input.iteration}`, '030-tasks', input.taskId, '00-specs', input.output || 'ANALYSIS.md');
225
225
  report = buildTaskReqReport(input, issues, archImpact, sourceContents, sourceSummaries);
226
226
  }
227
227
  else {
@@ -285,7 +285,7 @@ async function analyzeCodebase(input) {
285
285
  }
286
286
  else if (input.scope === 'task') {
287
287
  // task scope — 已在入口校验
288
- outputPath = (0, path_1.join)(`Iteration-${input.iteration}`, '030-tasks', input.taskId, '00-specs', input.output || 'CODE_REVIEW.md');
288
+ outputPath = (0, path_1.join)((0, task_utils_1.getProjectRoot)(), `Iteration-${input.iteration}`, '030-tasks', input.taskId, '00-specs', input.output || 'CODE_REVIEW.md');
289
289
  report = buildTaskCodeReport(input, fileStats, apiInventory, hotspots);
290
290
  }
291
291
  else {
@@ -377,7 +377,7 @@ async function analyzeCombined(input) {
377
377
  report = await buildAIEnhancedReport(input, 'global', { issues, archImpact, fileStats, apiInventory, aiContext, sourceContents });
378
378
  }
379
379
  else if (input.scope === 'task') {
380
- outputPath = (0, path_1.join)(`Iteration-${input.iteration}`, '030-tasks', input.taskId, '00-specs', input.output || 'ANALYSIS.md');
380
+ outputPath = (0, path_1.join)((0, task_utils_1.getProjectRoot)(), `Iteration-${input.iteration}`, '030-tasks', input.taskId, '00-specs', input.output || 'ANALYSIS.md');
381
381
  report = await buildAIEnhancedReport(input, 'task', { issues, archImpact, fileStats, apiInventory, aiContext, sourceContents });
382
382
  }
383
383
  else {
@@ -728,7 +728,7 @@ function scanCompleteness(content) {
728
728
  }
729
729
  async function analyzeArchitectureImpact(content) {
730
730
  const impact = { modules: [], newDependencies: [], risks: [], apis: [] };
731
- const archPath = (0, path_1.join)(process.cwd(), '.speccore', 'GLOBAL', 'ARCHITECTURE.md');
731
+ const archPath = (0, path_1.join)((0, task_utils_1.getProjectRoot)(), '.speccore', 'GLOBAL', 'ARCHITECTURE.md');
732
732
  if (await (0, fs_extra_1.pathExists)(archPath)) {
733
733
  const archContent = await (0, fs_extra_1.readFile)(archPath, 'utf-8');
734
734
  if (archContent.match(/## 模块|## 系统边界|## 服务列表/)) {
@@ -1765,7 +1765,7 @@ async function detectPlatformsFromConstitution() {
1765
1765
  _detectedBackendPlatforms = explicitPlatforms.filter(p => /service|server|api|backend|后台|服务|后端/i.test(p));
1766
1766
  return explicitPlatforms;
1767
1767
  }
1768
- const constitutionPath = (0, path_1.join)(process.cwd(), '.speccore', 'CONSTITUTION.md');
1768
+ const constitutionPath = (0, path_1.join)((0, task_utils_1.getProjectRoot)(), '.speccore', 'CONSTITUTION.md');
1769
1769
  if (require('fs').existsSync(constitutionPath)) {
1770
1770
  const content = require('fs').readFileSync(constitutionPath, 'utf-8');
1771
1771
  const lines = content.split('\n');