soloforge 1.2.17 → 1.2.19
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/adapters/claude_code/pre_prompt_contract.js +2 -2
- package/dist/adapters/claude_code/pre_prompt_contract.js.map +1 -1
- package/dist/adapters/claude_code/server.d.ts.map +1 -1
- package/dist/adapters/claude_code/server.js +4 -2
- package/dist/adapters/claude_code/server.js.map +1 -1
- package/dist/adapters/claude_code/tools.d.ts +2 -2
- package/dist/adapters/claude_code/tools.d.ts.map +1 -1
- package/dist/adapters/claude_code/tools.js +189 -170
- package/dist/adapters/claude_code/tools.js.map +1 -1
- package/dist/adapters/codex/codex_config.d.ts.map +1 -1
- package/dist/adapters/codex/codex_config.js +16 -4
- package/dist/adapters/codex/codex_config.js.map +1 -1
- package/dist/adapters/trae/trae_config.d.ts +2 -1
- package/dist/adapters/trae/trae_config.d.ts.map +1 -1
- package/dist/adapters/trae/trae_config.js +4 -3
- package/dist/adapters/trae/trae_config.js.map +1 -1
- package/dist/bin/config_commands.d.ts +1 -1
- package/dist/bin/config_commands.js +4 -4
- package/dist/bin/config_commands.js.map +1 -1
- package/dist/bin/soloforge.d.ts.map +1 -1
- package/dist/bin/soloforge.js +85 -110
- package/dist/bin/soloforge.js.map +1 -1
- package/dist/engine/artifact_contract_registry.d.ts.map +1 -1
- package/dist/engine/artifact_contract_registry.js.map +1 -1
- package/dist/engine/audit_pool.d.ts.map +1 -1
- package/dist/engine/audit_pool.js +0 -1
- package/dist/engine/audit_pool.js.map +1 -1
- package/dist/engine/audit_sampler.d.ts.map +1 -1
- package/dist/engine/audit_sampler.js +0 -4
- package/dist/engine/audit_sampler.js.map +1 -1
- package/dist/engine/batch1_manifest.d.ts.map +1 -1
- package/dist/engine/batch1_manifest.js +0 -7
- package/dist/engine/batch1_manifest.js.map +1 -1
- package/dist/engine/batch1_scenario_registry.js +7 -7
- package/dist/engine/batch1_scenario_registry.js.map +1 -1
- package/dist/engine/batch1_scenario_runners.js +32 -32
- package/dist/engine/batch1_scenario_runners.js.map +1 -1
- package/dist/engine/capability_action_advisor.js +16 -16
- package/dist/engine/capability_action_advisor.js.map +1 -1
- package/dist/engine/classifier.d.ts.map +1 -1
- package/dist/engine/classifier.js +4 -3
- package/dist/engine/classifier.js.map +1 -1
- package/dist/engine/code_reviewer.d.ts.map +1 -1
- package/dist/engine/code_reviewer.js +10 -9
- package/dist/engine/code_reviewer.js.map +1 -1
- package/dist/engine/command_execution_contract.js +14 -14
- package/dist/engine/command_execution_contract.js.map +1 -1
- package/dist/engine/debug_log.d.ts +2 -0
- package/dist/engine/debug_log.d.ts.map +1 -0
- package/dist/engine/debug_log.js +7 -0
- package/dist/engine/debug_log.js.map +1 -0
- package/dist/engine/developer_sovereignty.js +15 -15
- package/dist/engine/developer_sovereignty.js.map +1 -1
- package/dist/engine/diff_ownership_store.d.ts.map +1 -1
- package/dist/engine/diff_ownership_store.js +1 -2
- package/dist/engine/diff_ownership_store.js.map +1 -1
- package/dist/engine/dual_layer_mechanism_registry.js +1 -1
- package/dist/engine/dual_layer_mechanism_registry.js.map +1 -1
- package/dist/engine/evolver.d.ts.map +1 -1
- package/dist/engine/evolver.js +11 -10
- package/dist/engine/evolver.js.map +1 -1
- package/dist/engine/governance_report.js +9 -9
- package/dist/engine/governance_report.js.map +1 -1
- package/dist/engine/implementation_roadmap_registry.js +5 -5
- package/dist/engine/implementation_roadmap_registry.js.map +1 -1
- package/dist/engine/input_material_extractor.js +3 -3
- package/dist/engine/input_material_extractor.js.map +1 -1
- package/dist/engine/intent_expander.d.ts.map +1 -1
- package/dist/engine/intent_expander.js +15 -14
- package/dist/engine/intent_expander.js.map +1 -1
- package/dist/engine/intent_router.d.ts.map +1 -1
- package/dist/engine/intent_router.js +17 -16
- package/dist/engine/intent_router.js.map +1 -1
- package/dist/engine/java_quality_guard.js +10 -10
- package/dist/engine/java_quality_guard.js.map +1 -1
- package/dist/engine/knowledge_injection_boundary.d.ts +1 -1
- package/dist/engine/knowledge_injection_boundary.d.ts.map +1 -1
- package/dist/engine/knowledge_injection_boundary.js +61 -60
- package/dist/engine/knowledge_injection_boundary.js.map +1 -1
- package/dist/engine/main_path_integration_contract.js +16 -16
- package/dist/engine/main_path_integration_contract.js.map +1 -1
- package/dist/engine/mechanism_contract_registry.d.ts +3 -4
- package/dist/engine/mechanism_contract_registry.d.ts.map +1 -1
- package/dist/engine/mechanism_contract_registry.js +23 -24
- package/dist/engine/mechanism_contract_registry.js.map +1 -1
- package/dist/engine/onboarding.js +20 -20
- package/dist/engine/onboarding.js.map +1 -1
- package/dist/engine/privacy_secret_contract.d.ts.map +1 -1
- package/dist/engine/privacy_secret_contract.js +49 -48
- package/dist/engine/privacy_secret_contract.js.map +1 -1
- package/dist/engine/regression_matrix.js +21 -21
- package/dist/engine/regression_matrix.js.map +1 -1
- package/dist/engine/route_decision_contract_verifier.js +24 -24
- package/dist/engine/route_decision_contract_verifier.js.map +1 -1
- package/dist/engine/scope_controller.d.ts.map +1 -1
- package/dist/engine/scope_controller.js +4 -3
- package/dist/engine/scope_controller.js.map +1 -1
- package/dist/engine/scope_lease.d.ts.map +1 -1
- package/dist/engine/scope_lease.js +0 -1
- package/dist/engine/scope_lease.js.map +1 -1
- package/dist/engine/task_context.js +3 -3
- package/dist/engine/task_context.js.map +1 -1
- package/dist/engine/test_generator.js +8 -8
- package/dist/engine/test_generator.js.map +1 -1
- package/dist/engine/tool_invocation_contract_registry.js +18 -18
- package/dist/engine/tool_invocation_contract_registry.js.map +1 -1
- package/dist/engine/traceability.js +6 -6
- package/dist/engine/traceability.js.map +1 -1
- package/dist/engine/user_feedback_contract.js +9 -9
- package/dist/engine/user_feedback_contract.js.map +1 -1
- package/dist/engine/verifier.d.ts.map +1 -1
- package/dist/engine/verifier.js +9 -8
- package/dist/engine/verifier.js.map +1 -1
- package/dist/engine/zero_config_init.d.ts.map +1 -1
- package/dist/engine/zero_config_init.js +84 -84
- package/dist/engine/zero_config_init.js.map +1 -1
- package/dist/git/operations.js +1 -1
- package/dist/git/operations.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -11
- package/dist/index.js.map +1 -1
- package/dist/knowledge/index_manager.d.ts.map +1 -1
- package/dist/knowledge/index_manager.js +18 -17
- package/dist/knowledge/index_manager.js.map +1 -1
- package/dist/knowledge/loader.js +2 -2
- package/dist/knowledge/loader.js.map +1 -1
- package/package.json +4 -2
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* 为每次 expand 生成知识注入报告,说明哪些知识被注入、
|
|
6
6
|
* 哪些只能 advisory、哪些被排除以及排除原因。
|
|
7
7
|
*/
|
|
8
|
+
import { debugLog } from "./debug_log.js";
|
|
8
9
|
import { listBuiltinConsumableAssets, } from "./consumable_asset_registry.js";
|
|
9
10
|
// ── 辅助函数 ──
|
|
10
11
|
const INDEXABLE_STATUSES = new Set(["active", "pending_review"]);
|
|
@@ -41,10 +42,10 @@ function entryToRef(entry, tier, consumptionMode, warning) {
|
|
|
41
42
|
}
|
|
42
43
|
function findAssetForEntry(entry, assets) {
|
|
43
44
|
return assets.find((a) => {
|
|
44
|
-
//
|
|
45
|
+
// 精确路径匹配
|
|
45
46
|
if (a.path === entry.file_path)
|
|
46
47
|
return true;
|
|
47
|
-
//
|
|
48
|
+
// acceptance_templates 的模板名匹配(条目名称与资产文件名去除扩展后匹配)
|
|
48
49
|
if (entry.type === "acceptance_template" && entry.name === a.path.split("/").pop()?.replace(".md", ""))
|
|
49
50
|
return true;
|
|
50
51
|
return false;
|
|
@@ -60,16 +61,16 @@ function isRouteRequired(entry, routeDecision) {
|
|
|
60
61
|
const oa = routeDecision.output_artifact;
|
|
61
62
|
if (!oa)
|
|
62
63
|
return false;
|
|
63
|
-
//
|
|
64
|
+
// 匹配 pipeline_hint 的 pipeline_procedure 条目为 route_required
|
|
64
65
|
if (entry.type === "pipeline_procedure" && routeDecision.pipeline_hint) {
|
|
65
66
|
return entry.when.includes(routeDecision.pipeline_hint.split(":")[0]) ||
|
|
66
67
|
entry.name.includes(routeDecision.pipeline_hint.split(":")[0]);
|
|
67
68
|
}
|
|
68
|
-
//
|
|
69
|
+
// 匹配 output_artifact.template 的 acceptance_template 条目为 route_required
|
|
69
70
|
if (entry.type === "acceptance_template" && oa.template) {
|
|
70
71
|
return entry.name === oa.template || entry.file_path.includes(oa.template);
|
|
71
72
|
}
|
|
72
|
-
//
|
|
73
|
+
// 匹配 output_artifact.kind 触发条件的条目为 route_required
|
|
73
74
|
const trigger = `output_artifact.kind=${oa.kind}`;
|
|
74
75
|
if (entry.when.includes(trigger) || entry.name.includes(oa.kind))
|
|
75
76
|
return true;
|
|
@@ -95,7 +96,7 @@ function assignPriorityTier(entry, routeDecision, assets) {
|
|
|
95
96
|
const isProject = isProjectEntry(entry);
|
|
96
97
|
const isCore = isCoreEntry(entry);
|
|
97
98
|
const cm = getConsumptionMode(entry, assets);
|
|
98
|
-
//
|
|
99
|
+
// 产品约束条目:仅限非项目级别的 domain/product_profile 条目
|
|
99
100
|
if (!isProject && (entry.type === "domain" || entry.file_path.includes("product_profiles"))) {
|
|
100
101
|
return "product_constraints";
|
|
101
102
|
}
|
|
@@ -112,7 +113,7 @@ function assignPriorityTier(entry, routeDecision, assets) {
|
|
|
112
113
|
// ── 门 1: Indexable Filter ──
|
|
113
114
|
/** 门1: 过滤可索引的知识条目,排除非 active/pending_review 状态 */
|
|
114
115
|
export function filterIndexable(entries) {
|
|
115
|
-
|
|
116
|
+
debugLog("知识注入边界: 门1-可索引过滤开始, 条目数=" + entries.length);
|
|
116
117
|
const passed = [];
|
|
117
118
|
const excluded = [];
|
|
118
119
|
for (const entry of entries) {
|
|
@@ -123,82 +124,82 @@ export function filterIndexable(entries) {
|
|
|
123
124
|
const reason = entry.status === "deprecated"
|
|
124
125
|
? "deprecated"
|
|
125
126
|
: "status_blocked";
|
|
126
|
-
|
|
127
|
+
debugLog("知识注入边界: 门1-排除条目, id=" + entry.id + ", name=" + entry.name + ", reason=" + reason);
|
|
127
128
|
excluded.push({ id: entry.id, name: entry.name, reason });
|
|
128
129
|
}
|
|
129
130
|
}
|
|
130
|
-
|
|
131
|
+
debugLog("知识注入边界: 门1-可索引过滤完成, 通过=" + passed.length + ", 排除=" + excluded.length);
|
|
131
132
|
return { passed, excluded };
|
|
132
133
|
}
|
|
133
134
|
// ── 门 2: Injectable Filter ──
|
|
134
135
|
/** 门2: 过滤可注入的知识条目,按消费模式、作用域、产品、路由等条件筛选 */
|
|
135
136
|
export function filterInjectable(entries, routeDecision, scopeFilters, assets, productFilters = []) {
|
|
136
|
-
|
|
137
|
+
debugLog("知识注入边界: 门2-可注入过滤开始, 条目数=" + entries.length + ", scope过滤=" + scopeFilters.length + ", product过滤=" + productFilters.length);
|
|
137
138
|
const injectable = [];
|
|
138
139
|
const advisory = [];
|
|
139
140
|
const excluded = [];
|
|
140
141
|
const requestScopes = scopeFilters;
|
|
141
142
|
const requestProducts = productFilters;
|
|
142
143
|
for (const entry of entries) {
|
|
143
|
-
//
|
|
144
|
+
// 状态门禁
|
|
144
145
|
if (entry.status !== "active" && entry.status !== "pending_review") {
|
|
145
|
-
//
|
|
146
|
-
|
|
146
|
+
// 已在门1过滤,但做防御性检查
|
|
147
|
+
debugLog("知识注入边界: 门2-状态阻止, id=" + entry.id + ", status=" + entry.status);
|
|
147
148
|
excluded.push({ id: entry.id, name: entry.name, reason: "status_blocked" });
|
|
148
149
|
continue;
|
|
149
150
|
}
|
|
150
|
-
//
|
|
151
|
+
// 消费模式门禁
|
|
151
152
|
const cm = getConsumptionMode(entry, assets);
|
|
152
153
|
if (BLOCKED_CONSUMPTION_MODES.has(cm)) {
|
|
153
154
|
const cmReason = cm === "deprecated" ? "deprecated" : "manual_reference_only";
|
|
154
|
-
|
|
155
|
+
debugLog("知识注入边界: 门2-消费模式阻止, id=" + entry.id + ", mode=" + cm);
|
|
155
156
|
excluded.push({ id: entry.id, name: entry.name, reason: cmReason });
|
|
156
157
|
continue;
|
|
157
158
|
}
|
|
158
|
-
//
|
|
159
|
+
// 范围门禁
|
|
159
160
|
if (requestScopes.length > 0 && !scopeMatches(entry.scope, requestScopes)) {
|
|
160
|
-
|
|
161
|
+
debugLog("知识注入边界: 门2-作用域不匹配, id=" + entry.id + ", entry_scope=" + JSON.stringify(entry.scope) + ", request_scope=" + JSON.stringify(requestScopes));
|
|
161
162
|
excluded.push({ id: entry.id, name: entry.name, reason: "scope_mismatch" });
|
|
162
163
|
continue;
|
|
163
164
|
}
|
|
164
|
-
//
|
|
165
|
+
// 产品门禁
|
|
165
166
|
if (requestProducts.length > 0 && !productsMatch(entry.products, requestProducts)) {
|
|
166
|
-
|
|
167
|
+
debugLog("知识注入边界: 门2-产品不匹配, id=" + entry.id + ", entry_products=" + JSON.stringify(entry.products) + ", request_products=" + JSON.stringify(requestProducts));
|
|
167
168
|
excluded.push({ id: entry.id, name: entry.name, reason: "product_mismatch" });
|
|
168
169
|
continue;
|
|
169
170
|
}
|
|
170
|
-
//
|
|
171
|
+
// 路由门禁 — 仅拒绝明显不匹配的条目
|
|
171
172
|
if (routeDecision && isRouteMismatch(entry, routeDecision)) {
|
|
172
|
-
|
|
173
|
+
debugLog("知识注入边界: 门2-路由不匹配, id=" + entry.id + ", type=" + entry.type);
|
|
173
174
|
excluded.push({ id: entry.id, name: entry.name, reason: "route_mismatch" });
|
|
174
175
|
continue;
|
|
175
176
|
}
|
|
176
|
-
// pending_review →
|
|
177
|
+
// pending_review → 仅为建议
|
|
177
178
|
if (entry.status === "pending_review") {
|
|
178
|
-
|
|
179
|
+
debugLog("知识注入边界: 门2-待审条目降级为advisory, id=" + entry.id);
|
|
179
180
|
advisory.push(entry);
|
|
180
181
|
continue;
|
|
181
182
|
}
|
|
182
183
|
injectable.push(entry);
|
|
183
184
|
}
|
|
184
|
-
|
|
185
|
+
debugLog("知识注入边界: 门2-可注入过滤完成, 注入=" + injectable.length + ", advisory=" + advisory.length + ", 排除=" + excluded.length);
|
|
185
186
|
return { injectable, advisory, excluded };
|
|
186
187
|
}
|
|
187
|
-
// execution_shape →
|
|
188
|
+
// execution_shape → 允许的知识类型映射
|
|
188
189
|
const EXECUTION_SHAPE_ALLOWED_TYPES = {
|
|
189
190
|
code_execution: new Set(["pattern", "procedure", "domain", "governance_rule", "pipeline_procedure"]),
|
|
190
191
|
single_artifact: new Set(["acceptance_template", "pipeline_procedure", "pattern"]),
|
|
191
192
|
read_only_analysis: new Set(["domain", "review_rule", "pattern", "governance_rule"]),
|
|
192
193
|
verification_only: new Set(["review_rule", "governance_rule"]),
|
|
193
194
|
multi_stage_plan: new Set(["pipeline_procedure", "pattern", "acceptance_template", "domain"]),
|
|
194
|
-
// "none"
|
|
195
|
+
// "none" 无限制
|
|
195
196
|
};
|
|
196
197
|
function isRouteMismatch(entry, routeDecision) {
|
|
197
|
-
//
|
|
198
|
+
// 门禁:review_rule 仅限 review 路由
|
|
198
199
|
if (entry.type === "review_rule" && routeDecision.route !== "review") {
|
|
199
200
|
return true;
|
|
200
201
|
}
|
|
201
|
-
//
|
|
202
|
+
// 门禁:带有显式触发条件的 acceptance_template 必须匹配 output_artifact.kind
|
|
202
203
|
if (entry.type === "acceptance_template") {
|
|
203
204
|
const oa = routeDecision.output_artifact;
|
|
204
205
|
if (oa && oa.kind) {
|
|
@@ -210,7 +211,7 @@ function isRouteMismatch(entry, routeDecision) {
|
|
|
210
211
|
}
|
|
211
212
|
}
|
|
212
213
|
}
|
|
213
|
-
//
|
|
214
|
+
// 门禁:execution_shape 必须允许此知识类型
|
|
214
215
|
const shape = routeDecision.execution_shape;
|
|
215
216
|
if (shape && shape !== "none") {
|
|
216
217
|
const allowed = EXECUTION_SHAPE_ALLOWED_TYPES[shape];
|
|
@@ -223,10 +224,10 @@ function isRouteMismatch(entry, routeDecision) {
|
|
|
223
224
|
// ── 门 3: Priority Sort ──
|
|
224
225
|
/** 门3: 按优先级排序知识条目,检测冲突,在预算内裁剪 */
|
|
225
226
|
export function sortByPriority(entries, routeDecision, assets, budget) {
|
|
226
|
-
|
|
227
|
+
debugLog("知识注入边界: 门3-优先级排序开始, 条目数=" + entries.length + ", 预算=" + budget);
|
|
227
228
|
const conflicts = [];
|
|
228
229
|
const dropped = [];
|
|
229
|
-
//
|
|
230
|
+
// 为每个条目分配优先级层级
|
|
230
231
|
const withPriority = entries.map((e) => ({
|
|
231
232
|
entry: e,
|
|
232
233
|
tier: assignPriorityTier(e, routeDecision, assets),
|
|
@@ -242,10 +243,10 @@ export function sortByPriority(entries, routeDecision, assets, budget) {
|
|
|
242
243
|
const bc = isCoreEntry(b.entry) ? 0 : 1;
|
|
243
244
|
if (ac !== bc)
|
|
244
245
|
return ac - bc;
|
|
245
|
-
//
|
|
246
|
+
// 同 core/normal 层级内,置信度高的优先
|
|
246
247
|
return b.entry.confidence - a.entry.confidence;
|
|
247
248
|
});
|
|
248
|
-
//
|
|
249
|
+
// 检测同类型内 core 与 normal 的冲突
|
|
249
250
|
const seenByType = new Map();
|
|
250
251
|
for (const item of withPriority) {
|
|
251
252
|
const typeKey = item.entry.type;
|
|
@@ -260,8 +261,8 @@ export function sortByPriority(entries, routeDecision, assets, budget) {
|
|
|
260
261
|
}
|
|
261
262
|
seenByType.set(typeKey, item);
|
|
262
263
|
}
|
|
263
|
-
//
|
|
264
|
-
//
|
|
264
|
+
// 检测产品配置与项目配置的冲突
|
|
265
|
+
// 产品配置不得覆盖项目级条目 — 仅作补充
|
|
265
266
|
const projectEntries = withPriority.filter((w) => w.tier === "project_core_active" || w.tier === "project_normal_active");
|
|
266
267
|
const productEntries = withPriority.filter((w) => w.tier === "product_constraints");
|
|
267
268
|
for (const prod of productEntries) {
|
|
@@ -275,31 +276,31 @@ export function sortByPriority(entries, routeDecision, assets, budget) {
|
|
|
275
276
|
});
|
|
276
277
|
}
|
|
277
278
|
}
|
|
278
|
-
//
|
|
279
|
+
// 应用预算裁剪
|
|
279
280
|
const sorted = withPriority.slice(0, budget).map((w) => w.entry);
|
|
280
281
|
for (const item of withPriority.slice(budget)) {
|
|
281
|
-
|
|
282
|
+
debugLog("知识注入边界: 门3-预算裁剪, id=" + item.entry.id + ", tier=" + item.tier);
|
|
282
283
|
dropped.push({
|
|
283
284
|
id: item.entry.id,
|
|
284
285
|
name: item.entry.name,
|
|
285
286
|
reason: "budget_limit",
|
|
286
287
|
});
|
|
287
288
|
}
|
|
288
|
-
|
|
289
|
+
debugLog("知识注入边界: 门3-优先级排序完成, 排序=" + sorted.length + ", 冲突=" + conflicts.length + ", 裁剪=" + dropped.length);
|
|
289
290
|
return { sorted, conflicts, dropped };
|
|
290
291
|
}
|
|
291
292
|
// ── 主入口 ──
|
|
292
293
|
const DEFAULT_BUDGET = 5;
|
|
293
294
|
/** 知识注入边界主入口,依次执行三道门并生成注入报告 */
|
|
294
295
|
export function enforceKnowledgeInjectionBoundary(entries, routeDecision, scopeFilters, assets, budget = DEFAULT_BUDGET, productFilters = []) {
|
|
295
|
-
|
|
296
|
+
debugLog("知识注入边界: 主入口开始执行, 总条目数=" + entries.length + ", 预算=" + budget + ", scope过滤=" + scopeFilters.length + ", product过滤=" + productFilters.length);
|
|
296
297
|
const allAssets = assets ?? listBuiltinConsumableAssets();
|
|
297
298
|
const allExcluded = [];
|
|
298
299
|
// 门 1: Indexable
|
|
299
300
|
const gate1 = filterIndexable(entries);
|
|
300
301
|
allExcluded.push(...gate1.excluded);
|
|
301
|
-
|
|
302
|
-
//
|
|
302
|
+
debugLog("知识注入边界: 门1结果, 通过=" + gate1.passed.length + ", 排除=" + gate1.excluded.length);
|
|
303
|
+
// 门1通过 → 标记为已索引
|
|
303
304
|
const indexed = gate1.passed.map((e) => {
|
|
304
305
|
const cm = getConsumptionMode(e, allAssets);
|
|
305
306
|
const tier = assignPriorityTier(e, routeDecision, allAssets);
|
|
@@ -308,8 +309,8 @@ export function enforceKnowledgeInjectionBoundary(entries, routeDecision, scopeF
|
|
|
308
309
|
// 门 2: Injectable
|
|
309
310
|
const gate2 = filterInjectable(gate1.passed, routeDecision, scopeFilters, allAssets, productFilters);
|
|
310
311
|
allExcluded.push(...gate2.excluded);
|
|
311
|
-
|
|
312
|
-
//
|
|
312
|
+
debugLog("知识注入边界: 门2结果, 注入=" + gate2.injectable.length + ", advisory=" + gate2.advisory.length + ", 排除=" + gate2.excluded.length);
|
|
313
|
+
// 门2通过 → 标记为可注入
|
|
313
314
|
const injectableRefs = gate2.injectable.map((e) => {
|
|
314
315
|
const cm = getConsumptionMode(e, allAssets);
|
|
315
316
|
const tier = assignPriorityTier(e, routeDecision, allAssets);
|
|
@@ -318,8 +319,8 @@ export function enforceKnowledgeInjectionBoundary(entries, routeDecision, scopeF
|
|
|
318
319
|
// 门 3: Priority sort (applied to injectable entries)
|
|
319
320
|
const gate3 = sortByPriority(gate2.injectable, routeDecision, allAssets, budget);
|
|
320
321
|
allExcluded.push(...gate3.dropped);
|
|
321
|
-
|
|
322
|
-
//
|
|
322
|
+
debugLog("知识注入边界: 门3结果, 排序=" + gate3.sorted.length + ", 冲突=" + gate3.conflicts.length + ", 裁剪=" + gate3.dropped.length);
|
|
323
|
+
// 从排序结果中分离 required 和 supporting
|
|
323
324
|
const injectedRequired = [];
|
|
324
325
|
const injectedSupporting = [];
|
|
325
326
|
for (const entry of gate3.sorted) {
|
|
@@ -333,15 +334,15 @@ export function enforceKnowledgeInjectionBoundary(entries, routeDecision, scopeF
|
|
|
333
334
|
injectedSupporting.push(ref);
|
|
334
335
|
}
|
|
335
336
|
}
|
|
336
|
-
// Advisory
|
|
337
|
+
// Advisory 条目 — pending_review 必须携带 warning
|
|
337
338
|
const advisoryOnly = gate2.advisory.map((e) => {
|
|
338
339
|
const cm = getConsumptionMode(e, allAssets);
|
|
339
340
|
return entryToRef(e, "advisory_pending", cm, "pending_review_not_injected");
|
|
340
341
|
});
|
|
341
342
|
// 从路由决策推导缺失的必需知识
|
|
342
|
-
//
|
|
343
|
+
// 对照门1通过结果(全部可索引条目)检测存在但被范围/产品过滤的知识
|
|
343
344
|
const missingRequiredKnowledge = deriveMissingRequiredKnowledge(routeDecision, gate1.passed, gate2.injectable);
|
|
344
|
-
|
|
345
|
+
debugLog("知识注入边界: 主入口完成, 必需注入=" + injectedRequired.length + ", 辅助注入=" + injectedSupporting.length + ", advisory=" + advisoryOnly.length + ", 总排除=" + allExcluded.length + ", 缺失必需=" + missingRequiredKnowledge.length);
|
|
345
346
|
return {
|
|
346
347
|
indexed,
|
|
347
348
|
injectable: injectableRefs,
|
|
@@ -360,7 +361,7 @@ export function enforceKnowledgeInjectionBoundary(entries, routeDecision, scopeF
|
|
|
360
361
|
generated_at: new Date().toISOString(),
|
|
361
362
|
};
|
|
362
363
|
}
|
|
363
|
-
// ──
|
|
364
|
+
// ── 必需知识推导 ──
|
|
364
365
|
function deriveMissingRequiredKnowledge(routeDecision, allIndexable, injectableEntries) {
|
|
365
366
|
const missing = [];
|
|
366
367
|
if (!routeDecision)
|
|
@@ -368,7 +369,7 @@ function deriveMissingRequiredKnowledge(routeDecision, allIndexable, injectableE
|
|
|
368
369
|
const oa = routeDecision.output_artifact;
|
|
369
370
|
const route = routeDecision.route;
|
|
370
371
|
const shape = routeDecision.execution_shape;
|
|
371
|
-
// acceptance_template
|
|
372
|
+
// acceptance_template 预期
|
|
372
373
|
const needsAcceptanceTemplate = ((route === "source_extraction" || shape === "single_artifact") && oa?.kind === "prototype_spec")
|
|
373
374
|
|| (oa?.template && oa.kind);
|
|
374
375
|
if (needsAcceptanceTemplate) {
|
|
@@ -385,7 +386,7 @@ function deriveMissingRequiredKnowledge(routeDecision, allIndexable, injectableE
|
|
|
385
386
|
const hasInIndexable = allIndexable.some(matchFn);
|
|
386
387
|
if (!hasInInjectable) {
|
|
387
388
|
if (hasInIndexable) {
|
|
388
|
-
//
|
|
389
|
+
// 存在但不可注入 — 被范围/产品/状态/路由/消费模式门禁阻止
|
|
389
390
|
missing.push({
|
|
390
391
|
kind: oa?.kind,
|
|
391
392
|
template: oa?.template,
|
|
@@ -405,7 +406,7 @@ function deriveMissingRequiredKnowledge(routeDecision, allIndexable, injectableE
|
|
|
405
406
|
}
|
|
406
407
|
}
|
|
407
408
|
}
|
|
408
|
-
// pipeline_hint
|
|
409
|
+
// pipeline_hint 预期
|
|
409
410
|
if (routeDecision.pipeline_hint) {
|
|
410
411
|
const pipelineName = routeDecision.pipeline_hint.split(":")[0];
|
|
411
412
|
const matchFn = (e) => {
|
|
@@ -432,10 +433,10 @@ function deriveMissingRequiredKnowledge(routeDecision, allIndexable, injectableE
|
|
|
432
433
|
}
|
|
433
434
|
return missing;
|
|
434
435
|
}
|
|
435
|
-
// ──
|
|
436
|
+
// ── 自治理 ──
|
|
436
437
|
/** 自治理验证知识注入报告的合规性 */
|
|
437
438
|
export function validateInjectionReport(report) {
|
|
438
|
-
|
|
439
|
+
debugLog("知识注入边界: 自治理验证开始, 注入总数=" + (report.injected_required.length + report.injected_supporting.length) + ", advisory=" + report.advisory_only.length + ", 排除=" + report.excluded.length);
|
|
439
440
|
const findings = [];
|
|
440
441
|
const allInjected = [...report.injected_required, ...report.injected_supporting];
|
|
441
442
|
// 检查: missing indexed field
|
|
@@ -458,7 +459,7 @@ export function validateInjectionReport(report) {
|
|
|
458
459
|
}
|
|
459
460
|
// 检查: missing_required_knowledge → hard_fail
|
|
460
461
|
if (report.missing_required_knowledge && report.missing_required_knowledge.length > 0) {
|
|
461
|
-
|
|
462
|
+
debugLog("知识注入边界: 自治理验证-检测到缺失必需知识, 数量=" + report.missing_required_knowledge.length);
|
|
462
463
|
for (const missing of report.missing_required_knowledge) {
|
|
463
464
|
findings.push({
|
|
464
465
|
severity: "hard_fail",
|
|
@@ -471,7 +472,7 @@ export function validateInjectionReport(report) {
|
|
|
471
472
|
// 检查: no draft/quarantine/deprecated in injected
|
|
472
473
|
for (const ref of allInjected) {
|
|
473
474
|
if (ref.tier === "draft" || ref.tier === "quarantine" || ref.tier === "deprecated") {
|
|
474
|
-
|
|
475
|
+
debugLog("知识注入边界: 自治理验证-阻止层级注入, id=" + ref.id + ", tier=" + ref.tier);
|
|
475
476
|
findings.push({
|
|
476
477
|
severity: "hard_fail",
|
|
477
478
|
subject_id: ref.id,
|
|
@@ -483,7 +484,7 @@ export function validateInjectionReport(report) {
|
|
|
483
484
|
// 检查: pending_review only in advisory_only
|
|
484
485
|
for (const ref of allInjected) {
|
|
485
486
|
if (ref.priority_tier === "advisory_pending") {
|
|
486
|
-
|
|
487
|
+
debugLog("知识注入边界: 自治理验证-advisory_pending误注入, id=" + ref.id);
|
|
487
488
|
findings.push({
|
|
488
489
|
severity: "hard_fail",
|
|
489
490
|
subject_id: ref.id,
|
|
@@ -544,18 +545,18 @@ export function validateInjectionReport(report) {
|
|
|
544
545
|
}
|
|
545
546
|
const hardFails = findings.filter(f => f.severity === "hard_fail");
|
|
546
547
|
const advisories = findings.filter(f => f.severity === "advisory");
|
|
547
|
-
|
|
548
|
+
debugLog("知识注入边界: 自治理验证完成, 硬失败=" + hardFails.length + ", 建议=" + advisories.length);
|
|
548
549
|
return findings;
|
|
549
550
|
}
|
|
550
551
|
/**
|
|
551
|
-
*
|
|
552
|
+
* 从报告中获取已注入的条目,回溯到原始 KnowledgeEntry 对象。
|
|
552
553
|
*/
|
|
553
554
|
export function getInjectedEntryIds(report) {
|
|
554
555
|
const ids = [
|
|
555
556
|
...report.injected_required,
|
|
556
557
|
...report.injected_supporting,
|
|
557
558
|
].map((r) => r.id);
|
|
558
|
-
|
|
559
|
+
debugLog("知识注入边界: 获取已注入条目ID, 数量=" + ids.length);
|
|
559
560
|
return ids;
|
|
560
561
|
}
|
|
561
562
|
//# sourceMappingURL=knowledge_injection_boundary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge_injection_boundary.js","sourceRoot":"","sources":["../../src/engine/knowledge_injection_boundary.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"knowledge_injection_boundary.js","sourceRoot":"","sources":["../../src/engine/knowledge_injection_boundary.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,7 +60,7 @@ const WARNING_STATUSES = [
|
|
|
60
60
|
"experimental_isolated",
|
|
61
61
|
"planned_integration",
|
|
62
62
|
];
|
|
63
|
-
// ──
|
|
63
|
+
// ── 查询函数 ──
|
|
64
64
|
/**
|
|
65
65
|
* 判断文件是否为豁免文件。
|
|
66
66
|
* @param modulePath - 模块路径
|
|
@@ -140,7 +140,7 @@ export function hasIntegrationTest(contract) {
|
|
|
140
140
|
export function hasProductionImport(contract) {
|
|
141
141
|
return contract.production_imports.length > 0;
|
|
142
142
|
}
|
|
143
|
-
// ──
|
|
143
|
+
// ── 孤岛模块门禁 ──
|
|
144
144
|
/**
|
|
145
145
|
* 孤岛模块门禁检查。
|
|
146
146
|
* 检查模块是否存在只被测试导入、无入口链路等问题。
|
|
@@ -248,7 +248,7 @@ export function orphanGate(contract, capabilityKind) {
|
|
|
248
248
|
console.error("[soloForge] 主链路接入: 孤岛门禁完成 — " + path + " 发现 " + findings.length + " 个问题");
|
|
249
249
|
return findings;
|
|
250
250
|
}
|
|
251
|
-
// ──
|
|
251
|
+
// ── 集成审计 ──
|
|
252
252
|
/**
|
|
253
253
|
* 集成审计。
|
|
254
254
|
* 审计所有契约的接入状态,生成审计报告。
|
|
@@ -304,7 +304,7 @@ export function auditIntegration(contracts, capabilityKinds) {
|
|
|
304
304
|
console.error("[soloForge] 主链路接入: 集成审计完成 — 孤岛 " + report.orphan_modules.length + ", 注册表 " + report.registry_only_modules.length + ", 仅测试 " + report.test_only_modules.length + ", 不可达 " + report.unreachable_capabilities.length);
|
|
305
305
|
return report;
|
|
306
306
|
}
|
|
307
|
-
// ──
|
|
307
|
+
// ── 工厂函数 ──
|
|
308
308
|
/**
|
|
309
309
|
* 创建主链路接入契约。
|
|
310
310
|
* @param params.module_path - 模块路径
|
|
@@ -393,7 +393,7 @@ export function validateDeliveryAnswers(answers) {
|
|
|
393
393
|
}
|
|
394
394
|
return findings;
|
|
395
395
|
}
|
|
396
|
-
// ──
|
|
396
|
+
// ── 中文标签 ──
|
|
397
397
|
/**
|
|
398
398
|
* 获取接入状态的中文标签。
|
|
399
399
|
* @param status - 接入状态
|
|
@@ -460,7 +460,7 @@ export function buildIntegrationFeedback(contract) {
|
|
|
460
460
|
}
|
|
461
461
|
return lines.join("\n");
|
|
462
462
|
}
|
|
463
|
-
// ──
|
|
463
|
+
// ── 治理验证 ──
|
|
464
464
|
/**
|
|
465
465
|
* 验证主链路接入。
|
|
466
466
|
* @param options.contracts - 主链路接入契约列表
|
|
@@ -679,7 +679,7 @@ export function walkDir(dir) {
|
|
|
679
679
|
console.error("[soloForge] 主链路接入: 遍历目录完成 — " + dir + " 共 " + results.length + " 个文件");
|
|
680
680
|
return results;
|
|
681
681
|
}
|
|
682
|
-
// ──
|
|
682
|
+
// ── 调用证据检测 ──
|
|
683
683
|
/** 从 TS/JS 导入语句中提取导入的符号名称 */
|
|
684
684
|
function extractImportedNames(content, targetNorm) {
|
|
685
685
|
const names = [];
|
|
@@ -793,7 +793,7 @@ function detectGoCallEvidence(content, names) {
|
|
|
793
793
|
}
|
|
794
794
|
return evidence;
|
|
795
795
|
}
|
|
796
|
-
// ──
|
|
796
|
+
// ── 导入解析 ──
|
|
797
797
|
/**
|
|
798
798
|
* Extract import/require paths from source content.
|
|
799
799
|
*/
|
|
@@ -838,7 +838,7 @@ export function extractImportPaths(content, filePath) {
|
|
|
838
838
|
paths.push(m[1]);
|
|
839
839
|
}
|
|
840
840
|
else {
|
|
841
|
-
// TypeScript/JavaScript
|
|
841
|
+
// TypeScript/JavaScript(其他语言已单独处理)
|
|
842
842
|
const fromRe = /(?:import|export)\s+(?:type\s+)?[^'"]*?\s+from\s+['"]([^'"]+)['"]/g;
|
|
843
843
|
let m;
|
|
844
844
|
while ((m = fromRe.exec(content)) !== null)
|
|
@@ -894,7 +894,7 @@ export function resolveImportPath(importSpecifier, fromFileRel, projectPath) {
|
|
|
894
894
|
function normalizeModulePath(p) {
|
|
895
895
|
return p.replace(/\.(ts|tsx|js|jsx)$/, "").replace(/\\/g, "/");
|
|
896
896
|
}
|
|
897
|
-
// ── Java/Kotlin
|
|
897
|
+
// ── Java/Kotlin 全限定名解析 ──
|
|
898
898
|
/**
|
|
899
899
|
* Compute the Fully Qualified Name of a Java/Kotlin file from its package + class.
|
|
900
900
|
*/
|
|
@@ -940,7 +940,7 @@ function matchJavaFqn(importerContent, targetFqn) {
|
|
|
940
940
|
importerContent.includes(wildcardImport + ";") ||
|
|
941
941
|
importerContent.includes(wildcardImport + "\n");
|
|
942
942
|
}
|
|
943
|
-
// ── Python
|
|
943
|
+
// ── Python 模块路径解析 ──
|
|
944
944
|
/**
|
|
945
945
|
* Compute Python module path from file path.
|
|
946
946
|
* e.g. src/services/user.py → services.user
|
|
@@ -955,7 +955,7 @@ function computePythonModulePath(filePath) {
|
|
|
955
955
|
return parts.slice(srcIdx + 1).join(".");
|
|
956
956
|
return parts.join(".");
|
|
957
957
|
}
|
|
958
|
-
// ── Go
|
|
958
|
+
// ── Go 包路径解析 ──
|
|
959
959
|
/**
|
|
960
960
|
* Resolve Go import path from file path and module name.
|
|
961
961
|
* Simplified: returns directory-based package path.
|
|
@@ -963,7 +963,7 @@ function computePythonModulePath(filePath) {
|
|
|
963
963
|
function computeGoPkgPath(filePath) {
|
|
964
964
|
return fspath.dirname(filePath.replace(/\\/g, "/")).replace(/\\/g, "/");
|
|
965
965
|
}
|
|
966
|
-
// ──
|
|
966
|
+
// ── 核心扫描 ──
|
|
967
967
|
/**
|
|
968
968
|
* Scan all project files to find who imports a given module.
|
|
969
969
|
* Classifies each importer and detects call evidence.
|
|
@@ -1016,7 +1016,7 @@ export function scanModuleImporters(projectPath, moduleRelPath) {
|
|
|
1016
1016
|
catch {
|
|
1017
1017
|
continue;
|
|
1018
1018
|
}
|
|
1019
|
-
// ──
|
|
1019
|
+
// ── 使用语言特定解析匹配导入 ──
|
|
1020
1020
|
let matched = false;
|
|
1021
1021
|
let importedNames = [];
|
|
1022
1022
|
if (moduleExt === ".java" || moduleExt === ".kt") {
|
|
@@ -1068,7 +1068,7 @@ export function scanModuleImporters(projectPath, moduleRelPath) {
|
|
|
1068
1068
|
}
|
|
1069
1069
|
if (!matched)
|
|
1070
1070
|
continue;
|
|
1071
|
-
// ──
|
|
1071
|
+
// ── 分类导入者 ──
|
|
1072
1072
|
const isTest = /\.test\.|\.spec\.|\/tests\/|\/__tests__\//.test(rel);
|
|
1073
1073
|
if (isTest) {
|
|
1074
1074
|
result.test_imports.push(rel);
|
|
@@ -1082,7 +1082,7 @@ export function scanModuleImporters(projectPath, moduleRelPath) {
|
|
|
1082
1082
|
result.registry_declarations.push(rel);
|
|
1083
1083
|
continue;
|
|
1084
1084
|
}
|
|
1085
|
-
// ──
|
|
1085
|
+
// ── 检测调用证据 ──
|
|
1086
1086
|
let callEvidence = [];
|
|
1087
1087
|
if (ext === ".java" || ext === ".kt") {
|
|
1088
1088
|
callEvidence = detectJavaCallEvidence(content, importedNames);
|