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.
Files changed (128) hide show
  1. package/dist/adapters/claude_code/pre_prompt_contract.js +2 -2
  2. package/dist/adapters/claude_code/pre_prompt_contract.js.map +1 -1
  3. package/dist/adapters/claude_code/server.d.ts.map +1 -1
  4. package/dist/adapters/claude_code/server.js +4 -2
  5. package/dist/adapters/claude_code/server.js.map +1 -1
  6. package/dist/adapters/claude_code/tools.d.ts +2 -2
  7. package/dist/adapters/claude_code/tools.d.ts.map +1 -1
  8. package/dist/adapters/claude_code/tools.js +189 -170
  9. package/dist/adapters/claude_code/tools.js.map +1 -1
  10. package/dist/adapters/codex/codex_config.d.ts.map +1 -1
  11. package/dist/adapters/codex/codex_config.js +16 -4
  12. package/dist/adapters/codex/codex_config.js.map +1 -1
  13. package/dist/adapters/trae/trae_config.d.ts +2 -1
  14. package/dist/adapters/trae/trae_config.d.ts.map +1 -1
  15. package/dist/adapters/trae/trae_config.js +4 -3
  16. package/dist/adapters/trae/trae_config.js.map +1 -1
  17. package/dist/bin/config_commands.d.ts +1 -1
  18. package/dist/bin/config_commands.js +4 -4
  19. package/dist/bin/config_commands.js.map +1 -1
  20. package/dist/bin/soloforge.d.ts.map +1 -1
  21. package/dist/bin/soloforge.js +85 -110
  22. package/dist/bin/soloforge.js.map +1 -1
  23. package/dist/engine/artifact_contract_registry.d.ts.map +1 -1
  24. package/dist/engine/artifact_contract_registry.js.map +1 -1
  25. package/dist/engine/audit_pool.d.ts.map +1 -1
  26. package/dist/engine/audit_pool.js +0 -1
  27. package/dist/engine/audit_pool.js.map +1 -1
  28. package/dist/engine/audit_sampler.d.ts.map +1 -1
  29. package/dist/engine/audit_sampler.js +0 -4
  30. package/dist/engine/audit_sampler.js.map +1 -1
  31. package/dist/engine/batch1_manifest.d.ts.map +1 -1
  32. package/dist/engine/batch1_manifest.js +0 -7
  33. package/dist/engine/batch1_manifest.js.map +1 -1
  34. package/dist/engine/batch1_scenario_registry.js +7 -7
  35. package/dist/engine/batch1_scenario_registry.js.map +1 -1
  36. package/dist/engine/batch1_scenario_runners.js +32 -32
  37. package/dist/engine/batch1_scenario_runners.js.map +1 -1
  38. package/dist/engine/capability_action_advisor.js +16 -16
  39. package/dist/engine/capability_action_advisor.js.map +1 -1
  40. package/dist/engine/classifier.d.ts.map +1 -1
  41. package/dist/engine/classifier.js +4 -3
  42. package/dist/engine/classifier.js.map +1 -1
  43. package/dist/engine/code_reviewer.d.ts.map +1 -1
  44. package/dist/engine/code_reviewer.js +10 -9
  45. package/dist/engine/code_reviewer.js.map +1 -1
  46. package/dist/engine/command_execution_contract.js +14 -14
  47. package/dist/engine/command_execution_contract.js.map +1 -1
  48. package/dist/engine/debug_log.d.ts +2 -0
  49. package/dist/engine/debug_log.d.ts.map +1 -0
  50. package/dist/engine/debug_log.js +7 -0
  51. package/dist/engine/debug_log.js.map +1 -0
  52. package/dist/engine/developer_sovereignty.js +15 -15
  53. package/dist/engine/developer_sovereignty.js.map +1 -1
  54. package/dist/engine/diff_ownership_store.d.ts.map +1 -1
  55. package/dist/engine/diff_ownership_store.js +1 -2
  56. package/dist/engine/diff_ownership_store.js.map +1 -1
  57. package/dist/engine/dual_layer_mechanism_registry.js +1 -1
  58. package/dist/engine/dual_layer_mechanism_registry.js.map +1 -1
  59. package/dist/engine/evolver.d.ts.map +1 -1
  60. package/dist/engine/evolver.js +11 -10
  61. package/dist/engine/evolver.js.map +1 -1
  62. package/dist/engine/governance_report.js +9 -9
  63. package/dist/engine/governance_report.js.map +1 -1
  64. package/dist/engine/implementation_roadmap_registry.js +5 -5
  65. package/dist/engine/implementation_roadmap_registry.js.map +1 -1
  66. package/dist/engine/input_material_extractor.js +3 -3
  67. package/dist/engine/input_material_extractor.js.map +1 -1
  68. package/dist/engine/intent_expander.d.ts.map +1 -1
  69. package/dist/engine/intent_expander.js +15 -14
  70. package/dist/engine/intent_expander.js.map +1 -1
  71. package/dist/engine/intent_router.d.ts.map +1 -1
  72. package/dist/engine/intent_router.js +17 -16
  73. package/dist/engine/intent_router.js.map +1 -1
  74. package/dist/engine/java_quality_guard.js +10 -10
  75. package/dist/engine/java_quality_guard.js.map +1 -1
  76. package/dist/engine/knowledge_injection_boundary.d.ts +1 -1
  77. package/dist/engine/knowledge_injection_boundary.d.ts.map +1 -1
  78. package/dist/engine/knowledge_injection_boundary.js +61 -60
  79. package/dist/engine/knowledge_injection_boundary.js.map +1 -1
  80. package/dist/engine/main_path_integration_contract.js +16 -16
  81. package/dist/engine/main_path_integration_contract.js.map +1 -1
  82. package/dist/engine/mechanism_contract_registry.d.ts +3 -4
  83. package/dist/engine/mechanism_contract_registry.d.ts.map +1 -1
  84. package/dist/engine/mechanism_contract_registry.js +23 -24
  85. package/dist/engine/mechanism_contract_registry.js.map +1 -1
  86. package/dist/engine/onboarding.js +20 -20
  87. package/dist/engine/onboarding.js.map +1 -1
  88. package/dist/engine/privacy_secret_contract.d.ts.map +1 -1
  89. package/dist/engine/privacy_secret_contract.js +49 -48
  90. package/dist/engine/privacy_secret_contract.js.map +1 -1
  91. package/dist/engine/regression_matrix.js +21 -21
  92. package/dist/engine/regression_matrix.js.map +1 -1
  93. package/dist/engine/route_decision_contract_verifier.js +24 -24
  94. package/dist/engine/route_decision_contract_verifier.js.map +1 -1
  95. package/dist/engine/scope_controller.d.ts.map +1 -1
  96. package/dist/engine/scope_controller.js +4 -3
  97. package/dist/engine/scope_controller.js.map +1 -1
  98. package/dist/engine/scope_lease.d.ts.map +1 -1
  99. package/dist/engine/scope_lease.js +0 -1
  100. package/dist/engine/scope_lease.js.map +1 -1
  101. package/dist/engine/task_context.js +3 -3
  102. package/dist/engine/task_context.js.map +1 -1
  103. package/dist/engine/test_generator.js +8 -8
  104. package/dist/engine/test_generator.js.map +1 -1
  105. package/dist/engine/tool_invocation_contract_registry.js +18 -18
  106. package/dist/engine/tool_invocation_contract_registry.js.map +1 -1
  107. package/dist/engine/traceability.js +6 -6
  108. package/dist/engine/traceability.js.map +1 -1
  109. package/dist/engine/user_feedback_contract.js +9 -9
  110. package/dist/engine/user_feedback_contract.js.map +1 -1
  111. package/dist/engine/verifier.d.ts.map +1 -1
  112. package/dist/engine/verifier.js +9 -8
  113. package/dist/engine/verifier.js.map +1 -1
  114. package/dist/engine/zero_config_init.d.ts.map +1 -1
  115. package/dist/engine/zero_config_init.js +84 -84
  116. package/dist/engine/zero_config_init.js.map +1 -1
  117. package/dist/git/operations.js +1 -1
  118. package/dist/git/operations.js.map +1 -1
  119. package/dist/index.d.ts +4 -3
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +16 -11
  122. package/dist/index.js.map +1 -1
  123. package/dist/knowledge/index_manager.d.ts.map +1 -1
  124. package/dist/knowledge/index_manager.js +18 -17
  125. package/dist/knowledge/index_manager.js.map +1 -1
  126. package/dist/knowledge/loader.js +2 -2
  127. package/dist/knowledge/loader.js.map +1 -1
  128. 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
- // Exact path match
45
+ // 精确路径匹配
45
46
  if (a.path === entry.file_path)
46
47
  return true;
47
- // Template name match for acceptance_templates (entry name matches asset filename without extension)
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
- // pipeline_procedure entries matching pipeline_hint are route_required
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
- // acceptance_template entries matching output_artifact.template are route_required
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
- // Entries matching output_artifact.kind trigger are route_required
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
- // Product constraint entries: only non-project domain/product_profile entries
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
- console.error("[soloForge] 知识注入边界: 门1-可索引过滤开始, 条目数=" + entries.length);
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
- console.error("[soloForge] 知识注入边界: 门1-排除条目, id=" + entry.id + ", name=" + entry.name + ", reason=" + reason);
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
- console.error("[soloForge] 知识注入边界: 门1-可索引过滤完成, 通过=" + passed.length + ", 排除=" + excluded.length);
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
- console.error("[soloForge] 知识注入边界: 门2-可注入过滤开始, 条目数=" + entries.length + ", scope过滤=" + scopeFilters.length + ", product过滤=" + productFilters.length);
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
- // Status gate
144
+ // 状态门禁
144
145
  if (entry.status !== "active" && entry.status !== "pending_review") {
145
- // Already filtered by Gate 1, but be defensive
146
- console.error("[soloForge] 知识注入边界: 门2-状态阻止, id=" + entry.id + ", status=" + entry.status);
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
- // Consumption mode gate
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
- console.error("[soloForge] 知识注入边界: 门2-消费模式阻止, id=" + entry.id + ", mode=" + cm);
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
- // Scope gate
159
+ // 范围门禁
159
160
  if (requestScopes.length > 0 && !scopeMatches(entry.scope, requestScopes)) {
160
- console.error("[soloForge] 知识注入边界: 门2-作用域不匹配, id=" + entry.id + ", entry_scope=" + JSON.stringify(entry.scope) + ", request_scope=" + JSON.stringify(requestScopes));
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
- // Product gate
165
+ // 产品门禁
165
166
  if (requestProducts.length > 0 && !productsMatch(entry.products, requestProducts)) {
166
- console.error("[soloForge] 知识注入边界: 门2-产品不匹配, id=" + entry.id + ", entry_products=" + JSON.stringify(entry.products) + ", request_products=" + JSON.stringify(requestProducts));
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
- // Route gate only reject clearly mismatched entries
171
+ // 路由门禁仅拒绝明显不匹配的条目
171
172
  if (routeDecision && isRouteMismatch(entry, routeDecision)) {
172
- console.error("[soloForge] 知识注入边界: 门2-路由不匹配, id=" + entry.id + ", type=" + entry.type);
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 → advisory only
177
+ // pending_review → 仅为建议
177
178
  if (entry.status === "pending_review") {
178
- console.error("[soloForge] 知识注入边界: 门2-待审条目降级为advisory, id=" + entry.id);
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
- console.error("[soloForge] 知识注入边界: 门2-可注入过滤完成, 注入=" + injectable.length + ", advisory=" + advisory.length + ", 排除=" + excluded.length);
185
+ debugLog("知识注入边界: 门2-可注入过滤完成, 注入=" + injectable.length + ", advisory=" + advisory.length + ", 排除=" + excluded.length);
185
186
  return { injectable, advisory, excluded };
186
187
  }
187
- // execution_shape → allowed knowledge types mapping
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" has no restriction
195
+ // "none" 无限制
195
196
  };
196
197
  function isRouteMismatch(entry, routeDecision) {
197
- // Gate: review_rule only for review route
198
+ // 门禁:review_rule 仅限 review 路由
198
199
  if (entry.type === "review_rule" && routeDecision.route !== "review") {
199
200
  return true;
200
201
  }
201
- // Gate: acceptance_template with explicit trigger must match output_artifact.kind
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
- // Gate: execution_shape must allow this knowledge type
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
- console.error("[soloForge] 知识注入边界: 门3-优先级排序开始, 条目数=" + entries.length + ", 预算=" + budget);
227
+ debugLog("知识注入边界: 门3-优先级排序开始, 条目数=" + entries.length + ", 预算=" + budget);
227
228
  const conflicts = [];
228
229
  const dropped = [];
229
- // Assign priority tier to each entry
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
- // Within same core/normal, higher confidence first
246
+ // core/normal 层级内,置信度高的优先
246
247
  return b.entry.confidence - a.entry.confidence;
247
248
  });
248
- // Detect core vs normal conflicts within same type
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
- // Detect product profile vs project config conflicts
264
- // Product profiles must not override project-level entries only supplement
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
- // Apply budget
279
+ // 应用预算裁剪
279
280
  const sorted = withPriority.slice(0, budget).map((w) => w.entry);
280
281
  for (const item of withPriority.slice(budget)) {
281
- console.error("[soloForge] 知识注入边界: 门3-预算裁剪, id=" + item.entry.id + ", tier=" + item.tier);
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
- console.error("[soloForge] 知识注入边界: 门3-优先级排序完成, 排序=" + sorted.length + ", 冲突=" + conflicts.length + ", 裁剪=" + dropped.length);
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
- console.error("[soloForge] 知识注入边界: 主入口开始执行, 总条目数=" + entries.length + ", 预算=" + budget + ", scope过滤=" + scopeFilters.length + ", product过滤=" + productFilters.length);
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
- console.error("[soloForge] 知识注入边界: 门1结果, 通过=" + gate1.passed.length + ", 排除=" + gate1.excluded.length);
302
- // Gate 1 passed indexed
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
- console.error("[soloForge] 知识注入边界: 门2结果, 注入=" + gate2.injectable.length + ", advisory=" + gate2.advisory.length + ", 排除=" + gate2.excluded.length);
312
- // Gate 2 injectable injectable
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
- console.error("[soloForge] 知识注入边界: 门3结果, 排序=" + gate3.sorted.length + ", 冲突=" + gate3.conflicts.length + ", 裁剪=" + gate3.dropped.length);
322
- // Separate required vs supporting from sorted results
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 entries — pending_review must carry warning
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
- // Check against gate1.passed (all indexable) to detect knowledge that exists but is scope/product filtered
343
+ // 对照门1通过结果(全部可索引条目)检测存在但被范围/产品过滤的知识
343
344
  const missingRequiredKnowledge = deriveMissingRequiredKnowledge(routeDecision, gate1.passed, gate2.injectable);
344
- console.error("[soloForge] 知识注入边界: 主入口完成, 必需注入=" + injectedRequired.length + ", 辅助注入=" + injectedSupporting.length + ", advisory=" + advisoryOnly.length + ", 总排除=" + allExcluded.length + ", 缺失必需=" + missingRequiredKnowledge.length);
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
- // ── Required Knowledge Derivation ──
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 expectation
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
- // Exists but not injectable blocked by scope/product/status/route/consumption gate
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 expectation
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
- // ── Self-Governance ──
436
+ // ── 自治理 ──
436
437
  /** 自治理验证知识注入报告的合规性 */
437
438
  export function validateInjectionReport(report) {
438
- console.error("[soloForge] 知识注入边界: 自治理验证开始, 注入总数=" + (report.injected_required.length + report.injected_supporting.length) + ", advisory=" + report.advisory_only.length + ", 排除=" + report.excluded.length);
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
- console.error("[soloForge] 知识注入边界: 自治理验证-检测到缺失必需知识, 数量=" + report.missing_required_knowledge.length);
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
- console.error("[soloForge] 知识注入边界: 自治理验证-阻止层级注入, id=" + ref.id + ", tier=" + ref.tier);
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
- console.error("[soloForge] 知识注入边界: 自治理验证-advisory_pending误注入, id=" + ref.id);
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
- console.error("[soloForge] 知识注入边界: 自治理验证完成, 硬失败=" + hardFails.length + ", 建议=" + advisories.length);
548
+ debugLog("知识注入边界: 自治理验证完成, 硬失败=" + hardFails.length + ", 建议=" + advisories.length);
548
549
  return findings;
549
550
  }
550
551
  /**
551
- * Get injected entries from a report, filtering back to original KnowledgeEntry objects.
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
- console.error("[soloForge] 知识注入边界: 获取已注入条目ID, 数量=" + ids.length);
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
- // ── Query functions ──
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
- // ── Orphan Implementation Gate ──
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
- // ── Integration Audit ──
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
- // ── Factory ──
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
- // ── Chinese Labels ──
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
- // ── Governance Validation ──
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
- // ── Call Evidence Detection ──
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
- // ── Import Resolution ──
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 FQN Resolution ──
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 Module Path Resolution ──
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 Package Path Resolution ──
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
- // ── Core Scanning ──
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
- // ── Match imports using language-specific resolution ──
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
- // ── Classify the importer ──
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
- // ── Detect call evidence ──
1085
+ // ── 检测调用证据 ──
1086
1086
  let callEvidence = [];
1087
1087
  if (ext === ".java" || ext === ".kt") {
1088
1088
  callEvidence = detectJavaCallEvidence(content, importedNames);