@gitwand/core 3.8.0 → 3.9.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 (192) hide show
  1. package/dist/__tests__/accuracy-lot1.test.d.ts +14 -0
  2. package/dist/__tests__/accuracy-lot1.test.d.ts.map +1 -0
  3. package/dist/__tests__/accuracy-lot1.test.js +154 -0
  4. package/dist/__tests__/accuracy-lot1.test.js.map +1 -0
  5. package/dist/__tests__/confidence-v14.test.js +2 -2
  6. package/dist/__tests__/confidence-v14.test.js.map +1 -1
  7. package/dist/__tests__/conventions.test.d.ts +10 -0
  8. package/dist/__tests__/conventions.test.d.ts.map +1 -0
  9. package/dist/__tests__/conventions.test.js +121 -0
  10. package/dist/__tests__/conventions.test.js.map +1 -0
  11. package/dist/__tests__/corpus.d.ts.map +1 -1
  12. package/dist/__tests__/corpus.js +44 -5
  13. package/dist/__tests__/corpus.js.map +1 -1
  14. package/dist/__tests__/english-output.test.d.ts +2 -0
  15. package/dist/__tests__/english-output.test.d.ts.map +1 -0
  16. package/dist/__tests__/english-output.test.js +56 -0
  17. package/dist/__tests__/english-output.test.js.map +1 -0
  18. package/dist/__tests__/format-resolvers.test.js +2 -2
  19. package/dist/__tests__/format-resolvers.test.js.map +1 -1
  20. package/dist/__tests__/llm-refactoring-coupling.test.d.ts +1 -1
  21. package/dist/__tests__/llm-refactoring-coupling.test.js +1 -1
  22. package/dist/__tests__/merge-context.test.d.ts +15 -0
  23. package/dist/__tests__/merge-context.test.d.ts.map +1 -0
  24. package/dist/__tests__/merge-context.test.js +78 -0
  25. package/dist/__tests__/merge-context.test.js.map +1 -0
  26. package/dist/__tests__/patterns/insertion-at-boundary.test.js +1 -1
  27. package/dist/__tests__/patterns/insertion-at-boundary.test.js.map +1 -1
  28. package/dist/__tests__/patterns/llm-proposed.test.js +1 -1
  29. package/dist/__tests__/patterns/llm-proposed.test.js.map +1 -1
  30. package/dist/__tests__/patterns/reorder-only.test.js +2 -2
  31. package/dist/__tests__/patterns/reorder-only.test.js.map +1 -1
  32. package/dist/__tests__/patterns/token-level-merge.test.js +4 -4
  33. package/dist/__tests__/patterns/token-level-merge.test.js.map +1 -1
  34. package/dist/__tests__/patterns/value-only-change.test.js +11 -9
  35. package/dist/__tests__/patterns/value-only-change.test.js.map +1 -1
  36. package/dist/__tests__/regenerate/plan.test.d.ts +12 -0
  37. package/dist/__tests__/regenerate/plan.test.d.ts.map +1 -0
  38. package/dist/__tests__/regenerate/plan.test.js +126 -0
  39. package/dist/__tests__/regenerate/plan.test.js.map +1 -0
  40. package/dist/__tests__/regenerate/registry.test.d.ts +8 -0
  41. package/dist/__tests__/regenerate/registry.test.d.ts.map +1 -0
  42. package/dist/__tests__/regenerate/registry.test.js +60 -0
  43. package/dist/__tests__/regenerate/registry.test.js.map +1 -0
  44. package/dist/__tests__/regenerate-integration.test.d.ts +31 -0
  45. package/dist/__tests__/regenerate-integration.test.d.ts.map +1 -0
  46. package/dist/__tests__/regenerate-integration.test.js +199 -0
  47. package/dist/__tests__/regenerate-integration.test.js.map +1 -0
  48. package/dist/__tests__/regression-guard-tiers.test.d.ts +1 -1
  49. package/dist/__tests__/regression-guard-tiers.test.js +2 -2
  50. package/dist/__tests__/resolver.test.js +14 -6
  51. package/dist/__tests__/resolver.test.js.map +1 -1
  52. package/dist/__tests__/resolvers/cargo.test.js +6 -4
  53. package/dist/__tests__/resolvers/cargo.test.js.map +1 -1
  54. package/dist/__tests__/resolvers/json-fragment.test.d.ts +10 -0
  55. package/dist/__tests__/resolvers/json-fragment.test.d.ts.map +1 -0
  56. package/dist/__tests__/resolvers/json-fragment.test.js +96 -0
  57. package/dist/__tests__/resolvers/json-fragment.test.js.map +1 -0
  58. package/dist/__tests__/resolvers/json.test.js +1 -1
  59. package/dist/__tests__/resolvers/lockfile-npm.test.js +14 -12
  60. package/dist/__tests__/resolvers/lockfile-npm.test.js.map +1 -1
  61. package/dist/__tests__/resolvers/lockfile-pnpm.test.js +14 -12
  62. package/dist/__tests__/resolvers/lockfile-pnpm.test.js.map +1 -1
  63. package/dist/__tests__/resolvers/lockfile-yarn.test.js +14 -12
  64. package/dist/__tests__/resolvers/lockfile-yarn.test.js.map +1 -1
  65. package/dist/__tests__/stats/tiers.test.d.ts +1 -1
  66. package/dist/__tests__/stats/tiers.test.js +4 -3
  67. package/dist/__tests__/stats/tiers.test.js.map +1 -1
  68. package/dist/__tests__/with-base-availability.test.js +2 -2
  69. package/dist/__tests__/with-base-availability.test.js.map +1 -1
  70. package/dist/classifier.js +18 -18
  71. package/dist/classifier.js.map +1 -1
  72. package/dist/config.d.ts +7 -0
  73. package/dist/config.d.ts.map +1 -1
  74. package/dist/config.js +4 -0
  75. package/dist/config.js.map +1 -1
  76. package/dist/conventions/derive.d.ts +21 -0
  77. package/dist/conventions/derive.d.ts.map +1 -0
  78. package/dist/conventions/derive.js +116 -0
  79. package/dist/conventions/derive.js.map +1 -0
  80. package/dist/conventions/types.d.ts +80 -0
  81. package/dist/conventions/types.d.ts.map +1 -0
  82. package/dist/conventions/types.js +21 -0
  83. package/dist/conventions/types.js.map +1 -0
  84. package/dist/index.d.ts +7 -1
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +9 -1
  87. package/dist/index.js.map +1 -1
  88. package/dist/parser.js +1 -1
  89. package/dist/parser.js.map +1 -1
  90. package/dist/patterns/complex.js +4 -4
  91. package/dist/patterns/complex.js.map +1 -1
  92. package/dist/patterns/delete-no-change.js +13 -13
  93. package/dist/patterns/delete-no-change.js.map +1 -1
  94. package/dist/patterns/insertion-at-boundary.js +7 -7
  95. package/dist/patterns/insertion-at-boundary.js.map +1 -1
  96. package/dist/patterns/llm-proposed.js +5 -5
  97. package/dist/patterns/llm-proposed.js.map +1 -1
  98. package/dist/patterns/non-overlapping.js +4 -4
  99. package/dist/patterns/non-overlapping.js.map +1 -1
  100. package/dist/patterns/one-side-change.js +6 -6
  101. package/dist/patterns/one-side-change.js.map +1 -1
  102. package/dist/patterns/refactoring-aware-merge.js +11 -11
  103. package/dist/patterns/refactoring-aware-merge.js.map +1 -1
  104. package/dist/patterns/reorder-only.js +6 -6
  105. package/dist/patterns/reorder-only.js.map +1 -1
  106. package/dist/patterns/same-change.js +4 -4
  107. package/dist/patterns/same-change.js.map +1 -1
  108. package/dist/patterns/token-level-merge.js +6 -6
  109. package/dist/patterns/token-level-merge.js.map +1 -1
  110. package/dist/patterns/utils.d.ts +1 -10
  111. package/dist/patterns/utils.d.ts.map +1 -1
  112. package/dist/patterns/utils.js +46 -7
  113. package/dist/patterns/utils.js.map +1 -1
  114. package/dist/patterns/value-only-change.js +6 -6
  115. package/dist/patterns/value-only-change.js.map +1 -1
  116. package/dist/patterns/whitespace-only.js +6 -6
  117. package/dist/patterns/whitespace-only.js.map +1 -1
  118. package/dist/refactoring/orchestration.js +3 -3
  119. package/dist/refactoring/orchestration.js.map +1 -1
  120. package/dist/regenerate/plan.d.ts +58 -0
  121. package/dist/regenerate/plan.d.ts.map +1 -0
  122. package/dist/regenerate/plan.js +55 -0
  123. package/dist/regenerate/plan.js.map +1 -0
  124. package/dist/regenerate/registry.d.ts +44 -0
  125. package/dist/regenerate/registry.d.ts.map +1 -0
  126. package/dist/regenerate/registry.js +81 -0
  127. package/dist/regenerate/registry.js.map +1 -0
  128. package/dist/resolver/assemble.d.ts.map +1 -1
  129. package/dist/resolver/assemble.js +71 -32
  130. package/dist/resolver/assemble.js.map +1 -1
  131. package/dist/resolver/format-dispatch.d.ts +1 -0
  132. package/dist/resolver/format-dispatch.d.ts.map +1 -1
  133. package/dist/resolver/format-dispatch.js +3 -3
  134. package/dist/resolver/format-dispatch.js.map +1 -1
  135. package/dist/resolver/generated-detection.js +9 -9
  136. package/dist/resolver/generated-detection.js.map +1 -1
  137. package/dist/resolver/index.d.ts.map +1 -1
  138. package/dist/resolver/index.js +228 -18
  139. package/dist/resolver/index.js.map +1 -1
  140. package/dist/resolver/llm-pipeline.js +2 -2
  141. package/dist/resolver/llm-pipeline.js.map +1 -1
  142. package/dist/resolver/policy.d.ts.map +1 -1
  143. package/dist/resolver/policy.js +9 -1
  144. package/dist/resolver/policy.js.map +1 -1
  145. package/dist/resolver/validate-parse-tree.js +2 -2
  146. package/dist/resolver/validate-parse-tree.js.map +1 -1
  147. package/dist/resolver/validation.d.ts +14 -0
  148. package/dist/resolver/validation.d.ts.map +1 -1
  149. package/dist/resolver/validation.js +101 -1
  150. package/dist/resolver/validation.js.map +1 -1
  151. package/dist/resolvers/cargo.js +3 -3
  152. package/dist/resolvers/cargo.js.map +1 -1
  153. package/dist/resolvers/css.js +7 -7
  154. package/dist/resolvers/css.js.map +1 -1
  155. package/dist/resolvers/dispatcher.d.ts.map +1 -1
  156. package/dist/resolvers/dispatcher.js +13 -1
  157. package/dist/resolvers/dispatcher.js.map +1 -1
  158. package/dist/resolvers/dockerfile.js +2 -2
  159. package/dist/resolvers/dockerfile.js.map +1 -1
  160. package/dist/resolvers/dotenv.js +2 -2
  161. package/dist/resolvers/dotenv.js.map +1 -1
  162. package/dist/resolvers/imports.js +11 -11
  163. package/dist/resolvers/imports.js.map +1 -1
  164. package/dist/resolvers/json-fragment.d.ts +48 -0
  165. package/dist/resolvers/json-fragment.d.ts.map +1 -0
  166. package/dist/resolvers/json-fragment.js +196 -0
  167. package/dist/resolvers/json-fragment.js.map +1 -0
  168. package/dist/resolvers/json.js +7 -7
  169. package/dist/resolvers/json.js.map +1 -1
  170. package/dist/resolvers/llm-fallback.js +5 -5
  171. package/dist/resolvers/llm-fallback.js.map +1 -1
  172. package/dist/resolvers/lockfile-npm.js +3 -3
  173. package/dist/resolvers/lockfile-npm.js.map +1 -1
  174. package/dist/resolvers/lockfile-pnpm.js +2 -2
  175. package/dist/resolvers/lockfile-pnpm.js.map +1 -1
  176. package/dist/resolvers/lockfile-yarn.js +3 -3
  177. package/dist/resolvers/lockfile-yarn.js.map +1 -1
  178. package/dist/resolvers/markdown.js +4 -4
  179. package/dist/resolvers/markdown.js.map +1 -1
  180. package/dist/resolvers/vue.js +5 -5
  181. package/dist/resolvers/vue.js.map +1 -1
  182. package/dist/resolvers/yaml.js +6 -6
  183. package/dist/resolvers/yaml.js.map +1 -1
  184. package/dist/stats/tiers.d.ts +1 -1
  185. package/dist/stats/tiers.d.ts.map +1 -1
  186. package/dist/stats/tiers.js +5 -2
  187. package/dist/stats/tiers.js.map +1 -1
  188. package/dist/structural/index.js +3 -3
  189. package/dist/structural/index.js.map +1 -1
  190. package/dist/types.d.ts +83 -2
  191. package/dist/types.d.ts.map +1 -1
  192. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"value-only-change.test.js","sourceRoot":"","sources":["../../../src/__tests__/patterns/value-only-change.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,gEAAgE;AAEhE,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,MAAM,KAAK,GAAG;QACZ,cAAc;QACd,sBAAsB;QACtB,SAAS;QACT,sBAAsB;QACtB,gBAAgB;KACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;IAChE,MAAM,KAAK,GAAG;QACZ,cAAc;QACd,2BAA2B;QAC3B,SAAS;QACT,2BAA2B;QAC3B,gBAAgB;KACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,MAAM,KAAK,GAAG;QACZ,cAAc;QACd,gDAAgD;QAChD,SAAS;QACT,gDAAgD;QAChD,gBAAgB;KACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oEAAoE,EAAE,GAAG,EAAE;IAClF,MAAM,KAAK,GAAG;QACZ,cAAc;QACd,uBAAuB;QACvB,gEAAgE;QAChE,SAAS;QACT,uBAAuB;QACvB,gEAAgE;QAChE,gBAAgB;KACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;IAC1D,MAAM,KAAK,GAAG;QACZ,cAAc;QACd,mEAAmE;QACnE,SAAS;QACT,mEAAmE;QACnE,gBAAgB;KACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gEAAgE;AAEhE,QAAQ,CAAC,oDAAoD,EAAE,GAAG,EAAE;IAClE,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,KAAK,GAAG;YACZ,cAAc;YACd,sBAAsB;YACtB,SAAS;YACT,sBAAsB;YACtB,gBAAgB;SACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,KAAK,GAAG;YACZ,cAAc;YACd,uBAAuB;YACvB,oBAAoB;YACpB,SAAS;YACT,uBAAuB;YACvB,gBAAgB;SACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,KAAK,GAAG;YACZ,cAAc;YACd,2BAA2B;YAC3B,SAAS;YACT,eAAe;YACf,gBAAgB;SACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;QACnF,MAAM,KAAK,GAAG;YACZ,cAAc;YACd,sBAAsB;YACtB,SAAS;YACT,sBAAsB;YACtB,gBAAgB;SACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,KAAK,GAAG;YACZ,cAAc;YACd,0BAA0B;YAC1B,SAAS;YACT,2BAA2B;YAC3B,gBAAgB;SACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAEhF,QAAQ,CAAC,2EAA2E,EAAE,GAAG,EAAE;IACzF,4EAA4E;IAC5E,2EAA2E;IAC3E,yDAAyD;IACzD,EAAE,CAAC,8FAA8F,EAAE,GAAG,EAAE;QACtG,MAAM,KAAK,GAAG;YACZ,cAAc;YACd,qBAAqB;YACrB,cAAc;YACd,qBAAqB;YACrB,SAAS;YACT,qBAAqB;YACrB,gBAAgB;SACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;QAC1F,MAAM,KAAK,GAAG;YACZ,cAAc;YACd,qBAAqB;YACrB,cAAc;YACd,qBAAqB;YACrB,SAAS;YACT,qBAAqB;YACrB,gBAAgB;SACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6EAA6E,EAAE,GAAG,EAAE;IAC3F,sEAAsE;IACtE,yEAAyE;IACzE,uEAAuE;IACvE,uEAAuE;IACvE,sCAAsC;IACtC,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,KAAK,GAAG;YACZ,cAAc;YACd,qBAAqB;YACrB,SAAS;YACT,qBAAqB;YACrB,gBAAgB;SACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,KAAK,GAAG;YACZ,cAAc;YACd,qBAAqB;YACrB,SAAS;YACT,qBAAqB;YACrB,gBAAgB;SACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,KAAK,GAAG;YACZ,cAAc;YACd,+BAA+B;YAC/B,SAAS;YACT,+BAA+B;YAC/B,gBAAgB;SACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACvD,gCAAgC;QAChC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,KAAK,GAAG;YACZ,cAAc;YACd,qBAAqB;YACrB,SAAS;YACT,qBAAqB;YACrB,gBAAgB;SACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAEhF,QAAQ,CAAC,0EAA0E,EAAE,GAAG,EAAE;IACxF,8EAA8E;IAC9E,4EAA4E;IAC5E,0EAA0E;IAC1E,yEAAyE;IACzE,+CAA+C;IAC/C,MAAM,KAAK,GAAG;QACZ,cAAc;QACd,6CAA6C;QAC7C,cAAc;QACd,6CAA6C;QAC7C,SAAS;QACT,6CAA6C;QAC7C,gBAAgB;KACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,OAAO,GAAG;YACd,cAAc;YACd,6CAA6C;YAC7C,SAAS;YACT,6CAA6C;YAC7C,gBAAgB;SACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,KAAK,GAAG;YACZ,cAAc;YACd,yCAAyC;YACzC,SAAS;YACT,sCAAsC;YACtC,gBAAgB;SACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"value-only-change.test.js","sourceRoot":"","sources":["../../../src/__tests__/patterns/value-only-change.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * accuracy lot D — `buildRegenerationPlan` : fonction pure, aucun I/O.
3
+ *
4
+ * Règles testées :
5
+ * - runnable uniquement quand toutes les sources sont clean/resolved ;
6
+ * - une source conflictuelle → runnable: false, nommée dans `sources` ;
7
+ * - une source absente du contexte → traitée comme conflictuelle (jamais
8
+ * "runnable par défaut") ;
9
+ * - contexte absent (`null`/`undefined`) → toutes les sources conflictuelles.
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=plan.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/regenerate/plan.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * accuracy lot D — `buildRegenerationPlan` : fonction pure, aucun I/O.
3
+ *
4
+ * Règles testées :
5
+ * - runnable uniquement quand toutes les sources sont clean/resolved ;
6
+ * - une source conflictuelle → runnable: false, nommée dans `sources` ;
7
+ * - une source absente du contexte → traitée comme conflictuelle (jamais
8
+ * "runnable par défaut") ;
9
+ * - contexte absent (`null`/`undefined`) → toutes les sources conflictuelles.
10
+ */
11
+ import { describe, expect, it } from "vitest";
12
+ import { buildRegenerationPlan } from "../../regenerate/plan.js";
13
+ import { findEcosystem } from "../../regenerate/registry.js";
14
+ const npmEco = findEcosystem("package-lock.json");
15
+ const yarnBerryEco = findEcosystem("yarn.lock");
16
+ describe("buildRegenerationPlan", () => {
17
+ it("is runnable when every source of truth is clean", () => {
18
+ const ctx = {
19
+ siblingFiles: { "package.json": { state: "clean" } },
20
+ };
21
+ const plan = buildRegenerationPlan("package-lock.json", npmEco, ctx);
22
+ expect(plan.runnable).toBe(true);
23
+ expect(plan.ecosystem).toBe("npm");
24
+ expect(plan.file).toBe("package-lock.json");
25
+ expect(plan.sources).toEqual([{ path: "package.json", state: "clean" }]);
26
+ });
27
+ it("is runnable when every source of truth is engine-resolved", () => {
28
+ const ctx = {
29
+ siblingFiles: { "package.json": { state: "resolved", confidence: 0.9 } },
30
+ };
31
+ const plan = buildRegenerationPlan("package-lock.json", npmEco, ctx);
32
+ expect(plan.runnable).toBe(true);
33
+ expect(plan.sources[0]).toEqual({ path: "package.json", state: "resolved", confidence: 0.9 });
34
+ });
35
+ it("is not runnable when a source of truth is still conflicted", () => {
36
+ const ctx = {
37
+ siblingFiles: { "package.json": { state: "conflicted" } },
38
+ };
39
+ const plan = buildRegenerationPlan("package-lock.json", npmEco, ctx);
40
+ expect(plan.runnable).toBe(false);
41
+ expect(plan.sources).toContainEqual({ path: "package.json", state: "conflicted" });
42
+ });
43
+ it("treats a source missing from siblingFiles as conflicted (not runnable by default)", () => {
44
+ const ctx = { siblingFiles: {} };
45
+ const plan = buildRegenerationPlan("package-lock.json", npmEco, ctx);
46
+ expect(plan.runnable).toBe(false);
47
+ expect(plan.sources).toEqual([{ path: "package.json", state: "conflicted" }]);
48
+ });
49
+ it("treats a null/undefined context as every source conflicted", () => {
50
+ const planNull = buildRegenerationPlan("package-lock.json", npmEco, null);
51
+ expect(planNull.runnable).toBe(false);
52
+ expect(planNull.sources).toEqual([{ path: "package.json", state: "conflicted" }]);
53
+ const planUndefined = buildRegenerationPlan("package-lock.json", npmEco, undefined);
54
+ expect(planUndefined.runnable).toBe(false);
55
+ });
56
+ // Ruling P-3 — yarn-berry vs classic: `.yarnrc.yml` is the berry marker.
57
+ describe("yarn-berry vs classic (Ruling P-3)", () => {
58
+ it("is runnable when both package.json and .yarnrc.yml are clean/resolved", () => {
59
+ const ctx = {
60
+ siblingFiles: {
61
+ "package.json": { state: "clean" },
62
+ ".yarnrc.yml": { state: "clean" },
63
+ },
64
+ };
65
+ const plan = buildRegenerationPlan("yarn.lock", yarnBerryEco, ctx);
66
+ expect(plan.runnable).toBe(true);
67
+ expect(plan.sources).toEqual(expect.arrayContaining([
68
+ { path: "package.json", state: "clean" },
69
+ { path: ".yarnrc.yml", state: "clean" },
70
+ ]));
71
+ });
72
+ it("is not runnable when .yarnrc.yml is absent (classic yarn, no berry marker)", () => {
73
+ const ctx = {
74
+ siblingFiles: { "package.json": { state: "clean" } },
75
+ };
76
+ const plan = buildRegenerationPlan("yarn.lock", yarnBerryEco, ctx);
77
+ expect(plan.runnable).toBe(false);
78
+ expect(plan.sources).toContainEqual({ path: ".yarnrc.yml", state: "conflicted" });
79
+ });
80
+ it("is not runnable when .yarnrc.yml is itself conflicted", () => {
81
+ const ctx = {
82
+ siblingFiles: {
83
+ "package.json": { state: "clean" },
84
+ ".yarnrc.yml": { state: "conflicted" },
85
+ },
86
+ };
87
+ const plan = buildRegenerationPlan("yarn.lock", yarnBerryEco, ctx);
88
+ expect(plan.runnable).toBe(false);
89
+ expect(plan.sources).toContainEqual({ path: ".yarnrc.yml", state: "conflicted" });
90
+ });
91
+ });
92
+ // Final review Finding 1 — a nested lockfile (e.g. `packages/x/package-lock.json`)
93
+ // matches the registry (intentional — see registry.test.ts) but nothing
94
+ // downstream is directory-aware: the CLI's regenerate-runner writes
95
+ // resolved sources at the worktree ROOT and reads the regenerated lockfile
96
+ // back from its nested path. Without this guard, a nested lockfile whose
97
+ // (root-relative) sourcesOfTruth all read "clean" comes back runnable, and
98
+ // executing that plan would silently regenerate the ROOT lockfile while
99
+ // reading back an untouched (still-"ours") nested one — a false success.
100
+ describe("nested (non-root) generated files (Finding 1, final review)", () => {
101
+ it("is not runnable even when every source of truth is clean", () => {
102
+ const ctx = {
103
+ siblingFiles: { "package.json": { state: "clean" } },
104
+ };
105
+ const plan = buildRegenerationPlan("packages/x/package-lock.json", npmEco, ctx);
106
+ expect(plan.runnable).toBe(false);
107
+ expect(plan.blockedReason).toBeDefined();
108
+ expect(plan.blockedReason).toContain("packages/x/package-lock.json");
109
+ });
110
+ it("carries no blockedReason for a root-level file (unaffected)", () => {
111
+ const ctx = {
112
+ siblingFiles: { "package.json": { state: "clean" } },
113
+ };
114
+ const plan = buildRegenerationPlan("package-lock.json", npmEco, ctx);
115
+ expect(plan.runnable).toBe(true);
116
+ expect(plan.blockedReason).toBeUndefined();
117
+ });
118
+ it("still reports the (root-relative) source states even though it's blocked", () => {
119
+ const ctx = { siblingFiles: {} };
120
+ const plan = buildRegenerationPlan("packages/x/package-lock.json", npmEco, ctx);
121
+ expect(plan.runnable).toBe(false);
122
+ expect(plan.sources).toEqual([{ path: "package.json", state: "conflicted" }]);
123
+ });
124
+ });
125
+ });
126
+ //# sourceMappingURL=plan.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.test.js","sourceRoot":"","sources":["../../../src/__tests__/regenerate/plan.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * accuracy lot D — Registre des écosystèmes régénérables (v1).
3
+ *
4
+ * `findEcosystem` doit matcher chacun des 5 lockfiles v1 et ne rien
5
+ * retourner pour un fichier généré hors registre (`.min.js`).
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=registry.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/regenerate/registry.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * accuracy lot D — Registre des écosystèmes régénérables (v1).
3
+ *
4
+ * `findEcosystem` doit matcher chacun des 5 lockfiles v1 et ne rien
5
+ * retourner pour un fichier généré hors registre (`.min.js`).
6
+ */
7
+ import { describe, expect, it } from "vitest";
8
+ import { findEcosystem, REGEN_ECOSYSTEMS } from "../../regenerate/registry.js";
9
+ describe("findEcosystem", () => {
10
+ it.each([
11
+ ["package-lock.json", "npm"],
12
+ ["nested/dir/package-lock.json", "npm"],
13
+ ["pnpm-lock.yaml", "pnpm"],
14
+ ["yarn.lock", "yarn-berry"],
15
+ ["composer.lock", "composer"],
16
+ ["Cargo.lock", "cargo"],
17
+ ])("matches %s → ecosystem %s", (path, ecosystemId) => {
18
+ const ecosystem = findEcosystem(path);
19
+ expect(ecosystem).toBeDefined();
20
+ expect(ecosystem?.id).toBe(ecosystemId);
21
+ });
22
+ it("returns undefined for a non-registry generated file (.min.js)", () => {
23
+ expect(findEcosystem("public/dist/app.min.js")).toBeUndefined();
24
+ });
25
+ it("returns undefined for an ordinary source file", () => {
26
+ expect(findEcosystem("src/index.ts")).toBeUndefined();
27
+ });
28
+ describe("every v1 registry entry bakes in script-suppression", () => {
29
+ // Global constraint: no registry entry may omit script suppression. For
30
+ // npm/pnpm/composer that's an explicit flag on `command.args`. For
31
+ // yarn-berry and cargo, suppression is inherent to the command CHOICE
32
+ // itself (no flag exists to bolt onto a riskier command) — so instead of
33
+ // a boolean short-circuit, each ecosystem gets its own real assertion
34
+ // that fails if a future edit swaps in a script-running command.
35
+ it("npm carries --ignore-scripts", () => {
36
+ const eco = REGEN_ECOSYSTEMS.find((e) => e.id === "npm");
37
+ expect(eco.command.args).toContain("--ignore-scripts");
38
+ });
39
+ it("pnpm carries --ignore-scripts", () => {
40
+ const eco = REGEN_ECOSYSTEMS.find((e) => e.id === "pnpm");
41
+ expect(eco.command.args).toContain("--ignore-scripts");
42
+ });
43
+ it("composer carries --no-scripts", () => {
44
+ const eco = REGEN_ECOSYSTEMS.find((e) => e.id === "composer");
45
+ expect(eco.command.args).toContain("--no-scripts");
46
+ });
47
+ it("yarn-berry carries --mode=update-lockfile (lockfile-only mode never runs install/lifecycle scripts)", () => {
48
+ const eco = REGEN_ECOSYSTEMS.find((e) => e.id === "yarn-berry");
49
+ expect(eco.command.args).toContain("--mode=update-lockfile");
50
+ });
51
+ it("cargo is exactly generate-lockfile (resolves only, never invokes build.rs)", () => {
52
+ const eco = REGEN_ECOSYSTEMS.find((e) => e.id === "cargo");
53
+ expect(eco.command.args).toEqual(["generate-lockfile"]);
54
+ });
55
+ });
56
+ it("v1 registry has exactly the 5 documented ecosystems", () => {
57
+ expect(REGEN_ECOSYSTEMS.map((e) => e.id).sort()).toEqual(["cargo", "composer", "npm", "pnpm", "yarn-berry"].sort());
58
+ });
59
+ });
60
+ //# sourceMappingURL=registry.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../../../src/__tests__/regenerate/registry.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * accuracy lot D — Intégration : `resolve()` attache un `RegenerationPlan`
3
+ * quand un fichier généré est décliné ET que son chemin matche un écosystème
4
+ * du registre `regenerate/registry.ts`. Trois sites de déclin peuvent
5
+ * attacher le plan (voir `attachRegenerationPlan` dans `resolver/index.ts`) :
6
+ * 1. le `generatedGate` (hunks non-`generated_file`, ex: `value_only_change`) ;
7
+ * 2. le seuil `minConfidence` poussé au-dessus de "high" sur un hunk
8
+ * `generated_file` (cas rare) ;
9
+ * 3. `assembleResolution`'s case "generated_file" — le cas MAJORITAIRE :
10
+ * un lockfile réellement en conflit (chevauchement sémantique, pas un
11
+ * pattern "safe") est reclassifié `generated_file` par
12
+ * `reclassifyIfGenerated` avant même que `resolveHunk` ne tourne, donc
13
+ * le `generatedGate` (qui exclut `hunk.type === "generated_file"`) ne le
14
+ * voit jamais ; le déclin arrive plus loin, dans `assembleResolution`.
15
+ * Spec finding #1 (0 % d'accord sur `generated_file`) porte sur ce cas.
16
+ *
17
+ * Règles testées :
18
+ * - package-lock.json décliné (value_only_change, site 1) + package.json
19
+ * clean dans regenerationContext → plan runnable, reason contient
20
+ * l'indice --regenerate ;
21
+ * - package.json conflicted → plan attaché mais runnable: false ;
22
+ * - resolveGeneratedFiles: true → aucun plan (l'opt-in textuel gagne) ;
23
+ * - fichier généré hors registre (.min.js) → aucun plan (juste le déclin) ;
24
+ * - yarn.lock : .yarnrc.yml absent/conflicted → runnable: false (Ruling P-3) ;
25
+ * - lockfile GENUINELY conflicting (site 3, assembleResolution) → plan
26
+ * attaché aussi, avec le même hint et la même sémantique runnable/not ;
27
+ * resolveGeneratedFiles: true continue de prendre "accepter theirs" sans
28
+ * jamais décliner sur ce chemin (donc jamais de plan).
29
+ */
30
+ export {};
31
+ //# sourceMappingURL=regenerate-integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regenerate-integration.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/regenerate-integration.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * accuracy lot D — Intégration : `resolve()` attache un `RegenerationPlan`
3
+ * quand un fichier généré est décliné ET que son chemin matche un écosystème
4
+ * du registre `regenerate/registry.ts`. Trois sites de déclin peuvent
5
+ * attacher le plan (voir `attachRegenerationPlan` dans `resolver/index.ts`) :
6
+ * 1. le `generatedGate` (hunks non-`generated_file`, ex: `value_only_change`) ;
7
+ * 2. le seuil `minConfidence` poussé au-dessus de "high" sur un hunk
8
+ * `generated_file` (cas rare) ;
9
+ * 3. `assembleResolution`'s case "generated_file" — le cas MAJORITAIRE :
10
+ * un lockfile réellement en conflit (chevauchement sémantique, pas un
11
+ * pattern "safe") est reclassifié `generated_file` par
12
+ * `reclassifyIfGenerated` avant même que `resolveHunk` ne tourne, donc
13
+ * le `generatedGate` (qui exclut `hunk.type === "generated_file"`) ne le
14
+ * voit jamais ; le déclin arrive plus loin, dans `assembleResolution`.
15
+ * Spec finding #1 (0 % d'accord sur `generated_file`) porte sur ce cas.
16
+ *
17
+ * Règles testées :
18
+ * - package-lock.json décliné (value_only_change, site 1) + package.json
19
+ * clean dans regenerationContext → plan runnable, reason contient
20
+ * l'indice --regenerate ;
21
+ * - package.json conflicted → plan attaché mais runnable: false ;
22
+ * - resolveGeneratedFiles: true → aucun plan (l'opt-in textuel gagne) ;
23
+ * - fichier généré hors registre (.min.js) → aucun plan (juste le déclin) ;
24
+ * - yarn.lock : .yarnrc.yml absent/conflicted → runnable: false (Ruling P-3) ;
25
+ * - lockfile GENUINELY conflicting (site 3, assembleResolution) → plan
26
+ * attaché aussi, avec le même hint et la même sémantique runnable/not ;
27
+ * resolveGeneratedFiles: true continue de prendre "accepter theirs" sans
28
+ * jamais décliner sur ce chemin (donc jamais de plan).
29
+ */
30
+ import { describe, expect, it } from "vitest";
31
+ import { resolve } from "../index.js";
32
+ const lockEntryDiff = `<<<<<<< HEAD
33
+ "version": "3.2.1",
34
+ "resolved": "https://registry.npmjs.org/foo/-/foo-3.2.1.tgz",
35
+ "integrity": "sha512-abc123def456"
36
+ =======
37
+ "version": "3.3.0",
38
+ "resolved": "https://registry.npmjs.org/foo/-/foo-3.3.0.tgz",
39
+ "integrity": "sha512-xyz789ghi012"
40
+ >>>>>>> master`;
41
+ // Structurally different (not value_only) so the hunk stays "complex" →
42
+ // reclassified "generated_file". Not in the v1 registry (.min.js), so no
43
+ // plan is attached regardless of which of the three sites declines it.
44
+ const minJsDiff = `<<<<<<< HEAD
45
+ !function(){var a=1;console.log(a);doStuff()}();
46
+ =======
47
+ !function(){var b=2;alert(b);doOther();cleanup()}();
48
+ >>>>>>> master`;
49
+ // Genuinely overlapping package-lock.json entry: both sides diverge from
50
+ // each other in STRUCTURE (not just a scalar value), so the classifier calls
51
+ // it "complex" → reclassifyIfGenerated turns it into "generated_file" BEFORE
52
+ // resolveHunk runs. This is what a real lockfile conflict looks like — the
53
+ // majority case (spec finding #1), reached via assembleResolution's
54
+ // case "generated_file", not the generatedGate branch.
55
+ const overlappingLockJsonDiff = `<<<<<<< HEAD
56
+ "node_modules/foo": {
57
+ "version": "1.0.0",
58
+ "requires": { "bar": "^2.0" }
59
+ }
60
+ =======
61
+ "node_modules/foo": {
62
+ "version": "1.1.0",
63
+ "requires": { "bar": "^2.0", "baz": "^1.0" }
64
+ }
65
+ >>>>>>> master`;
66
+ describe("regenerate tier — resolver integration", () => {
67
+ it("attaches a runnable plan when the source of truth is clean", () => {
68
+ const ctx = { siblingFiles: { "package.json": { state: "clean" } } };
69
+ const result = resolve(lockEntryDiff, "package-lock.json", { regenerationContext: ctx });
70
+ expect(result.stats.autoResolved).toBe(0);
71
+ const resolution = result.resolutions[0];
72
+ expect(resolution.regenerationPlan).toBeDefined();
73
+ expect(resolution.regenerationPlan?.runnable).toBe(true);
74
+ expect(resolution.regenerationPlan?.ecosystem).toBe("npm");
75
+ expect(resolution.resolutionReason).toContain("--regenerate");
76
+ });
77
+ it("attaches a non-runnable plan when the source of truth is still conflicted", () => {
78
+ const ctx = { siblingFiles: { "package.json": { state: "conflicted" } } };
79
+ const result = resolve(lockEntryDiff, "package-lock.json", { regenerationContext: ctx });
80
+ const resolution = result.resolutions[0];
81
+ expect(resolution.regenerationPlan).toBeDefined();
82
+ expect(resolution.regenerationPlan?.runnable).toBe(false);
83
+ expect(resolution.regenerationPlan?.sources).toContainEqual({
84
+ path: "package.json",
85
+ state: "conflicted",
86
+ });
87
+ });
88
+ it("attaches no plan at all when regenerationContext is absent (unknown = conflicted, still declined)", () => {
89
+ const result = resolve(lockEntryDiff, "package-lock.json");
90
+ const resolution = result.resolutions[0];
91
+ // A plan is still attached (the ecosystem matches) but it's not runnable —
92
+ // absence of context just means every source is treated as conflicted.
93
+ expect(resolution.regenerationPlan).toBeDefined();
94
+ expect(resolution.regenerationPlan?.runnable).toBe(false);
95
+ });
96
+ it("attaches no plan when resolveGeneratedFiles: true (textual opt-in wins)", () => {
97
+ const ctx = { siblingFiles: { "package.json": { state: "clean" } } };
98
+ const result = resolve(lockEntryDiff, "package-lock.json", {
99
+ resolveGeneratedFiles: true,
100
+ regenerationContext: ctx,
101
+ });
102
+ expect(result.stats.autoResolved).toBe(1);
103
+ expect(result.resolutions[0].regenerationPlan).toBeUndefined();
104
+ });
105
+ it("attaches no plan for a generated file outside the v1 registry (.min.js)", () => {
106
+ const result = resolve(minJsDiff, "public/dist/app.min.js", { minConfidence: "medium" });
107
+ const resolution = result.resolutions[0];
108
+ expect(resolution.regenerationPlan).toBeUndefined();
109
+ expect(resolution.resolutionReason).not.toContain("--regenerate");
110
+ });
111
+ describe("yarn-berry vs classic (Ruling P-3)", () => {
112
+ const yarnDiff = `<<<<<<< HEAD
113
+ foo@^1.0.0:
114
+ version "1.0.0"
115
+ =======
116
+ foo@^1.0.0:
117
+ version "1.1.0"
118
+ >>>>>>> master`;
119
+ it("is runnable when package.json AND .yarnrc.yml are both clean", () => {
120
+ const ctx = {
121
+ siblingFiles: {
122
+ "package.json": { state: "clean" },
123
+ ".yarnrc.yml": { state: "clean" },
124
+ },
125
+ };
126
+ const result = resolve(yarnDiff, "yarn.lock", { regenerationContext: ctx });
127
+ const resolution = result.resolutions[0];
128
+ expect(resolution.regenerationPlan?.ecosystem).toBe("yarn-berry");
129
+ expect(resolution.regenerationPlan?.runnable).toBe(true);
130
+ });
131
+ it("is not runnable when .yarnrc.yml is missing from the context (classic yarn)", () => {
132
+ const ctx = {
133
+ siblingFiles: { "package.json": { state: "clean" } },
134
+ };
135
+ const result = resolve(yarnDiff, "yarn.lock", { regenerationContext: ctx });
136
+ const resolution = result.resolutions[0];
137
+ expect(resolution.regenerationPlan?.runnable).toBe(false);
138
+ expect(resolution.regenerationPlan?.sources).toContainEqual({
139
+ path: ".yarnrc.yml",
140
+ state: "conflicted",
141
+ });
142
+ });
143
+ });
144
+ // Site 3 — assembleResolution's case "generated_file". The majority case:
145
+ // a genuinely overlapping lockfile diff (real semantic conflict, not a
146
+ // "safe" pattern), reclassified `generated_file` before resolveHunk runs,
147
+ // so the generatedGate branch (site 1) never sees it.
148
+ describe("genuinely-complex lockfile conflict (assembleResolution decline path)", () => {
149
+ it("classifies as generated_file (not caught by the generatedGate)", () => {
150
+ const result = resolve(overlappingLockJsonDiff, "package-lock.json", { minConfidence: "medium" });
151
+ expect(result.hunks[0].type).toBe("generated_file");
152
+ });
153
+ it("attaches a runnable plan when package.json is clean", () => {
154
+ const ctx = { siblingFiles: { "package.json": { state: "clean" } } };
155
+ const result = resolve(overlappingLockJsonDiff, "package-lock.json", {
156
+ minConfidence: "medium",
157
+ regenerationContext: ctx,
158
+ });
159
+ expect(result.stats.autoResolved).toBe(0);
160
+ const resolution = result.resolutions[0];
161
+ expect(resolution.regenerationPlan).toBeDefined();
162
+ expect(resolution.regenerationPlan?.runnable).toBe(true);
163
+ expect(resolution.regenerationPlan?.ecosystem).toBe("npm");
164
+ expect(resolution.resolutionReason).toContain("--regenerate");
165
+ });
166
+ it("attaches a non-runnable plan when package.json is conflicted", () => {
167
+ const ctx = { siblingFiles: { "package.json": { state: "conflicted" } } };
168
+ const result = resolve(overlappingLockJsonDiff, "package-lock.json", {
169
+ minConfidence: "medium",
170
+ regenerationContext: ctx,
171
+ });
172
+ const resolution = result.resolutions[0];
173
+ expect(resolution.regenerationPlan).toBeDefined();
174
+ expect(resolution.regenerationPlan?.runnable).toBe(false);
175
+ expect(resolution.regenerationPlan?.sources).toContainEqual({
176
+ path: "package.json",
177
+ state: "conflicted",
178
+ });
179
+ });
180
+ it("still attaches a (non-runnable) plan when regenerationContext is entirely absent", () => {
181
+ const result = resolve(overlappingLockJsonDiff, "package-lock.json", { minConfidence: "medium" });
182
+ const resolution = result.resolutions[0];
183
+ expect(resolution.regenerationPlan).toBeDefined();
184
+ expect(resolution.regenerationPlan?.runnable).toBe(false);
185
+ });
186
+ it("attaches no plan when resolveGeneratedFiles: true (this path takes accept-theirs, never declines)", () => {
187
+ const ctx = { siblingFiles: { "package.json": { state: "clean" } } };
188
+ const result = resolve(overlappingLockJsonDiff, "package-lock.json", {
189
+ minConfidence: "medium",
190
+ resolveGeneratedFiles: true,
191
+ regenerationContext: ctx,
192
+ });
193
+ expect(result.stats.autoResolved).toBe(1);
194
+ expect(result.resolutions[0].regenerationPlan).toBeUndefined();
195
+ expect(result.resolutions[0].resolutionReason).not.toContain("--regenerate");
196
+ });
197
+ });
198
+ });
199
+ //# sourceMappingURL=regenerate-integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regenerate-integration.test.js","sourceRoot":"","sources":["../../src/__tests__/regenerate-integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Garde de régression pour la métrique "recoverable-before-model" (v2.7).
2
+ * Garde de régression pour la métrique "recoverable-before-model" (v3.4).
3
3
  *
4
4
  * Design: docs/superpowers/specs/2026-07-07-recoverable-before-model-metric-design.md §4.C
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Garde de régression pour la métrique "recoverable-before-model" (v2.7).
2
+ * Garde de régression pour la métrique "recoverable-before-model" (v3.4).
3
3
  *
4
4
  * Design: docs/superpowers/specs/2026-07-07-recoverable-before-model-metric-design.md §4.C
5
5
  *
@@ -58,7 +58,7 @@ describe("Garde de régression — token_level_merge doit shrink le bucket AI-re
58
58
  }
59
59
  }
60
60
  // Le corpus doit contenir au moins un cas dépendant de token_level_merge —
61
- // sinon ce garde ne garde rien (cf. F46, la fixture Tailwind du v2.7).
61
+ // sinon ce garde ne garde rien (cf. F46, la fixture Tailwind du v3.4).
62
62
  expect(tokenLevelMergeCount).toBeGreaterThan(0);
63
63
  const countReachingModelOn = modelOrUnresolvedCount;
64
64
  const countReachingModelOffHypothetical = modelOrUnresolvedCount + tokenLevelMergeCount;
@@ -522,7 +522,8 @@ describe("@gitwand/core resolve", () => {
522
522
  "name": "Foo"
523
523
  }
524
524
  }`;
525
- const result = resolve(manifest, "build/manifest.json");
525
+ // accuracy lot 1 build/manifest.json est un chemin généré : opt-in requis
526
+ const result = resolve(manifest, "build/manifest.json", { resolveGeneratedFiles: true });
526
527
  expect(result.hunks[0].type).toBe("value_only_change");
527
528
  expect(result.hunks[0].confidence.label).toBe("high");
528
529
  expect(result.stats.autoResolved).toBe(1);
@@ -540,7 +541,8 @@ describe("@gitwand/core resolve", () => {
540
541
  "resolved": "https://registry.npmjs.org/foo/-/foo-3.3.0.tgz",
541
542
  "integrity": "sha512-xyz789ghi012"
542
543
  >>>>>>> master`;
543
- const result = resolve(lockEntry, "package-lock.json");
544
+ // accuracy lot 1 — lockfile : opt-in requis pour l'auto-résolution
545
+ const result = resolve(lockEntry, "package-lock.json", { resolveGeneratedFiles: true });
544
546
  expect(result.hunks[0].type).toBe("value_only_change");
545
547
  expect(result.stats.autoResolved).toBe(1);
546
548
  });
@@ -594,7 +596,13 @@ after`;
594
596
  >>>>>>> master`;
595
597
  const result = resolve(minJs, "public/dist/app.min.js", { minConfidence: "medium" });
596
598
  expect(result.hunks[0].type).toBe("generated_file");
597
- expect(result.stats.autoResolved).toBe(1);
599
+ // accuracy lot 1 — classification conservée, application déclinée par défaut :
600
+ // un fichier généré se régénère, il ne se fusionne pas.
601
+ expect(result.stats.autoResolved).toBe(0);
602
+ expect(result.resolutions[0].resolutionReason).toContain("resolveGeneratedFiles");
603
+ // L'ancien comportement reste disponible derrière l'opt-in.
604
+ const optIn = resolve(minJs, "public/dist/app.min.js", { minConfidence: "medium", resolveGeneratedFiles: true });
605
+ expect(optIn.stats.autoResolved).toBe(1);
598
606
  });
599
607
  it("reclassifies complex conflicts in package-lock.json as generated_file", () => {
600
608
  const lockJson = `<<<<<<< HEAD
@@ -610,7 +618,7 @@ after`;
610
618
  >>>>>>> master`;
611
619
  const result = resolve(lockJson, "package-lock.json", { minConfidence: "medium" });
612
620
  expect(result.hunks[0].type).toBe("generated_file");
613
- expect(result.stats.autoResolved).toBe(1);
621
+ expect(result.stats.autoResolved).toBe(0); // accuracy lot 1 — décliné par défaut
614
622
  });
615
623
  it("reclassifies complex in build/manifest.json as generated_file", () => {
616
624
  const manifest = `<<<<<<< HEAD
@@ -627,7 +635,7 @@ after`;
627
635
  >>>>>>> master`;
628
636
  const result = resolve(manifest, "public/build/manifest.json", { minConfidence: "medium" });
629
637
  expect(result.hunks[0].type).toBe("generated_file");
630
- expect(result.stats.autoResolved).toBe(1);
638
+ expect(result.stats.autoResolved).toBe(0); // accuracy lot 1 — décliné par défaut
631
639
  });
632
640
  it("does NOT mark normal .ts files as generated", () => {
633
641
  const ts = `<<<<<<< HEAD
@@ -778,7 +786,7 @@ return "hello";
778
786
  const result = resolve(complex, "utils.ts", { minConfidence: "low" });
779
787
  const res = result.resolutions[0];
780
788
  expect(res.autoResolved).toBe(false);
781
- expect(res.resolutionReason).toMatch(/complexe|manuelle/i);
789
+ expect(res.resolutionReason).toMatch(/complex|manual/i);
782
790
  });
783
791
  it("mode explainOnly : classi fie sans résoudre", () => {
784
792
  const result = resolve(CONFLICT_SAME_CHANGE, "App.tsx", { explainOnly: true });