speccore 8.3.159 → 8.3.160
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/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +54 -24
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +67 -6
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +6 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/iteration/split.d.ts.map +1 -1
- package/dist/commands/iteration/split.js +73 -9
- package/dist/commands/iteration/split.js.map +1 -1
- package/dist/core/agent-adapter.d.ts +81 -0
- package/dist/core/agent-adapter.d.ts.map +1 -0
- package/dist/core/agent-adapter.js +425 -0
- package/dist/core/agent-adapter.js.map +1 -0
- package/dist/core/pipeline-engine.d.ts +49 -8
- package/dist/core/pipeline-engine.d.ts.map +1 -1
- package/dist/core/pipeline-engine.js +221 -34
- package/dist/core/pipeline-engine.js.map +1 -1
- package/dist/core/prompt-builder.d.ts +4 -0
- package/dist/core/prompt-builder.d.ts.map +1 -1
- package/dist/core/prompt-builder.js +83 -10
- package/dist/core/prompt-builder.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAoEA,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;IACxC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAuGD,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/analyze.js
CHANGED
|
@@ -850,8 +850,8 @@ async function analyzeCommand(options) {
|
|
|
850
850
|
engine = result.engine;
|
|
851
851
|
steps = result.steps;
|
|
852
852
|
pipelineKey = iter;
|
|
853
|
-
//
|
|
854
|
-
initStep = options.skipClarify ? 'phase1-prompt' : 'clarify-
|
|
853
|
+
// v8.3.160+: clarify 拆分为 product → interaction → security 三个子步骤
|
|
854
|
+
initStep = options.skipClarify ? 'phase1-prompt' : 'clarify-product';
|
|
855
855
|
}
|
|
856
856
|
// 检查是否有活跃的 Pipeline(恢复模式)
|
|
857
857
|
const hasActive = await pipeline_engine_1.PipelineEngine.hasActivePipeline(_projectRoot, pipelineKey);
|
|
@@ -896,8 +896,8 @@ async function analyzeCommand(options) {
|
|
|
896
896
|
}, options);
|
|
897
897
|
}
|
|
898
898
|
}
|
|
899
|
-
else if (currentStep === 'clarify-
|
|
900
|
-
//
|
|
899
|
+
else if (currentStep === 'clarify-product' || currentStep === 'clarify-interaction' || currentStep === 'clarify-security') {
|
|
900
|
+
// v8.3.160+: Phase 0 需求澄清(拆分为 product / interaction / security 三个子步骤)
|
|
901
901
|
prompt = await buildClarifyPhasePrompt(iter);
|
|
902
902
|
}
|
|
903
903
|
else if (currentStep === 'confirm-check') {
|
|
@@ -941,22 +941,27 @@ async function analyzeCommand(options) {
|
|
|
941
941
|
: '全局 Pipeline';
|
|
942
942
|
}
|
|
943
943
|
else {
|
|
944
|
-
progressLabel = currentStep === 'clarify-
|
|
945
|
-
? 'Phase
|
|
946
|
-
: currentStep === '
|
|
947
|
-
? 'Phase
|
|
948
|
-
: currentStep === '
|
|
949
|
-
? 'Phase
|
|
950
|
-
: currentStep === '
|
|
951
|
-
? 'Phase
|
|
952
|
-
:
|
|
953
|
-
?
|
|
954
|
-
: '
|
|
955
|
-
|
|
956
|
-
|
|
944
|
+
progressLabel = currentStep === 'clarify-product'
|
|
945
|
+
? 'Phase 0a/3: 产品分析'
|
|
946
|
+
: currentStep === 'clarify-interaction'
|
|
947
|
+
? 'Phase 0b/3: 交互设计'
|
|
948
|
+
: currentStep === 'clarify-security'
|
|
949
|
+
? 'Phase 0c/3: 安全审查'
|
|
950
|
+
: currentStep === 'confirm-check'
|
|
951
|
+
? 'Phase 0/3: 需求确认'
|
|
952
|
+
: currentStep === 'phase1-prompt'
|
|
953
|
+
? 'Phase 1/3: 迭代综合文档'
|
|
954
|
+
: currentStep === 'contract-prompt'
|
|
955
|
+
? 'Phase 2/3: 契约定义'
|
|
956
|
+
: platformMatch
|
|
957
|
+
? `Phase 2/3: ${platformMatch[1]} 端专属文档`
|
|
958
|
+
: 'Pipeline';
|
|
959
|
+
}
|
|
960
|
+
// v8.3.160+: 步骤隔离模式,每步完成后需新会话继续
|
|
961
|
+
const finalPrompt = prompt + `\n\n## ⚠️ Pipeline 模式:步骤隔离 (${progressLabel})\n\n` +
|
|
957
962
|
`当前是 Pipeline 模式(步骤 ${currentStepIndex + 1}/${totalSteps})。` +
|
|
958
|
-
`当你通过 --apply 写入文档后,CLI 会自动输出 [
|
|
959
|
-
`**看到 [
|
|
963
|
+
`当你通过 --apply 写入文档后,CLI 会自动输出 [SPECCORE_STEP_DONE] 标记和下一步命令。\n\n` +
|
|
964
|
+
`**看到 [SPECCORE_STEP_DONE] 后,请在新会话中执行提示的命令**,继续下一步。\n`;
|
|
960
965
|
process.stdout.write(`[SPECCORE_PROMPT]\n${finalPrompt}`);
|
|
961
966
|
process.exitCode = 10;
|
|
962
967
|
return;
|
|
@@ -1905,7 +1910,8 @@ ${singlePrompt}`);
|
|
|
1905
1910
|
platformOrder: platformOrder.length > 0 ? platformOrder : undefined,
|
|
1906
1911
|
})).engine;
|
|
1907
1912
|
}
|
|
1908
|
-
|
|
1913
|
+
// v8.3.160+: 默认步骤隔离模式
|
|
1914
|
+
const stepResult = await engine.advance();
|
|
1909
1915
|
const state = await engine.getState();
|
|
1910
1916
|
if (state?.currentStep === 'done') {
|
|
1911
1917
|
logger_1.logger.success('🎉 Pipeline 完成!');
|
|
@@ -1942,9 +1948,9 @@ ${singlePrompt}`);
|
|
|
1942
1948
|
iteration: options.iteration || 'GLOBAL', scope: 'global', withCode: options.withCode,
|
|
1943
1949
|
});
|
|
1944
1950
|
}
|
|
1945
|
-
//
|
|
1951
|
+
// v8.3.160+: clarify 阶段推进(拆分为 product / interaction / security)
|
|
1946
1952
|
}
|
|
1947
|
-
else if (state.currentStep === 'clarify-
|
|
1953
|
+
else if (state.currentStep === 'clarify-product' || state.currentStep === 'clarify-interaction' || state.currentStep === 'clarify-security') {
|
|
1948
1954
|
nextPrompt = await buildClarifyPhasePrompt(options.iteration);
|
|
1949
1955
|
}
|
|
1950
1956
|
else if (state.currentStep === 'confirm-check') {
|
|
@@ -1973,7 +1979,31 @@ ${singlePrompt}`);
|
|
|
1973
1979
|
iteration: options.iteration,
|
|
1974
1980
|
});
|
|
1975
1981
|
}
|
|
1976
|
-
|
|
1982
|
+
// v8.3.160+: 步骤隔离模式输出标记 + 子 Agent 激活
|
|
1983
|
+
const scopeFlag = isGlobalScope ? '--scope global' : `-I ${options.iteration}`;
|
|
1984
|
+
const nextCmd = `speccore analyze ${scopeFlag} --resume`;
|
|
1985
|
+
const output = [
|
|
1986
|
+
`[SPECCORE_STEP_DONE]`,
|
|
1987
|
+
`步骤 "${state.currentStep}" 已完成。`,
|
|
1988
|
+
``,
|
|
1989
|
+
`[SPECCORE_NEXT_STEP]`,
|
|
1990
|
+
`下一步: ${state.currentStep}`,
|
|
1991
|
+
`请在新的对话中执行: ${nextCmd}`,
|
|
1992
|
+
``,
|
|
1993
|
+
`[SPECCORE_CONTEXT_SNAPSHOT]`,
|
|
1994
|
+
JSON.stringify(stepResult.contextSnapshot || {}),
|
|
1995
|
+
``,
|
|
1996
|
+
// v8.3.160+: 子 Agent 激活标记
|
|
1997
|
+
...(stepResult.subagent ? [
|
|
1998
|
+
`[SPECCORE_SUBAGENT: ${stepResult.subagent}]`,
|
|
1999
|
+
`[SPECCORE_CONTEXT_BUDGET: ${stepResult.contextBudget || 12000}]`,
|
|
2000
|
+
`[SPECCORE_CONTEXT_TYPE: ${stepResult.contextType || 'full'}]`,
|
|
2001
|
+
``,
|
|
2002
|
+
] : []),
|
|
2003
|
+
`--- 下一步 Prompt ---`,
|
|
2004
|
+
nextPrompt,
|
|
2005
|
+
].join('\n');
|
|
2006
|
+
process.stdout.write(output);
|
|
1977
2007
|
process.exitCode = 10;
|
|
1978
2008
|
}
|
|
1979
2009
|
return;
|
|
@@ -5603,7 +5633,7 @@ async function buildConfirmCheckPrompt(iteration) {
|
|
|
5603
5633
|
prompt += `\`\`\`bash\n`;
|
|
5604
5634
|
prompt += `speccore analyze --prompt -I ${iteration} --pipeline --skip-clarify=false\n`;
|
|
5605
5635
|
prompt += `\`\`\`\n`;
|
|
5606
|
-
prompt += `> 重新进入 clarify-
|
|
5636
|
+
prompt += `> 重新进入 clarify-product 阶段,AI 会基于已有 draft 继续迭代。\n\n`;
|
|
5607
5637
|
prompt += `**选项 C:跳过确认,直接进入分析(风险自负)**\n`;
|
|
5608
5638
|
prompt += `\`\`\`bash\n`;
|
|
5609
5639
|
prompt += `speccore analyze --prompt -I ${iteration} --pipeline --skip-clarify\n`;
|