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.
- package/dist/commands/change.d.ts.map +1 -1
- package/dist/commands/change.js +2 -1
- package/dist/commands/change.js.map +1 -1
- package/dist/commands/doctor.js +7 -6
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/history.d.ts.map +1 -1
- package/dist/commands/history.js +2 -1
- package/dist/commands/history.js.map +1 -1
- package/dist/commands/iteration/taskify.js +3 -1
- package/dist/commands/iteration/taskify.js.map +1 -1
- package/dist/commands/welcome.d.ts.map +1 -1
- package/dist/commands/welcome.js +3 -2
- package/dist/commands/welcome.js.map +1 -1
- package/dist/core/analyze-engine.js +8 -8
- package/dist/core/analyze-engine.js.map +1 -1
- package/dist/core/ask-config.d.ts.map +1 -1
- package/dist/core/ask-config.js +8 -6
- package/dist/core/ask-config.js.map +1 -1
- package/dist/core/capabilities.d.ts.map +1 -1
- package/dist/core/capabilities.js +2 -1
- package/dist/core/capabilities.js.map +1 -1
- package/dist/core/change-detection.d.ts.map +1 -1
- package/dist/core/change-detection.js +6 -5
- package/dist/core/change-detection.js.map +1 -1
- package/dist/core/change-inbox.d.ts.map +1 -1
- package/dist/core/change-inbox.js +2 -1
- package/dist/core/change-inbox.js.map +1 -1
- package/dist/core/code-graph/incremental-build.d.ts.map +1 -1
- package/dist/core/code-graph/incremental-build.js +2 -1
- package/dist/core/code-graph/incremental-build.js.map +1 -1
- package/dist/core/code-graph/index.d.ts.map +1 -1
- package/dist/core/code-graph/index.js +2 -1
- package/dist/core/code-graph/index.js.map +1 -1
- package/dist/core/code-graph/requirement-linker.d.ts.map +1 -1
- package/dist/core/code-graph/requirement-linker.js +2 -1
- package/dist/core/code-graph/requirement-linker.js.map +1 -1
- package/dist/core/code-index-markdown.d.ts.map +1 -1
- package/dist/core/code-index-markdown.js +5 -4
- package/dist/core/code-index-markdown.js.map +1 -1
- package/dist/core/code-scanner.d.ts.map +1 -1
- package/dist/core/code-scanner.js +6 -5
- package/dist/core/code-scanner.js.map +1 -1
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +7 -6
- package/dist/core/context.js.map +1 -1
- package/dist/core/doc-cross-reference.d.ts.map +1 -1
- package/dist/core/doc-cross-reference.js +2 -1
- package/dist/core/doc-cross-reference.js.map +1 -1
- package/dist/core/doc-quality-gate.d.ts.map +1 -1
- package/dist/core/doc-quality-gate.js +2 -1
- package/dist/core/doc-quality-gate.js.map +1 -1
- package/dist/core/environment-config.d.ts.map +1 -1
- package/dist/core/environment-config.js +3 -2
- package/dist/core/environment-config.js.map +1 -1
- package/dist/core/git-integration.d.ts +13 -0
- package/dist/core/git-integration.d.ts.map +1 -1
- package/dist/core/git-integration.js +69 -56
- package/dist/core/git-integration.js.map +1 -1
- package/dist/core/global-artifacts.d.ts.map +1 -1
- package/dist/core/global-artifacts.js +2 -1
- package/dist/core/global-artifacts.js.map +1 -1
- package/dist/core/global-counters.d.ts.map +1 -1
- package/dist/core/global-counters.js +2 -1
- package/dist/core/global-counters.js.map +1 -1
- package/dist/core/global-layer.d.ts.map +1 -1
- package/dist/core/global-layer.js +2 -1
- package/dist/core/global-layer.js.map +1 -1
- package/dist/core/handoff-generator.d.ts.map +1 -1
- package/dist/core/handoff-generator.js +4 -3
- package/dist/core/handoff-generator.js.map +1 -1
- package/dist/core/html-prototype.d.ts.map +1 -1
- package/dist/core/html-prototype.js +2 -1
- package/dist/core/html-prototype.js.map +1 -1
- package/dist/core/inbox.d.ts.map +1 -1
- package/dist/core/inbox.js +4 -2
- package/dist/core/inbox.js.map +1 -1
- package/dist/core/incremental-analyzer.d.ts.map +1 -1
- package/dist/core/incremental-analyzer.js +2 -1
- package/dist/core/incremental-analyzer.js.map +1 -1
- package/dist/core/iteration-cache.d.ts.map +1 -1
- package/dist/core/iteration-cache.js +2 -1
- package/dist/core/iteration-cache.js.map +1 -1
- package/dist/core/notification.d.ts.map +1 -1
- package/dist/core/notification.js +2 -1
- package/dist/core/notification.js.map +1 -1
- package/dist/core/operation-log.d.ts.map +1 -1
- package/dist/core/operation-log.js +2 -1
- package/dist/core/operation-log.js.map +1 -1
- package/dist/core/pattern-detector.d.ts.map +1 -1
- package/dist/core/pattern-detector.js +3 -2
- package/dist/core/pattern-detector.js.map +1 -1
- package/dist/core/pipeline-engine.d.ts.map +1 -1
- package/dist/core/pipeline-engine.js +2 -1
- package/dist/core/pipeline-engine.js.map +1 -1
- package/dist/core/plan-store.d.ts.map +1 -1
- package/dist/core/plan-store.js +4 -2
- package/dist/core/plan-store.js.map +1 -1
- package/dist/core/questions.d.ts.map +1 -1
- package/dist/core/questions.js +3 -2
- package/dist/core/questions.js.map +1 -1
- package/dist/core/rag-engine.d.ts.map +1 -1
- package/dist/core/rag-engine.js +2 -1
- package/dist/core/rag-engine.js.map +1 -1
- package/dist/core/refresh-scheduler.d.ts.map +1 -1
- package/dist/core/refresh-scheduler.js +4 -3
- package/dist/core/refresh-scheduler.js.map +1 -1
- package/dist/core/session-state.d.ts.map +1 -1
- package/dist/core/session-state.js +7 -5
- package/dist/core/session-state.js.map +1 -1
- package/dist/core/spec-rules.d.ts.map +1 -1
- package/dist/core/spec-rules.js +3 -2
- package/dist/core/spec-rules.js.map +1 -1
- package/dist/core/structured-extractor.d.ts.map +1 -1
- package/dist/core/structured-extractor.js +10 -9
- package/dist/core/structured-extractor.js.map +1 -1
- package/dist/core/unified-config.d.ts.map +1 -1
- package/dist/core/unified-config.js +20 -19
- package/dist/core/unified-config.js.map +1 -1
- package/dist/core/validator.d.ts.map +1 -1
- package/dist/core/validator.js +2 -1
- package/dist/core/validator.js.map +1 -1
- package/dist/utils/task-utils.d.ts +7 -0
- package/dist/utils/task-utils.d.ts.map +1 -1
- package/dist/utils/task-utils.js +11 -1
- package/dist/utils/task-utils.js.map +1 -1
- package/package.json +1 -1
- package/templates/html/speccore-ask-guide.html +1 -1
- package/templates/html/speccore-ask-pipeline.html +1 -1
- package/templates/html/speccore-ask-result.html +1 -1
- 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;
|
|
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"}
|
package/dist/commands/welcome.js
CHANGED
|
@@ -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":";AAAA;;;GAGG;;
|
|
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)(
|
|
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)(
|
|
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');
|