soloforge 1.0.0 → 1.1.1

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 (182) hide show
  1. package/README.md +4 -1
  2. package/dist/adapters/claude_code/claude_md.d.ts +1 -2
  3. package/dist/adapters/claude_code/claude_md.d.ts.map +1 -1
  4. package/dist/adapters/claude_code/claude_md.js +2 -76
  5. package/dist/adapters/claude_code/claude_md.js.map +1 -1
  6. package/dist/adapters/claude_code/server.d.ts +16 -0
  7. package/dist/adapters/claude_code/server.d.ts.map +1 -1
  8. package/dist/adapters/claude_code/server.js +17 -1
  9. package/dist/adapters/claude_code/server.js.map +1 -1
  10. package/dist/adapters/claude_code/tools.d.ts +32 -1
  11. package/dist/adapters/claude_code/tools.d.ts.map +1 -1
  12. package/dist/adapters/claude_code/tools.js +65 -30
  13. package/dist/adapters/claude_code/tools.js.map +1 -1
  14. package/dist/adapters/codex/codex_config.d.ts +3 -0
  15. package/dist/adapters/codex/codex_config.d.ts.map +1 -0
  16. package/dist/adapters/codex/codex_config.js +51 -0
  17. package/dist/adapters/codex/codex_config.js.map +1 -0
  18. package/dist/adapters/codex/codex_rules.d.ts +2 -0
  19. package/dist/adapters/codex/codex_rules.d.ts.map +1 -0
  20. package/dist/adapters/codex/codex_rules.js +5 -0
  21. package/dist/adapters/codex/codex_rules.js.map +1 -0
  22. package/dist/adapters/shared/workflow_template.d.ts +3 -0
  23. package/dist/adapters/shared/workflow_template.d.ts.map +1 -0
  24. package/dist/adapters/shared/workflow_template.js +78 -0
  25. package/dist/adapters/shared/workflow_template.js.map +1 -0
  26. package/dist/adapters/trae/trae_rules.d.ts +1 -2
  27. package/dist/adapters/trae/trae_rules.d.ts.map +1 -1
  28. package/dist/adapters/trae/trae_rules.js +2 -75
  29. package/dist/adapters/trae/trae_rules.js.map +1 -1
  30. package/dist/bin/soloforge.js +171 -22
  31. package/dist/bin/soloforge.js.map +1 -1
  32. package/dist/engine/change_coordinator.d.ts +20 -5
  33. package/dist/engine/change_coordinator.d.ts.map +1 -1
  34. package/dist/engine/change_coordinator.js +36 -22
  35. package/dist/engine/change_coordinator.js.map +1 -1
  36. package/dist/engine/classifier.d.ts +7 -0
  37. package/dist/engine/classifier.d.ts.map +1 -1
  38. package/dist/engine/classifier.js +75 -3
  39. package/dist/engine/classifier.js.map +1 -1
  40. package/dist/engine/code_reviewer.d.ts +37 -1
  41. package/dist/engine/code_reviewer.d.ts.map +1 -1
  42. package/dist/engine/code_reviewer.js +126 -24
  43. package/dist/engine/code_reviewer.js.map +1 -1
  44. package/dist/engine/confidence_scorer.d.ts +21 -0
  45. package/dist/engine/confidence_scorer.d.ts.map +1 -1
  46. package/dist/engine/confidence_scorer.js +19 -6
  47. package/dist/engine/confidence_scorer.js.map +1 -1
  48. package/dist/engine/contract_guard.d.ts +23 -0
  49. package/dist/engine/contract_guard.d.ts.map +1 -1
  50. package/dist/engine/contract_guard.js +152 -43
  51. package/dist/engine/contract_guard.js.map +1 -1
  52. package/dist/engine/convention_detector.d.ts +20 -0
  53. package/dist/engine/convention_detector.d.ts.map +1 -1
  54. package/dist/engine/convention_detector.js +19 -1
  55. package/dist/engine/convention_detector.js.map +1 -1
  56. package/dist/engine/debt_reporter.d.ts +5 -0
  57. package/dist/engine/debt_reporter.d.ts.map +1 -1
  58. package/dist/engine/debt_reporter.js +30 -6
  59. package/dist/engine/debt_reporter.js.map +1 -1
  60. package/dist/engine/debt_tracker.d.ts +52 -0
  61. package/dist/engine/debt_tracker.d.ts.map +1 -1
  62. package/dist/engine/debt_tracker.js +66 -1
  63. package/dist/engine/debt_tracker.js.map +1 -1
  64. package/dist/engine/debugger.d.ts +9 -0
  65. package/dist/engine/debugger.d.ts.map +1 -1
  66. package/dist/engine/debugger.js +112 -20
  67. package/dist/engine/debugger.js.map +1 -1
  68. package/dist/engine/delivery.d.ts +27 -0
  69. package/dist/engine/delivery.d.ts.map +1 -1
  70. package/dist/engine/delivery.js +67 -13
  71. package/dist/engine/delivery.js.map +1 -1
  72. package/dist/engine/dependency_scanner.d.ts +5 -8
  73. package/dist/engine/dependency_scanner.d.ts.map +1 -1
  74. package/dist/engine/dependency_scanner.js +46 -29
  75. package/dist/engine/dependency_scanner.js.map +1 -1
  76. package/dist/engine/evolver.d.ts +54 -0
  77. package/dist/engine/evolver.d.ts.map +1 -1
  78. package/dist/engine/evolver.js +159 -6
  79. package/dist/engine/evolver.js.map +1 -1
  80. package/dist/engine/exploration.d.ts +114 -0
  81. package/dist/engine/exploration.d.ts.map +1 -0
  82. package/dist/engine/exploration.js +414 -0
  83. package/dist/engine/exploration.js.map +1 -0
  84. package/dist/engine/failure_classifier.d.ts +28 -0
  85. package/dist/engine/failure_classifier.d.ts.map +1 -1
  86. package/dist/engine/failure_classifier.js +51 -5
  87. package/dist/engine/failure_classifier.js.map +1 -1
  88. package/dist/engine/git_deps.d.ts +29 -0
  89. package/dist/engine/git_deps.d.ts.map +1 -1
  90. package/dist/engine/git_deps.js +1 -0
  91. package/dist/engine/git_deps.js.map +1 -1
  92. package/dist/engine/impact_analyzer.d.ts +17 -0
  93. package/dist/engine/impact_analyzer.d.ts.map +1 -1
  94. package/dist/engine/impact_analyzer.js +76 -4
  95. package/dist/engine/impact_analyzer.js.map +1 -1
  96. package/dist/engine/intent_expander.d.ts +58 -0
  97. package/dist/engine/intent_expander.d.ts.map +1 -1
  98. package/dist/engine/intent_expander.js +173 -1
  99. package/dist/engine/intent_expander.js.map +1 -1
  100. package/dist/engine/migration_guard.d.ts +6 -0
  101. package/dist/engine/migration_guard.d.ts.map +1 -1
  102. package/dist/engine/migration_guard.js +26 -7
  103. package/dist/engine/migration_guard.js.map +1 -1
  104. package/dist/engine/observability.d.ts +31 -7
  105. package/dist/engine/observability.d.ts.map +1 -1
  106. package/dist/engine/observability.js +88 -28
  107. package/dist/engine/observability.js.map +1 -1
  108. package/dist/engine/onboarding.d.ts +41 -1
  109. package/dist/engine/onboarding.d.ts.map +1 -1
  110. package/dist/engine/onboarding.js +83 -8
  111. package/dist/engine/onboarding.js.map +1 -1
  112. package/dist/engine/scaffolder.d.ts +10 -0
  113. package/dist/engine/scaffolder.d.ts.map +1 -1
  114. package/dist/engine/scaffolder.js +55 -10
  115. package/dist/engine/scaffolder.js.map +1 -1
  116. package/dist/engine/scope_controller.d.ts +13 -0
  117. package/dist/engine/scope_controller.d.ts.map +1 -1
  118. package/dist/engine/scope_controller.js +76 -12
  119. package/dist/engine/scope_controller.js.map +1 -1
  120. package/dist/engine/task_context.d.ts +124 -0
  121. package/dist/engine/task_context.d.ts.map +1 -1
  122. package/dist/engine/task_context.js +155 -7
  123. package/dist/engine/task_context.js.map +1 -1
  124. package/dist/engine/task_planner.d.ts +17 -0
  125. package/dist/engine/task_planner.d.ts.map +1 -1
  126. package/dist/engine/task_planner.js +51 -4
  127. package/dist/engine/task_planner.js.map +1 -1
  128. package/dist/engine/team_awareness.d.ts +17 -0
  129. package/dist/engine/team_awareness.d.ts.map +1 -1
  130. package/dist/engine/team_awareness.js +29 -11
  131. package/dist/engine/team_awareness.js.map +1 -1
  132. package/dist/engine/test_generator.d.ts +5 -4
  133. package/dist/engine/test_generator.d.ts.map +1 -1
  134. package/dist/engine/test_generator.js +22 -5
  135. package/dist/engine/test_generator.js.map +1 -1
  136. package/dist/engine/test_quality.d.ts +11 -4
  137. package/dist/engine/test_quality.d.ts.map +1 -1
  138. package/dist/engine/test_quality.js +171 -14
  139. package/dist/engine/test_quality.js.map +1 -1
  140. package/dist/engine/verifier.d.ts +41 -0
  141. package/dist/engine/verifier.d.ts.map +1 -1
  142. package/dist/engine/verifier.js +110 -1
  143. package/dist/engine/verifier.js.map +1 -1
  144. package/dist/git/operations.d.ts +1 -0
  145. package/dist/git/operations.d.ts.map +1 -1
  146. package/dist/git/operations.js +3 -0
  147. package/dist/git/operations.js.map +1 -1
  148. package/dist/index.d.ts +9 -0
  149. package/dist/index.d.ts.map +1 -1
  150. package/dist/index.js +14 -0
  151. package/dist/index.js.map +1 -1
  152. package/dist/knowledge/index_manager.d.ts +7 -1
  153. package/dist/knowledge/index_manager.d.ts.map +1 -1
  154. package/dist/knowledge/index_manager.js +112 -37
  155. package/dist/knowledge/index_manager.js.map +1 -1
  156. package/dist/knowledge/loader.d.ts +31 -0
  157. package/dist/knowledge/loader.d.ts.map +1 -1
  158. package/dist/knowledge/loader.js +102 -8
  159. package/dist/knowledge/loader.js.map +1 -1
  160. package/dist/types.d.ts +608 -0
  161. package/dist/types.d.ts.map +1 -1
  162. package/package.json +1 -1
  163. package/templates/knowledge/acceptance_templates//346/212/200/346/234/257/351/200/211/345/236/213/351/252/214/346/224/266/346/270/205/345/215/225.md +19 -0
  164. package/templates/knowledge/acceptance_templates//351/200/232/347/224/250/350/264/250/351/207/217/351/252/214/346/224/266/346/270/205/345/215/225.md +4 -0
  165. package/templates/knowledge/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +4 -1
  166. package/templates/knowledge/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +34 -0
  167. package/templates/knowledge/review_rules//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +66 -0
  168. package/templates/scaffolds/react/Form.tsx.hbs +9 -1
  169. package/templates/scaffolds/react/List.tsx.hbs +10 -1
  170. package/templates/scaffolds/react/Page.tsx.hbs +4 -1
  171. package/templates/scaffolds/react/service.ts.hbs +29 -0
  172. package/templates/scaffolds/react/types.ts.hbs +7 -1
  173. package/templates/scaffolds/react/use{{ModuleName}}.ts.hbs +34 -2
  174. package/templates/scaffolds/spring-boot/Controller.java.hbs +27 -0
  175. package/templates/scaffolds/spring-boot/DTO.java.hbs +7 -1
  176. package/templates/scaffolds/spring-boot/Entity.java.hbs +11 -1
  177. package/templates/scaffolds/spring-boot/ErrorCode.java.hbs +13 -1
  178. package/templates/scaffolds/spring-boot/Mapper.java.hbs +4 -1
  179. package/templates/scaffolds/spring-boot/PageResponse.java.hbs +24 -1
  180. package/templates/scaffolds/spring-boot/Service.java.hbs +32 -0
  181. package/templates/scaffolds/spring-boot/ServiceImpl.java.hbs +23 -5
  182. package/templates/scaffolds/spring-boot/ServiceTest.java.hbs +7 -1
@@ -1,4 +1,16 @@
1
1
  import type { FailureType } from "../types.js";
2
+ /**
3
+ * 置信度评分器 — 基于多维加权模型评估任务执行结果的置信度。
4
+ *
5
+ * 评分维度(四维加权):
6
+ * 1. 执行结果(权重 0.2):首次成功 > 重试成功 > 失败
7
+ * 2. 可追溯性(权重 0.3):是否有明确的根因
8
+ * 3. 可复用性(权重 0.2):匹配到的已知模式数量(越多越好,上限 3 个)
9
+ * 4. 新颖性(权重 0.3):是否匹配到已有模式(匹配到则置信度更高)
10
+ *
11
+ * 特殊规则:降级模式下,最终得分乘以 0.5 的惩罚系数。
12
+ */
13
+ /** 置信度评分输入参数 */
2
14
  export interface ConfidenceInput {
3
15
  result: "success" | "failure";
4
16
  retryCount: number;
@@ -7,5 +19,14 @@ export interface ConfidenceInput {
7
19
  hasClearRootCause: boolean;
8
20
  isDegraded: boolean;
9
21
  }
22
+ /**
23
+ * 计算任务执行结果的置信度得分。
24
+ *
25
+ * 加权模型:执行结果(0.2) + 可追溯性(0.3) + 可复用性(0.2) + 新颖性(0.3)
26
+ * 最终得分范围 [0, 1],保留两位小数。降级模式下得分减半。
27
+ *
28
+ * @param input - 置信度评分输入参数
29
+ * @returns 置信度得分(0 到 1 之间的浮点数)
30
+ */
10
31
  export declare function scoreConfidence(input: ConfidenceInput): number;
11
32
  //# sourceMappingURL=confidence_scorer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"confidence_scorer.d.ts","sourceRoot":"","sources":["../../src/engine/confidence_scorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAkC9D"}
1
+ {"version":3,"file":"confidence_scorer.d.ts","sourceRoot":"","sources":["../../src/engine/confidence_scorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;;;;GAUG;AAEH,gBAAgB;AAChB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAsC9D"}
@@ -1,27 +1,40 @@
1
+ /**
2
+ * 计算任务执行结果的置信度得分。
3
+ *
4
+ * 加权模型:执行结果(0.2) + 可追溯性(0.3) + 可复用性(0.2) + 新颖性(0.3)
5
+ * 最终得分范围 [0, 1],保留两位小数。降级模式下得分减半。
6
+ *
7
+ * @param input - 置信度评分输入参数
8
+ * @returns 置信度得分(0 到 1 之间的浮点数)
9
+ */
1
10
  export function scoreConfidence(input) {
2
11
  let score = 0;
3
12
  // 维度 1: 执行结果(权重 0.2)
13
+ // 首次成功得分最高(1.0),每次重试递减,失败最低(0.1)
4
14
  const resultScore = {
5
- success_first_try: 1.0,
6
- success_retry1: 0.7,
7
- success_retry2: 0.4,
8
- failure: 0.1,
15
+ success_first_try: 1.0, // 首次即成功
16
+ success_retry1: 0.7, // 第 1 次重试后成功
17
+ success_retry2: 0.4, // 第 2 次重试后成功
18
+ failure: 0.1, // 最终失败
9
19
  };
10
20
  const resultKey = input.result === "success"
11
21
  ? (input.retryCount === 0 ? "success_first_try" : input.retryCount === 1 ? "success_retry1" : "success_retry2")
12
22
  : "failure";
13
23
  score += resultScore[resultKey] * 0.2;
14
24
  // 维度 2: 可追溯性(权重 0.3)
25
+ // 有明确根因 → 高分(1.0);无根因 → 低分(0.3)
15
26
  const traceScore = input.hasClearRootCause ? 1.0 : 0.3;
16
27
  score += traceScore * 0.3;
17
28
  // 维度 3: 可复用性(权重 0.2)
29
+ // 已匹配的模式越多 → 可复用性越高,上限 3 个模式即为满分
18
30
  const reuseScore = Math.min(input.matchedPatternsCount / 3, 1.0);
19
31
  score += reuseScore * 0.2;
20
32
  // 维度 4: 新颖性(权重 0.3)
21
- // 匹配到的模式越多 = 新颖性越低 = 置信度越高(强化已有模式)
33
+ // 匹配到已有模式 新颖性低 强化已有知识 → 高分(0.8)
34
+ // 无模式匹配 → 新问题 → 知识不确定性高 → 低分(0.4)
22
35
  const noveltyScore = input.matchedPatternsCount > 0 ? 0.8 : 0.4;
23
36
  score += noveltyScore * 0.3;
24
- // 降级模式惩罚
37
+ // 降级模式惩罚:在受限条件下完成,结果可靠性降低
25
38
  if (input.isDegraded) {
26
39
  score *= 0.5;
27
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"confidence_scorer.js","sourceRoot":"","sources":["../../src/engine/confidence_scorer.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,eAAe,CAAC,KAAsB;IACpD,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,qBAAqB;IACrB,MAAM,WAAW,GAA2B;QAC1C,iBAAiB,EAAE,GAAG;QACtB,cAAc,EAAE,GAAG;QACnB,cAAc,EAAE,GAAG;QACnB,OAAO,EAAE,GAAG;KACb,CAAC;IACF,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS;QAC1C,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC/G,CAAC,CAAC,SAAS,CAAC;IACd,KAAK,IAAI,WAAW,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAEtC,qBAAqB;IACrB,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACvD,KAAK,IAAI,UAAU,GAAG,GAAG,CAAC;IAE1B,qBAAqB;IACrB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACjE,KAAK,IAAI,UAAU,GAAG,GAAG,CAAC;IAE1B,oBAAoB;IACpB,mCAAmC;IACnC,MAAM,YAAY,GAAG,KAAK,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAChE,KAAK,IAAI,YAAY,GAAG,GAAG,CAAC;IAE5B,SAAS;IACT,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,KAAK,IAAI,GAAG,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"confidence_scorer.js","sourceRoot":"","sources":["../../src/engine/confidence_scorer.ts"],"names":[],"mappings":"AAwBA;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,KAAsB;IACpD,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,qBAAqB;IACrB,iCAAiC;IACjC,MAAM,WAAW,GAA2B;QAC1C,iBAAiB,EAAE,GAAG,EAAI,QAAQ;QAClC,cAAc,EAAE,GAAG,EAAO,aAAa;QACvC,cAAc,EAAE,GAAG,EAAO,aAAa;QACvC,OAAO,EAAE,GAAG,EAAc,OAAO;KAClC,CAAC;IACF,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS;QAC1C,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC/G,CAAC,CAAC,SAAS,CAAC;IACd,KAAK,IAAI,WAAW,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAEtC,qBAAqB;IACrB,gCAAgC;IAChC,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACvD,KAAK,IAAI,UAAU,GAAG,GAAG,CAAC;IAE1B,qBAAqB;IACrB,iCAAiC;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACjE,KAAK,IAAI,UAAU,GAAG,GAAG,CAAC;IAE1B,oBAAoB;IACpB,oCAAoC;IACpC,kCAAkC;IAClC,MAAM,YAAY,GAAG,KAAK,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAChE,KAAK,IAAI,YAAY,GAAG,GAAG,CAAC;IAE5B,0BAA0B;IAC1B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,KAAK,IAAI,GAAG,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AACvC,CAAC"}
@@ -1,10 +1,33 @@
1
1
  import type { ProjectConfig, ContractCheckResult } from "../types.js";
2
2
  import type { GitOperations } from "./git_deps.js";
3
+ /**
4
+ * 契约守卫 — 检测代码变更中的 API 契约破坏性变更。
5
+ *
6
+ * 通过解析 Git diff,识别以下类型的契约变更:
7
+ * - API 端点的新增/删除(Spring MVC 注解、Express 路由)
8
+ * - HTTP 方法的变更(同一路径上方法改变)
9
+ * - DTO/Entity 字段的新增/删除/类型变更(Java 和 TypeScript)
10
+ * - 跨服务影响分析(多仓库场景下评估对前端的冲击)
11
+ */
12
+ /** 契约守卫输入参数 */
3
13
  export interface ContractGuardInput {
4
14
  changedFiles: string[];
5
15
  projectPath: string;
6
16
  config: ProjectConfig;
7
17
  gitOps: GitOperations;
8
18
  }
19
+ /**
20
+ * 检测变更文件中的 API 契约变更。
21
+ *
22
+ * 处理流程:
23
+ * 1. 筛选出与 API 契约相关的文件
24
+ * 2. 获取每个文件的 Git diff
25
+ * 3. 解析 diff 中的端点变更和字段变更
26
+ * 4. 后处理:将同一路径的删除+新增配对为方法变更
27
+ * 5. 评估跨服务影响并生成摘要
28
+ *
29
+ * @param input - 契约检查输入,包含变更文件列表、项目路径、配置和 Git 操作接口
30
+ * @returns 契约检查结果,包含变更列表、破坏性/兼容性变更计数和跨服务影响
31
+ */
9
32
  export declare function checkContractChanges(input: ContractGuardInput): Promise<ContractCheckResult>;
10
33
  //# sourceMappingURL=contract_guard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract_guard.d.ts","sourceRoot":"","sources":["../../src/engine/contract_guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;CACvB;AAkBD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CA6D9B"}
1
+ {"version":3,"file":"contract_guard.d.ts","sourceRoot":"","sources":["../../src/engine/contract_guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD;;;;;;;;GAQG;AAEH,eAAe;AACf,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;CACvB;AAkBD;;;;;;;;;;;;GAYG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CA6D9B"}
@@ -1,4 +1,7 @@
1
- // ── API contract file path keywords ──
1
+ /**
2
+ * API 契约文件路径关键词。
3
+ * 文件路径(小写)包含这些关键词的,被视为 API 契约相关文件,需要进行 diff 解析。
4
+ */
2
5
  const API_PATH_KEYWORDS = [
3
6
  "controller",
4
7
  "route",
@@ -10,16 +13,28 @@ const API_PATH_KEYWORDS = [
10
13
  "entity",
11
14
  "schema",
12
15
  ];
13
- // ── Main function ──
16
+ /**
17
+ * 检测变更文件中的 API 契约变更。
18
+ *
19
+ * 处理流程:
20
+ * 1. 筛选出与 API 契约相关的文件
21
+ * 2. 获取每个文件的 Git diff
22
+ * 3. 解析 diff 中的端点变更和字段变更
23
+ * 4. 后处理:将同一路径的删除+新增配对为方法变更
24
+ * 5. 评估跨服务影响并生成摘要
25
+ *
26
+ * @param input - 契约检查输入,包含变更文件列表、项目路径、配置和 Git 操作接口
27
+ * @returns 契约检查结果,包含变更列表、破坏性/兼容性变更计数和跨服务影响
28
+ */
14
29
  export async function checkContractChanges(input) {
15
30
  const { changedFiles, projectPath, config, gitOps } = input;
16
31
  const changes = [];
17
- // Filter to API-contract-relevant files
32
+ // 筛选出 API 契约相关文件(controller、dto、route 等)
18
33
  const contractFiles = changedFiles.filter((f) => isApiContractFile(f));
19
34
  if (contractFiles.length === 0) {
20
35
  return emptyResult("No API contract files changed.");
21
36
  }
22
- // Collect diffs for each contract file
37
+ // 收集每个契约文件的 diff 内容(仅暂存区的变更)
23
38
  const diffs = [];
24
39
  for (const file of contractFiles) {
25
40
  try {
@@ -37,15 +52,15 @@ export async function checkContractChanges(input) {
37
52
  if (diffs.length === 0) {
38
53
  return emptyResult("No diff content found in API contract files.");
39
54
  }
40
- // Parse each diff for contract changes
55
+ // 解析每个 diff 中的契约变更(端点变更、字段变更等)
41
56
  for (const { file, diff } of diffs) {
42
57
  const parsed = parseDiffForContractChanges(file, diff);
43
58
  changes.push(...parsed);
44
59
  }
45
- // Tally
60
+ // 统计破坏性变更和兼容性变更
46
61
  const breaking = changes.filter((c) => c.severity === "breaking");
47
62
  const compatible = changes.filter((c) => c.severity === "compatible");
48
- // Cross-service impact analysis
63
+ // 跨服务影响分析(仅在多仓库场景下有意义)
49
64
  const crossServiceImpact = analyzeCrossServiceImpact(breaking, config);
50
65
  const summary = buildSummary(changes.length, breaking.length, compatible.length, crossServiceImpact);
51
66
  return {
@@ -57,39 +72,58 @@ export async function checkContractChanges(input) {
57
72
  summary,
58
73
  };
59
74
  }
60
- // ── File classification ──
75
+ /**
76
+ * 判断文件是否为 API 契约相关文件。
77
+ * 通过路径关键词匹配,覆盖 controller、route、dto、schema 等类型。
78
+ * @param filePath - 文件路径
79
+ * @returns true 表示该文件属于 API 契约文件
80
+ */
61
81
  function isApiContractFile(filePath) {
62
82
  const lower = filePath.toLowerCase();
63
83
  return API_PATH_KEYWORDS.some((kw) => lower.includes(kw));
64
84
  }
65
- // ── Diff parsing ──
85
+ /**
86
+ * 解析 Git diff 内容,识别其中的 API 契约变更。
87
+ *
88
+ * 解析策略(按优先级):
89
+ * 1. Spring MVC 注解变更(@GetMapping、@PostMapping 等)
90
+ * 2. Express 路由变更(router.get()、router.post() 等)
91
+ * 3. DTO/Entity 字段变更(Java 和 TypeScript 字段定义)
92
+ *
93
+ * 后处理步骤:将同一路径的 path_removed + path_added 配对为 method_changed。
94
+ *
95
+ * @param file - 文件路径
96
+ * @param diff - Git diff 文本
97
+ * @returns 契约变更列表
98
+ */
66
99
  function parseDiffForContractChanges(file, diff) {
67
100
  const changes = [];
68
101
  const lines = diff.split("\n");
102
+ // 已消费的行索引集合,防止同一行被多个规则重复匹配
69
103
  const consumedIndices = new Set();
70
104
  for (let i = 0; i < lines.length; i++) {
71
105
  if (consumedIndices.has(i))
72
106
  continue;
73
107
  const line = lines[i];
74
- // Only look at added/removed lines (skip diff metadata headers)
108
+ // 仅处理新增行(+)和删除行(-),跳过 diff 元数据行(+++、---)
75
109
  const isAdded = line.startsWith("+") && !line.startsWith("+++");
76
110
  const isRemoved = line.startsWith("-") && !line.startsWith("---");
77
111
  if (!isAdded && !isRemoved)
78
112
  continue;
79
- const content = line.slice(1); // strip leading +/- (and the space)
80
- // Spring MVC annotations
113
+ const content = line.slice(1); // 去掉行首的 +/- 和空格,获取实际内容
114
+ // 检测 1: Spring MVC 注解变更
81
115
  const springChange = detectSpringAnnotationChange(content, isAdded, isRemoved, file);
82
116
  if (springChange) {
83
117
  changes.push(springChange);
84
118
  continue;
85
119
  }
86
- // Express route definitions
120
+ // 检测 2: Express 路由变更
87
121
  const expressChange = detectExpressRouteChange(content, isAdded, isRemoved, file);
88
122
  if (expressChange) {
89
123
  changes.push(expressChange);
90
124
  continue;
91
125
  }
92
- // DTO/Entity field changes
126
+ // 检测 3: DTO/Entity 字段变更
93
127
  const fieldChange = detectFieldChange(content, isAdded, isRemoved, file, lines, i, consumedIndices);
94
128
  if (fieldChange) {
95
129
  changes.push(fieldChange);
@@ -99,17 +133,23 @@ function parseDiffForContractChanges(file, diff) {
99
133
  }
100
134
  }
101
135
  }
102
- // Post-process: detect HTTP method changes on same path
103
- // Pair path_removed + path_added with the same URL path into method_changed
136
+ // 后处理:检测同一路径上的 HTTP 方法变更
137
+ // path_removed + path_added URL 路径相同的配对为 method_changed(破坏性变更)
104
138
  const methodChanged = detectMethodChanges(changes);
105
139
  return methodChanged;
106
140
  }
107
- // ── HTTP method change detection ──
141
+ /**
142
+ * 检测 HTTP 方法变更。
143
+ * 将同一路径的 path_removed 和 path_added 配对,
144
+ * 如果 HTTP 方法不同则合并为一个 method_changed 变更。
145
+ * @param changes - 原始契约变更列表
146
+ * @returns 合并后的契约变更列表(method_changed + 未消费的原始变更)
147
+ */
108
148
  function detectMethodChanges(changes) {
109
149
  const removed = new Map();
110
150
  const added = new Map();
111
151
  const consumed = new Set();
112
- // Index removed and added path changes by their URL path
152
+ // URL 路径建立索引,用于快速配对删除和新增的端点
113
153
  for (let i = 0; i < changes.length; i++) {
114
154
  const change = changes[i];
115
155
  if (change.change_type === "path_removed") {
@@ -123,7 +163,7 @@ function detectMethodChanges(changes) {
123
163
  added.set(pathStr, change);
124
164
  }
125
165
  }
126
- // Find matching pairs (same URL path, different HTTP method)
166
+ // 查找匹配对:同一 URL 路径但不同 HTTP 方法的删除+新增
127
167
  const result = [];
128
168
  for (const [urlPath, removedChange] of removed) {
129
169
  const addedChange = added.get(urlPath);
@@ -153,29 +193,50 @@ function detectMethodChanges(changes) {
153
193
  }
154
194
  return result;
155
195
  }
196
+ /**
197
+ * 从端点描述字符串中提取 URL 路径。
198
+ * 支持格式如 "GetMapping /api/v1/users" 或 "GET /api/v1/users"。
199
+ * @param endpointStr - 端点描述字符串
200
+ * @returns 提取到的 URL 路径,匹配失败返回 null
201
+ */
156
202
  function extractPath(endpointStr) {
157
- // Extract URL path from strings like "GetMapping /api/v1/users" or "GET /api/v1/users"
203
+ // 匹配以 / 开头的路径,支持字母、数字、连字符、花括号(路径参数)、点和斜杠
158
204
  const match = endpointStr.match(/\/[\w\-{}./]+/);
159
205
  return match ? match[0] : null;
160
206
  }
207
+ /**
208
+ * 从端点描述字符串中提取 HTTP 方法。
209
+ * 支持 Spring 注解风格(GetMapping)和标准 HTTP 方法风格(GET)。
210
+ * @param endpointStr - 端点描述字符串
211
+ * @returns HTTP 方法字符串,匹配失败返回 null
212
+ */
161
213
  function extractHttpMethod(endpointStr) {
162
- // Extract HTTP method from strings like "GetMapping /api/v1/users" or "GET /api/v1/users"
214
+ // 匹配 Spring 注解风格的方法名(如 GetMapping、PostMapping)
163
215
  const match = endpointStr.match(/^(Get|Post|Put|Delete|Patch|Mapping)\w*\s/i);
164
216
  if (match) {
165
217
  const raw = match[1].toUpperCase();
166
- // Map Spring annotation names to HTTP methods
218
+ // Spring 注解名映射为标准 HTTP 方法
167
219
  const methodMap = {
168
220
  GET: "GET", POST: "POST", PUT: "PUT", DELETE: "DELETE", PATCH: "PATCH",
169
- REQUESTMAPPING: "REQUEST",
221
+ REQUESTMAPPING: "REQUEST", // 通用映射,不区分方法
170
222
  };
171
223
  return methodMap[raw] ?? raw;
172
224
  }
173
- // Try uppercase HTTP method
225
+ // 回退:匹配标准大写 HTTP 方法(如 GET、POST)
174
226
  const httpMatch = endpointStr.match(/^(GET|POST|PUT|DELETE|PATCH)\s/);
175
227
  return httpMatch ? httpMatch[1] : null;
176
228
  }
177
- // ── Spring annotation detection ──
229
+ /**
230
+ * 检测 Spring MVC 注解变更。
231
+ * 匹配 @GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@RequestMapping。
232
+ * @param content - diff 行内容(已去除 +/- 前缀)
233
+ * @param isAdded - 是否为新增行
234
+ * @param isRemoved - 是否为删除行
235
+ * @param file - 文件路径
236
+ * @returns 契约变更对象,未匹配返回 null
237
+ */
178
238
  function detectSpringAnnotationChange(content, isAdded, isRemoved, file) {
239
+ // Spring MVC 注解正则:匹配 @XxxMapping(value="/path") 或 @XxxMapping("/path") 形式
179
240
  const springAnnotationRe = /^\s*@(?<method>RequestMapping|GetMapping|PostMapping|PutMapping|DeleteMapping)\s*\(?\s*(?:value\s*=\s*)?["'`](?<path>\/[^"'`]*)["'`]/;
180
241
  const match = content.match(springAnnotationRe);
181
242
  if (!match)
@@ -202,8 +263,17 @@ function detectSpringAnnotationChange(content, isAdded, isRemoved, file) {
202
263
  }
203
264
  return null;
204
265
  }
205
- // ── Express route detection ──
266
+ /**
267
+ * 检测 Express 路由变更。
268
+ * 匹配 router.get()、router.post()、router.put()、router.delete()、router.patch() 形式。
269
+ * @param content - diff 行内容(已去除 +/- 前缀)
270
+ * @param isAdded - 是否为新增行
271
+ * @param isRemoved - 是否为删除行
272
+ * @param file - 文件路径
273
+ * @returns 契约变更对象,未匹配返回 null
274
+ */
206
275
  function detectExpressRouteChange(content, isAdded, isRemoved, file) {
276
+ // Express 路由正则:匹配 router.method('/path') 形式
207
277
  const expressRouteRe = /router\.(?<method>get|post|put|delete|patch)\s*\(\s*['"`](?<path>\/[^'"`]*)['"`]/;
208
278
  const match = content.match(expressRouteRe);
209
279
  if (!match)
@@ -230,11 +300,23 @@ function detectExpressRouteChange(content, isAdded, isRemoved, file) {
230
300
  }
231
301
  return null;
232
302
  }
233
- // ── Field change detection ──
303
+ /**
304
+ * 检测 DTO/Entity 字段变更。
305
+ * 支持 Java 字段声明(private Type name)和 TypeScript 字段声明(name: Type)。
306
+ * 当同一字段名出现删除和新增时,会尝试识别为类型变更。
307
+ * @param content - diff 行内容(已去除 +/- 前缀)
308
+ * @param isAdded - 是否为新增行
309
+ * @param isRemoved - 是否为删除行
310
+ * @param file - 文件路径
311
+ * @param lines - diff 全部行(用于向前/向后查找关联行)
312
+ * @param currentIndex - 当前行索引
313
+ * @param consumedIndices - 已消费行索引集合(用于避免重复匹配)
314
+ * @returns 契约变更对象,未匹配返回 null
315
+ */
234
316
  function detectFieldChange(content, isAdded, isRemoved, file, lines, currentIndex, consumedIndices) {
235
- // Java: private Type fieldName;
317
+ // Java 字段正则:匹配 private/protected/public Type fieldName 形式
236
318
  const javaFieldRe = /^\s*(private|protected|public)\s+(?<type>[\w<>[\]]+)\s+(?<name>\w+)/;
237
- // TypeScript: fieldName: Type; or fieldName?: Type;
319
+ // TypeScript 字段正则:匹配 fieldName: Type fieldName?: Type 形式
238
320
  const tsFieldRe = /^\s*(?<name>\w+)\s*(?<optional>\??):\s*(?<type>[\w<>[\]|.]+)\s*[;=]?/;
239
321
  const javaMatch = content.match(javaFieldRe);
240
322
  const tsMatch = !javaMatch ? content.match(tsFieldRe) : null;
@@ -242,7 +324,7 @@ function detectFieldChange(content, isAdded, isRemoved, file, lines, currentInde
242
324
  const { type, name } = javaMatch.groups;
243
325
  const fieldName = `${name}: ${type}`;
244
326
  if (isAdded) {
245
- // Check if there's a preceding - line with the same field name (type change detection)
327
+ // 尝试在同一字段名下查找关联的删除行,检测类型变更
246
328
  const typeChange = detectTypeChangeForField(name, lines, currentIndex, consumedIndices);
247
329
  if (typeChange) {
248
330
  return {
@@ -263,7 +345,7 @@ function detectFieldChange(content, isAdded, isRemoved, file, lines, currentInde
263
345
  };
264
346
  }
265
347
  if (isRemoved) {
266
- // Check if the next line is a similar field addition (type change detection)
348
+ // 尝试在同一字段名下查找关联的新增行,检测类型变更
267
349
  const typeChange = detectTypeChangeForField(name, lines, currentIndex, consumedIndices);
268
350
  if (typeChange) {
269
351
  return {
@@ -289,7 +371,7 @@ function detectFieldChange(content, isAdded, isRemoved, file, lines, currentInde
289
371
  const optional = tsMatch.groups.optional === "?";
290
372
  const fieldName = `${name}${optional ? "?" : ""}: ${type}`;
291
373
  if (isAdded) {
292
- // Check if there's a preceding - line with the same field name (type change detection)
374
+ // 尝试在同一字段名下查找关联的删除行,检测类型变更
293
375
  const typeChange = detectTypeChangeForField(name, lines, currentIndex, consumedIndices);
294
376
  if (typeChange) {
295
377
  return {
@@ -332,7 +414,16 @@ function detectFieldChange(content, isAdded, isRemoved, file, lines, currentInde
332
414
  }
333
415
  return null;
334
416
  }
335
- // ── Type change detection (adjacent -/+ lines with same field name) ──
417
+ /**
418
+ * 检测字段的类型变更。
419
+ * 在 diff 的相邻行中查找同名字段但类型不同的删除/新增行对。
420
+ * 搜索范围限制为前后各 5 行,避免误匹配距离太远的无关行。
421
+ * @param fieldName - 字段名称
422
+ * @param lines - diff 全部行
423
+ * @param currentIndex - 当前行索引
424
+ * @param consumedIndices - 已消费行索引集合
425
+ * @returns 类型变更信息(变更前后的类型字符串),未检测到返回 null
426
+ */
336
427
  function detectTypeChangeForField(fieldName, lines, currentIndex, consumedIndices) {
337
428
  const javaRe = /^\s*(private|protected|public)\s+(?<type>[\w<>[\]]+)\s+(?<name>\w+)/;
338
429
  const tsRe = /^\s*(?<name>\w+)\s*(?<optional>\??):\s*(?<type>[\w<>[\]|.]+)\s*[;=]?/;
@@ -357,9 +448,9 @@ function detectTypeChangeForField(fieldName, lines, currentIndex, consumedIndice
357
448
  function getCurrentTypeInfo() {
358
449
  return extractTypeInfo(currentIndex);
359
450
  }
360
- const maxLook = 5;
451
+ const maxLook = 5; // 最大向前/向后查找行数
361
452
  if (isRemoved) {
362
- // Look ahead for a + line with the same field name but different type
453
+ // 删除行:向前查找同名字段的新增行(- 行后面紧跟 + 行)
363
454
  for (let j = currentIndex + 1; j < Math.min(currentIndex + maxLook, lines.length); j++) {
364
455
  if (consumedIndices.has(j))
365
456
  continue;
@@ -372,7 +463,7 @@ function detectTypeChangeForField(fieldName, lines, currentIndex, consumedIndice
372
463
  }
373
464
  }
374
465
  }
375
- // Also look backward for a + line (when - comes after + in the diff)
466
+ // 也在后方查找(diff - 行出现在 + 行之后的情况)
376
467
  for (let j = currentIndex - 1; j >= Math.max(0, currentIndex - maxLook); j--) {
377
468
  if (consumedIndices.has(j))
378
469
  continue;
@@ -387,7 +478,7 @@ function detectTypeChangeForField(fieldName, lines, currentIndex, consumedIndice
387
478
  }
388
479
  }
389
480
  if (isAdded) {
390
- // Look backward for a - line with the same field name but different type
481
+ // 新增行:向后查找同名字段的删除行(+ 行前面是 - 行)
391
482
  for (let j = currentIndex - 1; j >= Math.max(0, currentIndex - maxLook); j--) {
392
483
  if (consumedIndices.has(j))
393
484
  continue;
@@ -400,7 +491,7 @@ function detectTypeChangeForField(fieldName, lines, currentIndex, consumedIndice
400
491
  }
401
492
  }
402
493
  }
403
- // Also look forward for a - line (when + comes before - in the diff)
494
+ // 也在前方查找(diff + 行出现在 - 行之前的情况)
404
495
  for (let j = currentIndex + 1; j < Math.min(currentIndex + maxLook, lines.length); j++) {
405
496
  if (consumedIndices.has(j))
406
497
  continue;
@@ -416,13 +507,20 @@ function detectTypeChangeForField(fieldName, lines, currentIndex, consumedIndice
416
507
  }
417
508
  return null;
418
509
  }
419
- // ── Cross-service impact analysis ──
510
+ /**
511
+ * 分析破坏性变更的跨服务影响。
512
+ * 仅在多仓库(多服务)场景下有效。当前版本将所有破坏性端点
513
+ * 归类为对前端的潜在影响。
514
+ * @param breakingChanges - 破坏性变更列表
515
+ * @param config - 项目配置
516
+ * @returns 受影响的服务列表及其关联端点
517
+ */
420
518
  function analyzeCrossServiceImpact(breakingChanges, config) {
421
519
  const impact = [];
422
- // Only relevant if the project has multiple repos (multi-service)
520
+ // 仅在多仓库(微服务)场景下进行跨服务影响分析
423
521
  if (config.repos.length < 2)
424
522
  return impact;
425
- // Extract impacted endpoint paths from breaking changes
523
+ // 从破坏性变更中提取受影响的端点路径
426
524
  const affectedEndpoints = [];
427
525
  for (const change of breakingChanges) {
428
526
  if (change.change_type === "path_removed" ||
@@ -441,7 +539,14 @@ function analyzeCrossServiceImpact(breakingChanges, config) {
441
539
  }
442
540
  return impact;
443
541
  }
444
- // ── Summary builder ──
542
+ /**
543
+ * 构建契约检查的人类可读摘要。
544
+ * @param total - 变更总数
545
+ * @param breaking - 破坏性变更数
546
+ * @param compatible - 兼容性变更数
547
+ * @param crossService - 跨服务影响列表
548
+ * @returns 摘要文本
549
+ */
445
550
  function buildSummary(total, breaking, compatible, crossService) {
446
551
  const parts = [];
447
552
  if (total === 0) {
@@ -457,7 +562,11 @@ function buildSummary(total, breaking, compatible, crossService) {
457
562
  }
458
563
  return parts.join(" ");
459
564
  }
460
- // ── Empty result helper ──
565
+ /**
566
+ * 创建空的契约检查结果。
567
+ * @param summary - 摘要说明(通常描述为何无变更)
568
+ * @returns 所有计数为零的空契约检查结果
569
+ */
461
570
  function emptyResult(summary) {
462
571
  return {
463
572
  changes: [],
@@ -1 +1 @@
1
- {"version":3,"file":"contract_guard.js","sourceRoot":"","sources":["../../src/engine/contract_guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract_guard.js","sourceRoot":"","sources":["../../src/engine/contract_guard.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,27 @@
1
+ /**
2
+ * 代码惯例检测模块。
3
+ * @description 通过分析源代码文件内容和项目惯例配置文件,自动识别项目的编码规范和模式。
4
+ * 支持 Spring/Java 和 React/TypeScript 两种技术栈的惯例检测。
5
+ */
6
+ /**
7
+ * 检测到的代码惯例条目。
8
+ */
1
9
  export interface Convention {
10
+ /** 文件匹配模式(glob 或具体文件路径) */
2
11
  file_pattern: string;
12
+ /** 惯例描述文本 */
3
13
  convention: string;
14
+ /** 惯例示例代码(可选) */
4
15
  example?: string;
5
16
  }
17
+ /**
18
+ * 检测项目代码惯例。
19
+ * @description 优先加载项目中配置的惯例文件(支持 YAML front-matter 格式),
20
+ * 然后逐个分析源文件,识别特定的编码模式。最多返回 10 条惯例。
21
+ * @param filePaths - 待分析的文件路径列表
22
+ * @param projectPath - 项目根目录路径(用于解析相对路径)
23
+ * @param conventionsFile - 惯例配置文件路径(可选)
24
+ * @returns 检测到的惯例列表
25
+ */
6
26
  export declare function detectConventions(filePaths: string[], projectPath: string, conventionsFile?: string): Promise<Convention[]>;
7
27
  //# sourceMappingURL=convention_detector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convention_detector.d.ts","sourceRoot":"","sources":["../../src/engine/convention_detector.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,UAAU,EAAE,CAAC,CA0CvB"}
1
+ {"version":3,"file":"convention_detector.d.ts","sourceRoot":"","sources":["../../src/engine/convention_detector.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,UAAU,EAAE,CAAC,CA0CvB"}