soloforge 1.3.0 → 1.3.2
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/README.md +15 -2
- package/dist/adapters/claude_code/claude_md.d.ts.map +1 -1
- package/dist/adapters/claude_code/claude_md.js +4 -0
- package/dist/adapters/claude_code/claude_md.js.map +1 -1
- package/dist/adapters/claude_code/tools.d.ts +36 -9
- package/dist/adapters/claude_code/tools.d.ts.map +1 -1
- package/dist/adapters/claude_code/tools.js +828 -19
- package/dist/adapters/claude_code/tools.js.map +1 -1
- package/dist/adapters/shared/workflow_template.d.ts +26 -0
- package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
- package/dist/adapters/shared/workflow_template.js +139 -40
- package/dist/adapters/shared/workflow_template.js.map +1 -1
- package/dist/bin/soloforge.d.ts.map +1 -1
- package/dist/bin/soloforge.js +220 -45
- package/dist/bin/soloforge.js.map +1 -1
- package/dist/engine/architecture_decision_workshop.d.ts +58 -0
- package/dist/engine/architecture_decision_workshop.d.ts.map +1 -0
- package/dist/engine/architecture_decision_workshop.js +118 -0
- package/dist/engine/architecture_decision_workshop.js.map +1 -0
- package/dist/engine/asset_manifest.d.ts +7 -1
- package/dist/engine/asset_manifest.d.ts.map +1 -1
- package/dist/engine/asset_manifest.js +36 -15
- package/dist/engine/asset_manifest.js.map +1 -1
- package/dist/engine/consumable_asset_registry.d.ts.map +1 -1
- package/dist/engine/consumable_asset_registry.js +90 -1
- package/dist/engine/consumable_asset_registry.js.map +1 -1
- package/dist/engine/consumption_trace_store.d.ts +8 -8
- package/dist/engine/consumption_trace_store.d.ts.map +1 -1
- package/dist/engine/consumption_trace_store.js +11 -7
- package/dist/engine/consumption_trace_store.js.map +1 -1
- package/dist/engine/decision_workshop.d.ts +160 -0
- package/dist/engine/decision_workshop.d.ts.map +1 -0
- package/dist/engine/decision_workshop.js +279 -0
- package/dist/engine/decision_workshop.js.map +1 -0
- package/dist/engine/design_artifact_pack.d.ts +44 -0
- package/dist/engine/design_artifact_pack.d.ts.map +1 -0
- package/dist/engine/design_artifact_pack.js +167 -0
- package/dist/engine/design_artifact_pack.js.map +1 -0
- package/dist/engine/dual_layer_mechanism_registry.d.ts.map +1 -1
- package/dist/engine/dual_layer_mechanism_registry.js +294 -0
- package/dist/engine/dual_layer_mechanism_registry.js.map +1 -1
- package/dist/engine/evidence_grounding_contract.d.ts +137 -0
- package/dist/engine/evidence_grounding_contract.d.ts.map +1 -0
- package/dist/engine/evidence_grounding_contract.js +410 -0
- package/dist/engine/evidence_grounding_contract.js.map +1 -0
- package/dist/engine/explicit_asset_registry.d.ts +30 -0
- package/dist/engine/explicit_asset_registry.d.ts.map +1 -0
- package/dist/engine/explicit_asset_registry.js +3508 -0
- package/dist/engine/explicit_asset_registry.js.map +1 -0
- package/dist/engine/implementation_roadmap_registry.d.ts +2 -2
- package/dist/engine/implementation_roadmap_registry.d.ts.map +1 -1
- package/dist/engine/implementation_roadmap_registry.js +163 -6
- package/dist/engine/implementation_roadmap_registry.js.map +1 -1
- package/dist/engine/instruction_contract.d.ts +8 -1
- package/dist/engine/instruction_contract.d.ts.map +1 -1
- package/dist/engine/instruction_contract.js +63 -1
- package/dist/engine/instruction_contract.js.map +1 -1
- package/dist/engine/intent_expander.d.ts.map +1 -1
- package/dist/engine/intent_expander.js +60 -2
- package/dist/engine/intent_expander.js.map +1 -1
- package/dist/engine/intent_router.d.ts +1 -1
- package/dist/engine/intent_router.d.ts.map +1 -1
- package/dist/engine/intent_router.js +2 -1
- package/dist/engine/intent_router.js.map +1 -1
- package/dist/engine/knowledge_injection_boundary.d.ts +3 -0
- package/dist/engine/knowledge_injection_boundary.d.ts.map +1 -1
- package/dist/engine/knowledge_injection_boundary.js +48 -5
- package/dist/engine/knowledge_injection_boundary.js.map +1 -1
- package/dist/engine/mechanism_contract_registry.d.ts +1 -1
- package/dist/engine/mechanism_contract_registry.d.ts.map +1 -1
- package/dist/engine/mechanism_contract_registry.js +138 -0
- package/dist/engine/mechanism_contract_registry.js.map +1 -1
- package/dist/engine/observed_consumption.d.ts +54 -0
- package/dist/engine/observed_consumption.d.ts.map +1 -0
- package/dist/engine/observed_consumption.js +377 -0
- package/dist/engine/observed_consumption.js.map +1 -0
- package/dist/engine/platform_context.d.ts.map +1 -1
- package/dist/engine/platform_context.js +6 -2
- package/dist/engine/platform_context.js.map +1 -1
- package/dist/engine/release_gate_scenario_registry.d.ts +16 -1
- package/dist/engine/release_gate_scenario_registry.d.ts.map +1 -1
- package/dist/engine/release_gate_scenario_registry.js +205 -2
- package/dist/engine/release_gate_scenario_registry.js.map +1 -1
- package/dist/engine/release_issue_scenario_registry.d.ts +64 -0
- package/dist/engine/release_issue_scenario_registry.d.ts.map +1 -0
- package/dist/engine/release_issue_scenario_registry.js +1349 -0
- package/dist/engine/release_issue_scenario_registry.js.map +1 -0
- package/dist/engine/release_readiness_gate.d.ts +8 -0
- package/dist/engine/release_readiness_gate.d.ts.map +1 -1
- package/dist/engine/release_readiness_gate.js +1144 -6
- package/dist/engine/release_readiness_gate.js.map +1 -1
- package/dist/engine/release_tool_harness.d.ts +71 -0
- package/dist/engine/release_tool_harness.d.ts.map +1 -0
- package/dist/engine/release_tool_harness.js +161 -0
- package/dist/engine/release_tool_harness.js.map +1 -0
- package/dist/engine/scaffolder.d.ts.map +1 -1
- package/dist/engine/scaffolder.js +144 -7
- package/dist/engine/scaffolder.js.map +1 -1
- package/dist/engine/standard_asset_contract.d.ts +75 -0
- package/dist/engine/standard_asset_contract.d.ts.map +1 -0
- package/dist/engine/standard_asset_contract.js +388 -0
- package/dist/engine/standard_asset_contract.js.map +1 -0
- package/dist/engine/standard_asset_coverage.d.ts +45 -0
- package/dist/engine/standard_asset_coverage.d.ts.map +1 -0
- package/dist/engine/standard_asset_coverage.js +220 -0
- package/dist/engine/standard_asset_coverage.js.map +1 -0
- package/dist/engine/task_context.d.ts +9 -2
- package/dist/engine/task_context.d.ts.map +1 -1
- package/dist/engine/task_context.js +49 -12
- package/dist/engine/task_context.js.map +1 -1
- package/dist/engine/template_asset_contract_registry.d.ts +162 -0
- package/dist/engine/template_asset_contract_registry.d.ts.map +1 -0
- package/dist/engine/template_asset_contract_registry.js +598 -0
- package/dist/engine/template_asset_contract_registry.js.map +1 -0
- package/dist/engine/template_asset_visibility.d.ts +109 -0
- package/dist/engine/template_asset_visibility.d.ts.map +1 -0
- package/dist/engine/template_asset_visibility.js +321 -0
- package/dist/engine/template_asset_visibility.js.map +1 -0
- package/dist/engine/template_init_sync.d.ts +68 -0
- package/dist/engine/template_init_sync.d.ts.map +1 -0
- package/dist/engine/template_init_sync.js +218 -0
- package/dist/engine/template_init_sync.js.map +1 -0
- package/dist/engine/template_manifest_io.d.ts +10 -0
- package/dist/engine/template_manifest_io.d.ts.map +1 -1
- package/dist/engine/template_manifest_io.js +63 -30
- package/dist/engine/template_manifest_io.js.map +1 -1
- package/dist/engine/template_mechanism_auditor.d.ts +3 -1
- package/dist/engine/template_mechanism_auditor.d.ts.map +1 -1
- package/dist/engine/template_mechanism_auditor.js +27 -24
- package/dist/engine/template_mechanism_auditor.js.map +1 -1
- package/dist/engine/tool_invocation_contract_registry.d.ts.map +1 -1
- package/dist/engine/tool_invocation_contract_registry.js +11 -1
- package/dist/engine/tool_invocation_contract_registry.js.map +1 -1
- package/dist/engine/verifier.d.ts.map +1 -1
- package/dist/engine/verifier.js +3 -40
- package/dist/engine/verifier.js.map +1 -1
- package/dist/engine/workflow_contract_registry.d.ts.map +1 -1
- package/dist/engine/workflow_contract_registry.js +4 -3
- package/dist/engine/workflow_contract_registry.js.map +1 -1
- package/dist/knowledge/index_manager.d.ts +20 -0
- package/dist/knowledge/index_manager.d.ts.map +1 -1
- package/dist/knowledge/index_manager.js +234 -3
- package/dist/knowledge/index_manager.js.map +1 -1
- package/dist/types.d.ts +47 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -4
- package/templates/knowledge/acceptance_templates/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243/346/250/241/347/211/210.md +74 -0
- package/templates/knowledge/acceptance_templates//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/346/226/207/346/241/243/346/250/241/347/211/210.md +59 -0
- package/templates/knowledge/acceptance_templates//346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/347/211/210.md +27 -7
- package/templates/knowledge/acceptance_templates//350/256/276/350/256/241/344/270/200/350/207/264/346/200/247/351/252/214/346/224/266/346/212/245/345/221/212/346/250/241/347/211/210.md +47 -0
- package/templates/knowledge/procedures//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/345/267/245/344/275/234/346/265/201.md +51 -0
- package/templates/knowledge/procedures//346/236/266/346/236/204/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +16 -7
- package/templates/knowledge/procedures//350/256/276/350/256/241/344/272/247/347/211/251/347/224/237/346/210/220/344/270/216/345/244/215/351/252/214/345/267/245/344/275/234/346/265/201.md +45 -0
- package/templates/knowledge/rules//345/267/245/344/275/234/346/265/201/346/250/241/346/235/277/345/214/205/350/247/204/345/210/231.md +10 -0
- package/templates/knowledge/rules//346/211/251/345/261/225/347/224/237/345/221/275/345/221/250/346/234/237/350/247/204/345/210/231.md +10 -0
- package/templates/knowledge/rules//346/226/275/345/267/245/346/214/207/344/273/244/345/245/221/347/272/246/350/247/204/345/210/231.md +33 -4
- package/templates/knowledge/rules//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md +49 -0
- package/templates/knowledge/rules//346/240/207/345/207/206/350/265/204/344/272/247/350/246/206/347/233/226/350/247/204/345/210/231.md +29 -0
- package/templates/knowledge/rules//346/250/241/346/235/277/350/265/204/344/272/247/345/217/257/350/247/201/346/200/247/350/247/204/345/210/231.md +27 -0
- package/templates/knowledge/rules//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246/350/247/204/345/210/231.md +62 -1
- package/templates/knowledge/rules//350/256/276/350/256/241/344/272/247/347/211/251/345/214/205/350/247/204/345/210/231.md +55 -0
- package/templates/knowledge/rules//350/257/201/346/215/256/351/251/261/345/212/250/344/270/216/345/217/215/345/271/273/350/247/211/350/247/204/345/210/231.md +75 -0
- package/templates/knowledge/rules//350/267/250/345/271/263/345/217/260/350/267/257/345/276/204/345/256/211/345/205/250/350/247/204/345/210/231.md +10 -0
- package/templates/knowledge/rules//351/200/232/347/224/250/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md +30 -0
- package/templates/knowledge/rules//351/252/214/346/224/266/346/250/241/346/235/277/350/276/223/345/207/272/345/245/221/347/272/246/350/247/204/345/210/231.md +50 -0
|
@@ -3,6 +3,9 @@ import fss from "node:fs";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import Handlebars from "handlebars";
|
|
5
5
|
import { debug } from "./logger.js";
|
|
6
|
+
import { getContractDecision } from "./template_asset_contract_registry.js";
|
|
7
|
+
import { recordConsumptionTrace } from "./consumption_trace_store.js";
|
|
8
|
+
import { getContractByPath } from "./template_asset_contract_registry.js";
|
|
6
9
|
/**
|
|
7
10
|
* 生成代码骨架 — 遍历模板集,编译渲染每个 .hbs 模板,映射到目标路径并检测冲突。
|
|
8
11
|
* @param input - 脚手架输入,包含用户意图、分类结果、项目配置和项目路径
|
|
@@ -18,6 +21,9 @@ export async function generateScaffold(input) {
|
|
|
18
21
|
// 渲染模板
|
|
19
22
|
const files = [];
|
|
20
23
|
const warnings = [];
|
|
24
|
+
if (templateSets.length === 0) {
|
|
25
|
+
warnings.push("当前技术栈没有适用的内置脚手架模板,请提供匹配技术栈的自定义模板合同");
|
|
26
|
+
}
|
|
21
27
|
for (const templateSet of templateSets) {
|
|
22
28
|
const templateDir = resolveTemplateDir(templateSet, config);
|
|
23
29
|
if (!fss.existsSync(templateDir)) {
|
|
@@ -29,13 +35,96 @@ export async function generateScaffold(input) {
|
|
|
29
35
|
for (const tplFile of templateFiles) {
|
|
30
36
|
if (!tplFile.endsWith(".hbs"))
|
|
31
37
|
continue;
|
|
38
|
+
// 合同门禁: 内置和自定义模板统一校验
|
|
39
|
+
const isBuiltin = templateDir.includes(path.join("templates", "scaffolds"));
|
|
40
|
+
if (isBuiltin) {
|
|
41
|
+
const relPath = `templates/scaffolds/${templateSet}/${tplFile}`;
|
|
42
|
+
const decision = getContractDecision(relPath);
|
|
43
|
+
if (decision.decision === "unregistered") {
|
|
44
|
+
recordConsumptionTrace({ consumer: "scaffold", asset_id: relPath, asset_path: relPath, contract_decision: "unregistered", fields_consumed: ["asset_path", "contract_decision", "template_vars"], matched_reason: "未注册脚手架模板", task_id_or_route: "generateScaffold", consumed_at: new Date().toISOString() });
|
|
45
|
+
warnings.push(`未注册脚手架模板: ${tplFile} — 必须先在 explicit_asset_registry 注册`);
|
|
46
|
+
debug("脚手架生成", `未注册模板被阻断: ${relPath}`);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (decision.decision === "denied" && decision.contract?.asset_visibility !== "scaffold_only") {
|
|
50
|
+
recordConsumptionTrace({ consumer: "scaffold", asset_id: decision.contract?.asset_id ?? relPath, asset_path: relPath, contract_decision: "denied", fields_consumed: ["asset_path", "contract_decision", "template_vars"], matched_reason: "模板可见性不符", task_id_or_route: "generateScaffold", consumed_at: new Date().toISOString() });
|
|
51
|
+
warnings.push(`模板可见性不符: ${tplFile} — 预期 scaffold_only`);
|
|
52
|
+
debug("脚手架生成", `模板可见性不符: ${relPath}`);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (decision.contract && !matchesBuiltinTechStack(decision.contract.applicable_tech_stack, config)) {
|
|
56
|
+
recordConsumptionTrace({ consumer: "scaffold", asset_id: decision.contract.asset_id, asset_path: relPath, contract_decision: "denied", fields_consumed: ["asset_path", "contract_decision", "applicable_tech_stack"], matched_reason: "内置脚手架技术栈不匹配", task_id_or_route: "generateScaffold", consumed_at: new Date().toISOString() });
|
|
57
|
+
warnings.push(`模板技术栈不匹配: ${tplFile} — 仅适用于 ${decision.contract.applicable_tech_stack.join(", ")}`);
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
recordConsumptionTrace({ consumer: "scaffold", asset_id: decision.contract?.asset_id ?? relPath, asset_path: relPath, contract_decision: "allowed", fields_consumed: ["asset_path", "contract_decision", "template_vars"], matched_reason: "内置模板通过合同门禁", task_id_or_route: "generateScaffold", consumed_at: new Date().toISOString() });
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// 自定义模板: 必须有显式合同,缺失则阻断
|
|
64
|
+
const customAssetId = `custom:${templateSet}/${tplFile}`;
|
|
65
|
+
const contract = config.scaffold?.contracts?.[templateSet];
|
|
66
|
+
if (!contract) {
|
|
67
|
+
recordConsumptionTrace({ consumer: "scaffold", asset_id: customAssetId, asset_path: customAssetId, contract_decision: "denied", fields_consumed: ["asset_path", "contract_decision", "template_vars"], matched_reason: `自定义模板集 "${templateSet}" 缺少显式合同: 在 config.scaffold.contracts["${templateSet}"] 中定义 required_template_vars, tech_stack, output_boundary, forbidden_patterns`, task_id_or_route: "generateScaffold", consumed_at: new Date().toISOString() });
|
|
68
|
+
warnings.push(`自定义模板集 "${templateSet}" 缺少显式合同 — 请在 config.scaffold.contracts["${templateSet}"] 中定义: required_template_vars, tech_stack, output_boundary`);
|
|
69
|
+
debug("脚手架生成", `自定义模板集缺少合同被阻断: ${templateSet}`);
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
const contractResult = validateCustomContract(customAssetId, tplFile, contract, config);
|
|
73
|
+
if (!contractResult.passed) {
|
|
74
|
+
recordConsumptionTrace({ consumer: "scaffold", asset_id: customAssetId, asset_path: customAssetId, contract_decision: "denied", fields_consumed: ["asset_path", "contract_decision", "template_vars"], matched_reason: contractResult.reason, task_id_or_route: "generateScaffold", consumed_at: new Date().toISOString() });
|
|
75
|
+
warnings.push(contractResult.reason);
|
|
76
|
+
debug("脚手架生成", `自定义模板被合同阻断: ${customAssetId} — ${contractResult.reason}`);
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
32
80
|
const templateContent = await fs.readFile(path.join(templateDir, tplFile), "utf-8");
|
|
81
|
+
// 自定义模板: 必需变量内容校验
|
|
82
|
+
if (!isBuiltin) {
|
|
83
|
+
const customAssetId = `custom:${templateSet}/${tplFile}`;
|
|
84
|
+
const contract = config.scaffold?.contracts?.[templateSet];
|
|
85
|
+
if (!contract)
|
|
86
|
+
continue; // 前面已阻断
|
|
87
|
+
const requiredVars = contract.required_template_vars ?? [];
|
|
88
|
+
// 检查模板内容是否引用了所有必需变量
|
|
89
|
+
const missing = requiredVars.filter(v => !templateContent.includes(`{{${v}}}`) && !templateContent.includes(v));
|
|
90
|
+
if (missing.length > 0) {
|
|
91
|
+
recordConsumptionTrace({ consumer: "scaffold", asset_id: customAssetId, asset_path: customAssetId, contract_decision: "denied", fields_consumed: ["asset_path", "contract_decision", "template_vars"], matched_reason: `模板缺少必需变量引用: ${missing.join(", ")}`, task_id_or_route: "generateScaffold", consumed_at: new Date().toISOString() });
|
|
92
|
+
warnings.push(`自定义模板 ${tplFile} 缺少必需变量引用: ${missing.join(", ")}`);
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
recordConsumptionTrace({ consumer: "scaffold", asset_id: customAssetId, asset_path: customAssetId, contract_decision: "allowed", fields_consumed: ["asset_path", "contract_decision", "template_vars"], matched_reason: "自定义模板通过合同校验", task_id_or_route: "generateScaffold", consumed_at: new Date().toISOString() });
|
|
96
|
+
}
|
|
33
97
|
const compiled = Handlebars.compile(templateContent, {
|
|
34
98
|
knownHelpersOnly: true,
|
|
35
99
|
knownHelpers: { if: true, each: true, with: true, unless: true, lookup: true, log: true },
|
|
36
100
|
});
|
|
37
101
|
const vars = buildTemplateVars(moduleName, config, templateSet, classification);
|
|
102
|
+
// 内置模板: 校验 required_template_vars 与模板真实引用变量一致
|
|
103
|
+
if (isBuiltin) {
|
|
104
|
+
const relPath = `templates/scaffolds/${templateSet}/${tplFile}`;
|
|
105
|
+
const contract = getContractByPath(relPath);
|
|
106
|
+
if (contract?.required_template_vars && contract.required_template_vars.length > 0) {
|
|
107
|
+
for (const reqVar of contract.required_template_vars) {
|
|
108
|
+
if (!(reqVar in vars) || !vars[reqVar]) {
|
|
109
|
+
warnings.push(`缺少合同要求的模板变量: ${reqVar} — 模板 ${tplFile} 无法渲染`);
|
|
110
|
+
debug("脚手架生成", `变量缺失: ${reqVar} 在 ${relPath}`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
38
115
|
const rendered = compiled(vars);
|
|
116
|
+
// 自定义模板: 输出边界校验
|
|
117
|
+
if (!isBuiltin) {
|
|
118
|
+
const contract = config.scaffold?.contracts?.[templateSet];
|
|
119
|
+
if (!contract)
|
|
120
|
+
continue;
|
|
121
|
+
const boundaryResult = validateOutputBoundary(tplFile, rendered, contract);
|
|
122
|
+
if (!boundaryResult.passed) {
|
|
123
|
+
warnings.push(boundaryResult.reason);
|
|
124
|
+
debug("脚手架生成", `输出边界违反: ${tplFile} — ${boundaryResult.reason}`);
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
39
128
|
// 计算目标路径
|
|
40
129
|
const outputName = tplFile.replace(".hbs", "").replaceAll("{{ModuleName}}", vars.ModuleName);
|
|
41
130
|
const targetPath = resolveTargetPath(outputName, vars, templateSet, config);
|
|
@@ -122,7 +211,7 @@ function pluralize(name) {
|
|
|
122
211
|
return name + "s";
|
|
123
212
|
}
|
|
124
213
|
// ── 模板集解析 ──
|
|
125
|
-
/** 根据项目技术栈解析适用的模板集 — 当前支持 spring-boot 和 react
|
|
214
|
+
/** 根据项目技术栈解析适用的模板集 — 当前支持 spring-boot 和 react。 */
|
|
126
215
|
function resolveTemplateSets(config) {
|
|
127
216
|
const sets = [];
|
|
128
217
|
const backendFramework = config.tech_stack.backend.framework.toLowerCase();
|
|
@@ -131,10 +220,19 @@ function resolveTemplateSets(config) {
|
|
|
131
220
|
sets.push("spring-boot");
|
|
132
221
|
if (frontendFramework.includes("react"))
|
|
133
222
|
sets.push("react");
|
|
134
|
-
if (sets.length === 0)
|
|
135
|
-
sets.push("spring-boot"); // 默认后端
|
|
136
223
|
return sets;
|
|
137
224
|
}
|
|
225
|
+
function matchesBuiltinTechStack(required, config) {
|
|
226
|
+
if (required.length === 0)
|
|
227
|
+
return true;
|
|
228
|
+
const actual = [
|
|
229
|
+
config.tech_stack.backend.lang,
|
|
230
|
+
config.tech_stack.backend.framework,
|
|
231
|
+
config.tech_stack.frontend.lang,
|
|
232
|
+
config.tech_stack.frontend.framework,
|
|
233
|
+
].filter(Boolean).map((value) => value.toLowerCase());
|
|
234
|
+
return required.some((value) => actual.some((actualValue) => actualValue.includes(value.toLowerCase())));
|
|
235
|
+
}
|
|
138
236
|
/**
|
|
139
237
|
* 解析模板目录路径 — 优先使用项目自定义模板目录,回退到内置模板目录。
|
|
140
238
|
* @param templateSet - 模板集名称(如 "spring-boot"、"react")
|
|
@@ -148,7 +246,12 @@ function resolveTemplateDir(templateSet, config) {
|
|
|
148
246
|
if (fss.existsSync(customDir))
|
|
149
247
|
return customDir;
|
|
150
248
|
}
|
|
151
|
-
|
|
249
|
+
// 从 npm 包路径解析内置脚手架模板,使用 import.meta.dirname
|
|
250
|
+
const builtinDir = path.resolve(import.meta.dirname, "..", "..", "templates", "scaffolds", templateSet);
|
|
251
|
+
if (fss.existsSync(builtinDir))
|
|
252
|
+
return builtinDir;
|
|
253
|
+
// 最终回退仍指向包内路径
|
|
254
|
+
return builtinDir;
|
|
152
255
|
}
|
|
153
256
|
/**
|
|
154
257
|
* 构建 Handlebars 模板变量 — 包括模块名各种命名风格(Pascal/camel/snake/SCREAMING_SNAKE)和项目元信息。
|
|
@@ -237,11 +340,45 @@ function resolveTargetPath(outputName, vars, templateSet, config) {
|
|
|
237
340
|
}
|
|
238
341
|
return outputName;
|
|
239
342
|
}
|
|
343
|
+
/** 校验自定义模板的项目级合同(tech_stack + 必需变量声明阶段) */
|
|
344
|
+
function validateCustomContract(assetId, tplFile, contract, config) {
|
|
345
|
+
// tech_stack 校验
|
|
346
|
+
if (contract.tech_stack && contract.tech_stack.length > 0) {
|
|
347
|
+
const backend = config.tech_stack.backend.framework.toLowerCase();
|
|
348
|
+
const frontend = config.tech_stack.frontend.framework.toLowerCase();
|
|
349
|
+
const matched = contract.tech_stack.some(ts => backend.includes(ts.toLowerCase()) || frontend.includes(ts.toLowerCase()));
|
|
350
|
+
if (!matched) {
|
|
351
|
+
return { passed: false, reason: `自定义模板 ${tplFile} 要求技术栈 [${contract.tech_stack.join(", ")}],与当前项目 (${backend}/${frontend}) 不匹配` };
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
return { passed: true, reason: "" };
|
|
355
|
+
}
|
|
356
|
+
/** 校验渲染后输出的边界约束 */
|
|
357
|
+
function validateOutputBoundary(tplFile, rendered, contract) {
|
|
358
|
+
const boundary = contract.output_boundary;
|
|
359
|
+
if (!boundary)
|
|
360
|
+
return { passed: true, reason: "" };
|
|
361
|
+
// 文件大小校验
|
|
362
|
+
if (boundary.max_file_size && rendered.length > boundary.max_file_size) {
|
|
363
|
+
return { passed: false, reason: `自定义模板 ${tplFile} 输出超过最大限制: ${rendered.length} > ${boundary.max_file_size} 字节` };
|
|
364
|
+
}
|
|
365
|
+
// 禁止内容模式校验
|
|
366
|
+
if (boundary.forbidden_patterns) {
|
|
367
|
+
for (const pattern of boundary.forbidden_patterns) {
|
|
368
|
+
try {
|
|
369
|
+
if (new RegExp(pattern).test(rendered)) {
|
|
370
|
+
return { passed: false, reason: `自定义模板 ${tplFile} 输出包含禁止内容: /${pattern}/` };
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
catch {
|
|
374
|
+
// 无效正则视为不匹配
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
return { passed: true, reason: "" };
|
|
379
|
+
}
|
|
240
380
|
/**
|
|
241
381
|
* 生成文件中文描述 — 根据输出文件名后缀和前缀匹配预定义描述表。
|
|
242
|
-
* @param outputName - 输出文件名
|
|
243
|
-
* @param moduleName - 模块名
|
|
244
|
-
* @returns 文件中文描述
|
|
245
382
|
*/
|
|
246
383
|
function describeFile(outputName, moduleName) {
|
|
247
384
|
// 文件后缀 → 中文描述映射表
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffolder.js","sourceRoot":"","sources":["../../src/engine/scaffolder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scaffolder.js","sourceRoot":"","sources":["../../src/engine/scaffolder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 标准资产契约 — 为每类标准资产定义机器可读契约字段。
|
|
3
|
+
*
|
|
4
|
+
* 覆盖模板、规则、流程、检查清单、审查规则、patterns、脚手架
|
|
5
|
+
* 和 adapter workflow 的契约 schema、验证和修复闭环。
|
|
6
|
+
*/
|
|
7
|
+
export type AssetContractKind = "acceptance_template" | "rule" | "procedure" | "checklist" | "review_rule" | "pattern" | "scaffold" | "adapter_workflow";
|
|
8
|
+
export type ContractLevel = "required" | "supporting" | "advisory";
|
|
9
|
+
export interface StandardAssetContract {
|
|
10
|
+
contract_version: string;
|
|
11
|
+
asset_id: string;
|
|
12
|
+
asset_kind: AssetContractKind;
|
|
13
|
+
owner_mechanism_id: string;
|
|
14
|
+
contract_level: ContractLevel;
|
|
15
|
+
applicable_routes: string[];
|
|
16
|
+
applicable_task_types: string[];
|
|
17
|
+
applicable_output_paths: string[];
|
|
18
|
+
applicable_tech_stacks: string[];
|
|
19
|
+
trigger_conditions: string[];
|
|
20
|
+
required_inputs: string[];
|
|
21
|
+
required_outputs: string[];
|
|
22
|
+
failure_severity: "hard_fail" | "advisory";
|
|
23
|
+
verification_strategy: string[];
|
|
24
|
+
/** per-kind 额外字段存储 */
|
|
25
|
+
kind_specific: Record<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
export interface ContractVerificationResult {
|
|
28
|
+
passed: boolean;
|
|
29
|
+
contract: StandardAssetContract;
|
|
30
|
+
missing_fields: string[];
|
|
31
|
+
messages: string[];
|
|
32
|
+
}
|
|
33
|
+
export interface RepairReverifyDirective {
|
|
34
|
+
phase_directive: "repair_reverify";
|
|
35
|
+
asset_id: string;
|
|
36
|
+
contract_id: string;
|
|
37
|
+
missing_fields: string[];
|
|
38
|
+
messages: string[];
|
|
39
|
+
repair_suggestion: string;
|
|
40
|
+
}
|
|
41
|
+
export declare const P0_TEMPLATE_CONTRACTS: StandardAssetContract[];
|
|
42
|
+
export declare function getStandardAssetContractSchema(kind: AssetContractKind): string[];
|
|
43
|
+
export declare function verifyStandardAssetContract(contract: StandardAssetContract): ContractVerificationResult;
|
|
44
|
+
/**
|
|
45
|
+
* 模板匹配 — 综合输出产物类型、工作流意图、路由决策、文件路径和用户要求,
|
|
46
|
+
* 不只用文件名判断。
|
|
47
|
+
*/
|
|
48
|
+
export declare function matchTemplateContract(params: {
|
|
49
|
+
output_artifact_kind?: string;
|
|
50
|
+
workflow_intent?: string;
|
|
51
|
+
route_decision?: string;
|
|
52
|
+
file_path?: string;
|
|
53
|
+
user_requirement?: string;
|
|
54
|
+
}): StandardAssetContract | null;
|
|
55
|
+
/**
|
|
56
|
+
* 验证真实产物文件是否满足契约要求。
|
|
57
|
+
*/
|
|
58
|
+
export declare function verifyOutputAgainstContract(contract: StandardAssetContract, content: string, rootDir: string): ContractVerificationResult;
|
|
59
|
+
/**
|
|
60
|
+
* 生成修复重验指令。
|
|
61
|
+
*/
|
|
62
|
+
export declare function createRepairReverifyDirective(contract: StandardAssetContract, result: ContractVerificationResult): RepairReverifyDirective;
|
|
63
|
+
/**
|
|
64
|
+
* 检查是否为低风险任务(不应触发模板契约)。
|
|
65
|
+
*/
|
|
66
|
+
export declare function isLowRiskTask(params: {
|
|
67
|
+
route_decision?: string;
|
|
68
|
+
workflow_intent?: string;
|
|
69
|
+
changed_files?: string[];
|
|
70
|
+
}): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* 检查草稿标记 — 草稿文档不应进入编码消费。
|
|
73
|
+
*/
|
|
74
|
+
export declare function isDraftDocument(content: string): boolean;
|
|
75
|
+
//# sourceMappingURL=standard_asset_contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard_asset_contract.d.ts","sourceRoot":"","sources":["../../src/engine/standard_asset_contract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,MAAM,iBAAiB,GACzB,qBAAqB,GACrB,MAAM,GACN,WAAW,GACX,WAAW,GACX,aAAa,GACb,SAAS,GACT,UAAU,GACV,kBAAkB,CAAC;AAEvB,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;AAEnE,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,aAAa,CAAC;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,WAAW,GAAG,UAAU,CAAC;IAC3C,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,sBAAsB;IACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,eAAe,EAAE,iBAAiB,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAqCD,eAAO,MAAM,qBAAqB,EAAE,qBAAqB,EAyHxD,CAAC;AAIF,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAEhF;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,qBAAqB,GAC9B,0BAA0B,CA4B5B;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,qBAAqB,GAAG,IAAI,CAoC/B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,0BAA0B,CA4G5B;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,qBAAqB,EAC/B,MAAM,EAAE,0BAA0B,GACjC,uBAAuB,CAazB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,GAAG,OAAO,CAYV;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAUxD"}
|