@gitwand/core 3.8.0 → 3.9.0

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
@@ -126,23 +126,23 @@ const tokenLevelMerge = {
126
126
  // dataRisk volontairement non-nul : ce pattern ne doit JAMAIS s'auto-appliquer,
127
127
  // quel que soit le score obtenu (cf. resolver/assemble.ts — case dédié).
128
128
  return makeScore(70, 38, scopeImpact(totalLines), [
129
- "Décomposition ligne-par-ligne et token-level réussie",
129
+ "Line-by-line and token-level decomposition succeeded",
130
130
  ], [
131
- "Résolution proposée jamais auto-appliquée, confirmation utilisateur requise",
131
+ "Resolution proposed: never auto-applied, user confirmation required",
132
132
  ]);
133
133
  },
134
134
  explanation(h) {
135
135
  const result = computeTokenMergeCached(h);
136
136
  if (!result)
137
- return "Fusion token-level proposée.";
137
+ return "Token-level merge proposed.";
138
138
  const { pass1Count, pass2Count } = result;
139
- return `Fusion proposée : ${pass1Count} ligne${pass1Count === 1 ? "" : "s"} résolue${pass1Count === 1 ? "" : "s"} ligne-par-ligne, ${pass2Count} ligne${pass2Count === 1 ? "" : "s"} fusionnée${pass2Count === 1 ? "" : "s"} token-par-token. Confirmation requise avant application.`;
139
+ return `Merge proposed: ${pass1Count} line${pass1Count === 1 ? "" : "s"} resolved line-by-line, ${pass2Count} line${pass2Count === 1 ? "" : "s"} merged token-by-token. Confirmation required before it is applied.`;
140
140
  },
141
141
  passReason(_h) {
142
- return "Décomposition ligne-par-ligne + diff token-level réussis sur toutes les lignes du hunk.";
142
+ return "Line-by-line decomposition and token-level diff succeeded on every line of the hunk.";
143
143
  },
144
144
  failReason(_h) {
145
- return "Au moins une ligne résiste (vrai conflit token-level ou désalignement de tokens) pas de résolution partielle.";
145
+ return "At least one line resists (a real token-level conflict, or misaligned tokens), and partial resolutions are not offered.";
146
146
  },
147
147
  };
148
148
  export default tokenLevelMerge;
@@ -1 +1 @@
1
- {"version":3,"file":"token-level-merge.js","sourceRoot":"","sources":["../../src/patterns/token-level-merge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-level-merge.js","sourceRoot":"","sources":["../../src/patterns/token-level-merge.ts"],"names":[],"mappings":"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"}
@@ -110,15 +110,6 @@ export declare function detectValueOnlyChange(oursLines: string[], theirsLines:
110
110
  explanation: string;
111
111
  traceReason: string;
112
112
  } | null;
113
- /**
114
- * Si TOUTES les paires de tokens qui diffèrent entre ours et theirs sont des
115
- * semver comparables ET que le même côté est ≥ sur chaque paire (avec au
116
- * moins un >), retourne ce côté. Sinon null (résolution par politique).
117
- *
118
- * Consommé par assembleResolution (value_only_change) : « accepter la version
119
- * la plus récente » n'est déterministe que quand les valeurs sont ORDONNABLES
120
- * (semver, ou datetime ISO où l'ordre lexicographique est chronologique) —
121
- * pour les hashes et autres valeurs ambiguës on retombe sur la politique.
122
- */
113
+ export declare function hasUnorderableVersionPair(oursLines: string[], theirsLines: string[]): boolean;
123
114
  export declare function pickNewerSemverSide(oursLines: string[], theirsLines: string[]): "ours" | "theirs" | null;
124
115
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/patterns/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI/D;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAKxD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAoBnH;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,kBAAkB,EAAE,MAAM,EAC1B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAAE,EAClB,SAAS,EAAE,MAAM,EAAE,EACnB,aAAa,SAAI,EACjB,gBAAgB,SAAI,EACpB,kBAAkB,SAAI,EACtB,aAAa,SAAI,GAChB,eAAe,CA8BjB;AAID;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAOnE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA0B/D;AAID,wFAAwF;AACxF,eAAO,MAAM,iBAAiB,UAQ7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAqChE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAoC7D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,UAAQ,GACd;IAAE,eAAe,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqEvF;AAyBD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EAAE,GACpB,MAAM,GAAG,QAAQ,GAAG,IAAI,CA2B1B"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/patterns/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI/D;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAKxD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAoBnH;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,kBAAkB,EAAE,MAAM,EAC1B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAAE,EAClB,SAAS,EAAE,MAAM,EAAE,EACnB,aAAa,SAAI,EACjB,gBAAgB,SAAI,EACpB,kBAAkB,SAAI,EACtB,aAAa,SAAI,GAChB,eAAe,CA8BjB;AAID;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAOnE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA0B/D;AAID,wFAAwF;AACxF,eAAO,MAAM,iBAAiB,UAQ7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAqChE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAoC7D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,UAAQ,GACd;IAAE,eAAe,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqEvF;AAoDD,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAiBT;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EAAE,GACpB,MAAM,GAAG,QAAQ,GAAG,IAAI,CA2B1B"}
@@ -327,18 +327,18 @@ export function detectValueOnlyChange(oursLines, theirsLines, hasBase = false) {
327
327
  if (typeClassification < 55)
328
328
  return null;
329
329
  const si = scopeImpact(oursLines.length);
330
- const penalties = [`Ratio de différences : ${(diffRatio * 100).toFixed(1)}%`];
330
+ const penalties = [`Difference ratio: ${(diffRatio * 100).toFixed(1)}%`];
331
331
  if (!hasBase)
332
- penalties.push("Sans base (diff2) heuristique basée sur les patterns volatils");
332
+ penalties.push("No base (diff2): heuristic based on volatile-value patterns alone");
333
333
  const confidenceScore = makeScore(typeClassification, 25, si, [
334
- `${diffCount} token${diffCount > 1 ? "s" : ""} identifié${diffCount > 1 ? "s" : ""} comme volatile${diffCount > 1 ? "s" : ""} (hash, version, timestamp…)`,
335
- "Même structure de lignes",
336
- ...(hasBase ? ["Base disponible les deux côtés ont changé la valeur"] : []),
334
+ `${diffCount} token${diffCount > 1 ? "s" : ""} identified as volatile (hash, version, timestamp…)`,
335
+ "Same line structure",
336
+ ...(hasBase ? ["Base available: both sides changed the value"] : []),
337
337
  ], penalties, 0, hasBase ? 100 : 0);
338
338
  if (confidenceScore.label === "low")
339
339
  return null;
340
- const explanation = `Même structure avec ${diffCount} valeur${diffCount > 1 ? "s" : ""} volatile${diffCount > 1 ? "s" : ""} différente${diffCount > 1 ? "s" : ""} (hash, version, timestamp…). Résolution : semver le plus élevé si comparable, sinon selon la politique de merge.`;
341
- const traceReason = `${diffCount} token${diffCount > 1 ? "s" : ""} différent${diffCount > 1 ? "s" : ""} sur ${totalTokens} tous identifiés comme volatiles (hash, version, timestamp…). Ratio : ${(diffRatio * 100).toFixed(1)}% score ${confidenceScore.score} (${confidenceScore.label}).`;
340
+ const explanation = `Same structure with ${diffCount} differing volatile value${diffCount > 1 ? "s" : ""} (hash, version, timestamp…). Resolution: the higher semver when comparable, otherwise whatever the merge policy says.`;
341
+ const traceReason = `${diffCount} of ${totalTokens} tokens differ, all identified as volatile (hash, version, timestamp…). Ratio: ${(diffRatio * 100).toFixed(1)}%, score ${confidenceScore.score} (${confidenceScore.label}).`;
342
342
  return { confidenceScore, explanation, traceReason };
343
343
  }
344
344
  // ─── Comparaison semver pour value_only_change ────────────────
@@ -371,6 +371,45 @@ function compareSemver(a, b) {
371
371
  * (semver, ou datetime ISO où l'ordre lexicographique est chronologique) —
372
372
  * pour les hashes et autres valeurs ambiguës on retombe sur la politique.
373
373
  */
374
+ /**
375
+ * accuracy lot C — Y a-t-il, parmi les paires de tokens qui diffèrent, au moins une
376
+ * paire « de type version » qui n'est PAS ordonnable proprement ?
377
+ *
378
+ * C'est exactement le cas mesuré comme faux sur le corpus benchmark/ : deux
379
+ * côtés fixent un scalaire de version à des valeurs différentes dont l'une ne
380
+ * parse pas en semver (`'13.x-dev'`, `'2.0-beta'`, `dev-master`). L'ancien
381
+ * comportement retombait sur la politique (prefer-theirs) — un pari. Ces
382
+ * paires sont une décision : la branche cible gagne quand le contexte est
383
+ * connu, et on propose au lieu d'appliquer quand il ne l'est pas.
384
+ *
385
+ * Délibérément conservateur : un token n'est « versionish » que s'il ressemble
386
+ * réellement à une version (chiffres pointés, wildcard x/*, suffixe -dev/-beta…).
387
+ * Les hashes et timestamps ne matchent pas et gardent leur traitement existant.
388
+ */
389
+ const RE_VERSIONISH_TOKEN = /^["']?v?\d+\.(\d+|[x*])(\.(\d+|[x*]))?([._-][0-9A-Za-z.]+)?["']?$/;
390
+ export function hasUnorderableVersionPair(oursLines, theirsLines) {
391
+ if (oursLines.length !== theirsLines.length)
392
+ return false;
393
+ for (let i = 0; i < oursLines.length; i++) {
394
+ const oursTokens = tokenizeLineQuoteAware(oursLines[i]);
395
+ const theirsTokens = tokenizeLineQuoteAware(theirsLines[i]);
396
+ if (oursTokens.length !== theirsTokens.length)
397
+ continue;
398
+ for (let j = 0; j < oursTokens.length; j++) {
399
+ const a = oursTokens[j];
400
+ const b = theirsTokens[j];
401
+ if (a === b)
402
+ continue;
403
+ const bothSemver = parseSemver(a) !== null && parseSemver(b) !== null;
404
+ const bothDatetime = RE_DATETIME_TOKEN.test(a) && RE_DATETIME_TOKEN.test(b);
405
+ if (bothSemver || bothDatetime)
406
+ continue; // ordonnable → pickNewerSemverSide gère
407
+ if (RE_VERSIONISH_TOKEN.test(a) || RE_VERSIONISH_TOKEN.test(b))
408
+ return true;
409
+ }
410
+ }
411
+ return false;
412
+ }
374
413
  export function pickNewerSemverSide(oursLines, theirsLines) {
375
414
  if (oursLines.length !== theirsLines.length)
376
415
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/patterns/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,gEAAgE;AAEhE;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACzB,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC3B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC3B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IAClC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IAC/B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,QAAQ,CAAC;IACjC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAyC;IAC3E,MAAM,EACJ,kBAAkB,EAClB,QAAQ,EACR,WAAW,EACX,aAAa,GAAG,CAAC,EACjB,gBAAgB,GAAG,CAAC,EACpB,kBAAkB,GAAG,CAAC,EACtB,aAAa,GAAG,CAAC,GAClB,GAAG,UAAU,CAAC;IACf,MAAM,GAAG,GACP,kBAAkB;UAChB,QAAQ,GAAc,IAAI;UAC1B,WAAW,GAAW,IAAI;UAC1B,aAAa,GAAS,IAAI;UAC1B,gBAAgB,GAAM,IAAI;UAC1B,kBAAkB,GAAI,IAAI;UAC1B,aAAa,GAAS,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;AACjD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CACvB,kBAA0B,EAC1B,QAAgB,EAChB,EAAU,EACV,QAAkB,EAClB,SAAmB,EACnB,aAAa,GAAG,CAAC,EACjB,gBAAgB,GAAG,CAAC,EACpB,kBAAkB,GAAG,CAAC,EACtB,aAAa,GAAG,CAAC;IAEjB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC;QAC3C,kBAAkB;QAClB,QAAQ;QACR,WAAW,EAAE,EAAE;QACf,aAAa;QACb,gBAAgB;QAChB,kBAAkB;QAClB,aAAa;KACd,CAAC,CAAC;IACH,MAAM,UAAU,GAAkC;QAChD,kBAAkB;QAClB,QAAQ;QACR,WAAW,EAAE,EAAE;QACf,aAAa;QACb,gBAAgB;KACjB,CAAC;IACF,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;QAC7B,UAAU,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IACrD,CAAC;IACD,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,UAAU,CAAC,aAAa,GAAG,aAAa,CAAC;IAC3C,CAAC;IACD,OAAO;QACL,KAAK;QACL,KAAK;QACL,UAAU;QACV,QAAQ;QACR,SAAS;KACV,CAAC;AACJ,CAAC;AAED,iEAAiE;AAEjE;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAe;IACzD,IAAI,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE;QAAE,UAAU,CAAC,KAAK,EAAE,CAAC;IACzE,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;QAAE,UAAU,CAAC,GAAG,EAAE,CAAC;IAC3F,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAe;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,CAAC,EAAE,CAAC;YACJ,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC5C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC5C,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjC,CAAC,IAAI,CAAC,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC,EAAE,CAAC;YACN,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC,EAAE,CAAC,CAAC,iCAAiC;YACtC,SAAS;QACX,CAAC;QACD,CAAC,EAAE,CAAC;IACN,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,gEAAgE;AAEhE,wFAAwF;AACxF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,kBAAkB;IAClB,+EAA+E;IAC/E,kDAAkD;IAClD,8CAA8C;IAC9C,0DAA0D;IAC1D,qBAAqB;IACrB,yCAAyC;CAC1C,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAS,EAAE,CAAS;IACrD,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE1B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,OAAO,SAAS,GAAG,CAAC,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QACrF,SAAS,EAAE,CAAC;IACd,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;IAClC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;IAClC,OACE,SAAS,GAAG,IAAI;QAChB,SAAS,GAAG,IAAI;QAChB,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,EAC3D,CAAC;QACD,SAAS,EAAE,CAAC;IACd,CAAC;IAED,IAAI,SAAS,GAAG,SAAS,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE9C,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAElF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzD,MAAM,aAAa,GAAG,CAAC,CAAS,EAAW,EAAE;QAC3C,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1D,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/C,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/C,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC5C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7E,KAAK,GAAG,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC;IACF,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC3C,UAAU,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,CAAC,EAAE,CAAC;YACJ,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC5C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC5C,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjC,CAAC,IAAI,CAAC,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC,EAAE,CAAC;YACN,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,OAAO,KAAK,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;YACjD,SAAS;QACX,CAAC;QACD,KAAK,IAAI,EAAE,CAAC;QACZ,CAAC,EAAE,CAAC;IACN,CAAC;IACD,UAAU,EAAE,CAAC;IACb,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAmB,EACnB,WAAqB,EACrB,OAAO,GAAG,KAAK;IAEf,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,mBAAmB,GAAG,IAAI,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5D,IAAI,UAAU,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;YAC9C,mBAAmB,GAAG,KAAK,CAAC;YAC5B,MAAM;QACR,CAAC;QAED,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,2DAA2D;QAC3D,WAAW,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAEjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtC,SAAS,EAAE,CAAC;gBACZ,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5E,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChF,IAAI,CAAC,cAAc,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACzC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxD,mBAAmB,GAAG,KAAK,CAAC;wBAC5B,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,mBAAmB;YAAE,MAAM;IAClC,CAAC;IAED,IAAI,CAAC,mBAAmB,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzD,MAAM,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,kBAAkB,GACtB,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;QACtB,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;YACxB,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;gBACxB,CAAC,CAAC,CAAC,CAAC;IAEN,IAAI,kBAAkB,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IAEzC,MAAM,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,CAAC,0BAA0B,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9E,IAAI,CAAC,OAAO;QAAE,SAAS,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IAChG,MAAM,eAAe,GAAG,SAAS,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,EAAE;QAC5D,GAAG,SAAS,SAAS,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,kBAAkB,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,8BAA8B;QAC1J,0BAA0B;QAC1B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9E,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpC,IAAI,eAAe,CAAC,KAAK,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAEjD,MAAM,WAAW,GACf,uBAAuB,SAAS,UAAU,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,cAAc,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,mHAAmH,CAAC;IAElQ,MAAM,WAAW,GACf,GAAG,SAAS,SAAS,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,WAAW,2EAA2E,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,eAAe,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,IAAI,CAAC;IAE/Q,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AACvD,CAAC;AAGD,iEAAiE;AAEjE,MAAM,eAAe,GAAG,oDAAoD,CAAC;AAE7E,uGAAuG;AACvG,MAAM,iBAAiB,GAAG,0DAA0D,CAAC;AAErF,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACrC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;AACxE,CAAC;AAED,sGAAsG;AACtG,SAAS,aAAa,CAAC,CAAoC,EAAE,CAAoC;IAC/F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAQ,CAAC,CAAC,CAAC,CAAY,GAAI,CAAC,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB;IACjE,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAAmB,EACnB,WAAqB;IAErB,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,MAAM,GAA6B,IAAI,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,UAAU,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC;gBAAE,SAAS;YAChD,IAAI,GAAW,CAAC;YAChB,MAAM,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACX,GAAG,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC;iBAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5F,4DAA4D;gBAC5D,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvF,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,CAAC,0CAA0C;YACzD,CAAC;YACD,IAAI,GAAG,KAAK,CAAC;gBAAE,SAAS;YACxB,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;YACzC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC,CAAC,yBAAyB;YAC9E,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/patterns/utils.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { makeScore, detectValueOnlyChange } from "./utils.js";
2
2
  const valueOnlyChange = {
3
3
  type: "value_only_change",
4
4
  priority: 60,
5
- // "both" depuis v2.7 : avec base (diff3), un changement unilatéral est déjà
5
+ // "both" depuis v3.4 : avec base (diff3), un changement unilatéral est déjà
6
6
  // pris par one_side_change (prio 30) — ce pattern ne voit donc que les cas
7
7
  // où LES DEUX côtés ont changé la valeur. En "diff2" il était inatteignable
8
8
  // dès que la base recovery du desktop enrichissait le conflit.
@@ -17,21 +17,21 @@ const valueOnlyChange = {
17
17
  if (result)
18
18
  return result.confidenceScore;
19
19
  // Fallback (ne devrait pas être appelé si detect() retourne false)
20
- return makeScore(0, 100, 0, [], ["Erreur interne : confidence() appelé sans match"]);
20
+ return makeScore(0, 100, 0, [], ["Internal error: confidence() called without a match"]);
21
21
  },
22
22
  explanation(h) {
23
23
  const result = detectValueOnlyChange(h.oursLines, h.theirsLines, h.baseLines.length > 0);
24
- return result?.explanation ?? "Valeurs volatiles différentes.";
24
+ return result?.explanation ?? "Differing volatile values.";
25
25
  },
26
26
  passReason(h) {
27
27
  const result = detectValueOnlyChange(h.oursLines, h.theirsLines, h.baseLines.length > 0);
28
- return result?.traceReason ?? "Valeurs atomiques identifiées comme volatiles.";
28
+ return result?.traceReason ?? "Atomic values identified as volatile.";
29
29
  },
30
30
  failReason(h) {
31
31
  if (h.oursLines.length !== h.theirsLines.length) {
32
- return "Ours et theirs n'ont pas le même nombre de lignes structure différente.";
32
+ return "Ours and theirs do not have the same number of lines, so the structure differs.";
33
33
  }
34
- return "Les différences entre ours et theirs ne se limitent pas à des valeurs volatiles (hash, version, timestamp…).";
34
+ return "The differences between ours and theirs go beyond volatile values (hash, version, timestamp…).";
35
35
  },
36
36
  };
37
37
  export default valueOnlyChange;
@@ -1 +1 @@
1
- {"version":3,"file":"value-only-change.js","sourceRoot":"","sources":["../../src/patterns/value-only-change.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,eAAe,GAAkB;IACrC,IAAI,EAAE,mBAAmB;IACzB,QAAQ,EAAE,EAAE;IACZ,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,+DAA+D;IAC/D,QAAQ,EAAE,MAAM;IAEhB,MAAM,CAAC,CAAgB;QACrB,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC9D,OAAO,qBAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;IAC5F,CAAC;IAED,UAAU,CAAC,CAAgB;QACzB,MAAM,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzF,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,eAAe,CAAC;QAC1C,mEAAmE;QACnE,OAAO,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,iDAAiD,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,WAAW,CAAC,CAAgB;QAC1B,MAAM,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzF,OAAO,MAAM,EAAE,WAAW,IAAI,gCAAgC,CAAC;IACjE,CAAC;IAED,UAAU,CAAC,CAAgB;QACzB,MAAM,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzF,OAAO,MAAM,EAAE,WAAW,IAAI,gDAAgD,CAAC;IACjF,CAAC;IAED,UAAU,CAAC,CAAgB;QACzB,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAChD,OAAO,2EAA2E,CAAC;QACrF,CAAC;QACD,OAAO,8GAA8G,CAAC;IACxH,CAAC;CACF,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"value-only-change.js","sourceRoot":"","sources":["../../src/patterns/value-only-change.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,eAAe,GAAkB;IACrC,IAAI,EAAE,mBAAmB;IACzB,QAAQ,EAAE,EAAE;IACZ,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,+DAA+D;IAC/D,QAAQ,EAAE,MAAM;IAEhB,MAAM,CAAC,CAAgB;QACrB,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC9D,OAAO,qBAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;IAC5F,CAAC;IAED,UAAU,CAAC,CAAgB;QACzB,MAAM,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzF,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,eAAe,CAAC;QAC1C,mEAAmE;QACnE,OAAO,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,qDAAqD,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,WAAW,CAAC,CAAgB;QAC1B,MAAM,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzF,OAAO,MAAM,EAAE,WAAW,IAAI,4BAA4B,CAAC;IAC7D,CAAC;IAED,UAAU,CAAC,CAAgB;QACzB,MAAM,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzF,OAAO,MAAM,EAAE,WAAW,IAAI,uCAAuC,CAAC;IACxE,CAAC;IAED,UAAU,CAAC,CAAgB;QACzB,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAChD,OAAO,iFAAiF,CAAC;QAC3F,CAAC;QACD,OAAO,gGAAgG,CAAC;IAC1G,CAAC;CACF,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -22,19 +22,19 @@ const whitespaceOnly = {
22
22
  const lines = Math.max(h.oursLines.length, h.theirsLines.length);
23
23
  return makeScore(hasBase ? 95 : 80, 10, scopeImpact(lines), hasBase
24
24
  ? [
25
- "Base disponible whitespace confirmé par rapport à l'ancêtre",
26
- "Seul le whitespace diffère après normalisation",
25
+ "Base available: whitespace confirmed against the ancestor",
26
+ "Only whitespace differs after normalisation",
27
27
  ]
28
- : ["Seul le whitespace diffère après normalisation (trim)"], hasBase ? [] : ["Sans base (diff2) hypothèse basée sur la normalisation uniquement"]);
28
+ : ["Only whitespace differs after normalisation (trim)"], hasBase ? [] : ["No base (diff2): the assumption rests on normalisation alone"]);
29
29
  },
30
30
  explanation(_h) {
31
- return "Les deux branches contiennent le même code avec des différences de whitespace uniquement.";
31
+ return "Both branches contain the same code, differing only in whitespace.";
32
32
  },
33
33
  passReason(_h) {
34
- return "Après normalisation (trim), les deux versions sont identiques seul le whitespace diffère.";
34
+ return "After normalisation (trim) the two versions are identical: only whitespace differs.";
35
35
  },
36
36
  failReason(_h) {
37
- return "Après normalisation (trim), les deux versions restent différentes pas seulement du whitespace.";
37
+ return "After normalisation (trim) the two versions still differ, so this is more than whitespace.";
38
38
  },
39
39
  };
40
40
  export default whitespaceOnly;
@@ -1 +1 @@
1
- {"version":3,"file":"whitespace-only.js","sourceRoot":"","sources":["../../src/patterns/whitespace-only.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExG,MAAM,cAAc,GAAkB;IACpC,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,MAAM;IAEhB,MAAM,CAAC,CAAgB;QACrB,MAAM,QAAQ,GAAG,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,2BAA2B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,QAAQ,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QAC1C,yEAAyE;QACzE,sEAAsE;QACtE,0EAA0E;QAC1E,kEAAkE;QAClE,MAAM,UAAU,GAAG,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,qBAAqB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC1D,OAAO,UAAU,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM;YAC9C,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,UAAU,CAAC,CAAgB;QACzB,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjE,OAAO,SAAS,CACd,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EACjB,EAAE,EACF,WAAW,CAAC,KAAK,CAAC,EAClB,OAAO;YACL,CAAC,CAAC;gBACE,+DAA+D;gBAC/D,gDAAgD;aACjD;YACH,CAAC,CAAC,CAAC,uDAAuD,CAAC,EAC7D,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,qEAAqE,CAAC,CACvF,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,EAAiB;QAC3B,OAAO,2FAA2F,CAAC;IACrG,CAAC;IAED,UAAU,CAAC,EAAiB;QAC1B,OAAO,6FAA6F,CAAC;IACvG,CAAC;IAED,UAAU,CAAC,EAAiB;QAC1B,OAAO,kGAAkG,CAAC;IAC5G,CAAC;CACF,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"whitespace-only.js","sourceRoot":"","sources":["../../src/patterns/whitespace-only.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExG,MAAM,cAAc,GAAkB;IACpC,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,MAAM;IAEhB,MAAM,CAAC,CAAgB;QACrB,MAAM,QAAQ,GAAG,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,2BAA2B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,QAAQ,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QAC1C,yEAAyE;QACzE,sEAAsE;QACtE,0EAA0E;QAC1E,kEAAkE;QAClE,MAAM,UAAU,GAAG,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,qBAAqB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC1D,OAAO,UAAU,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM;YAC9C,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,UAAU,CAAC,CAAgB;QACzB,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjE,OAAO,SAAS,CACd,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EACjB,EAAE,EACF,WAAW,CAAC,KAAK,CAAC,EAClB,OAAO;YACL,CAAC,CAAC;gBACE,2DAA2D;gBAC3D,6CAA6C;aAC9C;YACH,CAAC,CAAC,CAAC,oDAAoD,CAAC,EAC1D,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,8DAA8D,CAAC,CAChF,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,EAAiB;QAC3B,OAAO,oEAAoE,CAAC;IAC9E,CAAC;IAED,UAAU,CAAC,EAAiB;QAC1B,OAAO,qFAAqF,CAAC;IAC/F,CAAC;IAED,UAAU,CAAC,EAAiB;QAC1B,OAAO,4FAA4F,CAAC;IACtG,CAAC;CACF,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -104,7 +104,7 @@ export function tryRefMerge(input, maxRefactorings = 10) {
104
104
  if (oursRefs.length === 0 && theirsRefs.length === 0) {
105
105
  return {
106
106
  lines: null,
107
- reason: "RefMerge : aucun refactoring détecté fallback au pipeline standard.",
107
+ reason: "RefMerge: no refactoring detected, falling back to the standard pipeline.",
108
108
  oursRefs: [],
109
109
  theirsRefs: [],
110
110
  };
@@ -126,7 +126,7 @@ export function tryRefMerge(input, maxRefactorings = 10) {
126
126
  if (mergedInverted === null) {
127
127
  return {
128
128
  lines: null,
129
- reason: "RefMerge : chevauchement résiduel après inversion fallback au pipeline standard.",
129
+ reason: "RefMerge: residual overlap after inversion, falling back to the standard pipeline.",
130
130
  oursRefs,
131
131
  theirsRefs,
132
132
  };
@@ -137,7 +137,7 @@ export function tryRefMerge(input, maxRefactorings = 10) {
137
137
  const summary = summarizeRefs(oursRefs, theirsRefs);
138
138
  return {
139
139
  lines: finalLines,
140
- reason: `RefMerge : ${summary} résolution par inversion+merge+rejeu.`,
140
+ reason: `RefMerge: ${summary}. Resolved by invert, merge and replay.`,
141
141
  oursRefs,
142
142
  theirsRefs,
143
143
  };
@@ -1 +1 @@
1
- {"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../src/refactoring/orchestration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../src/refactoring/orchestration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * accuracy lot D — Émission d'un plan de régénération (fonction pure, zéro I/O).
3
+ *
4
+ * Le moteur n'exécute jamais rien : `buildRegenerationPlan` se contente de
5
+ * lire l'état (déjà connu de l'appelant, voir `RegenerationContext` dans
6
+ * `types.ts`) des fichiers "sources de vérité" d'un écosystème régénérable,
7
+ * et de décider si régénérer serait sûr (`runnable`). L'exécution de la
8
+ * commande elle-même appartient toujours à l'appelant.
9
+ */
10
+ import type { RegenerationContext } from "../types.js";
11
+ import type { RegenEcosystem } from "./registry.js";
12
+ /** Ce que le moteur émet à la place d'une résolution ; l'appelant décide de l'exécuter. */
13
+ export interface RegenerationPlan {
14
+ file: string;
15
+ ecosystem: RegenEcosystem["id"];
16
+ /** Chaque source de vérité et comment elle a été réglée (clean | resolved | conflicted). */
17
+ sources: Array<{
18
+ path: string;
19
+ state: "clean" | "resolved" | "conflicted";
20
+ confidence?: number;
21
+ }>;
22
+ /** Le plan n'est runnable que si aucune source n'est "conflicted" (absente = conflicted). */
23
+ runnable: boolean;
24
+ /**
25
+ * Final-review Finding 1 — renseigné uniquement quand `runnable` est forcé à
26
+ * `false` pour une raison AUTRE que l'état d'une source (aujourd'hui :
27
+ * fichier généré niché dans un sous-répertoire). Absent dans tous les
28
+ * autres cas — ne pas s'y fier pour distinguer "runnable" de "non-runnable",
29
+ * seul `runnable` fait foi ; ce champ n'existe que pour donner une raison
30
+ * lisible quand il y en a une plus précise que "une source est conflictuelle".
31
+ */
32
+ blockedReason?: string;
33
+ }
34
+ /**
35
+ * Construit le plan de régénération pour `file` dans l'écosystème `ecosystem`,
36
+ * à partir de l'état des fichiers voisins fourni par l'appelant (`context`).
37
+ *
38
+ * Une source de vérité absente de `context.siblingFiles` est traitée comme
39
+ * "conflicted" (état inconnu = pas sûr de régénérer) — jamais runnable par défaut.
40
+ *
41
+ * Final-review Finding 1 — fichiers générés NICHÉS (non à la racine du dépôt).
42
+ * `findEcosystem`/`GENERATED_FILE_PATTERNS` matchent volontairement les
43
+ * lockfiles nichés (ex: `packages/x/package-lock.json` → npm, voir
44
+ * `registry.ts` et son test) mais rien en aval n'est conscient du répertoire :
45
+ * le runner CLI écrit chaque source de vérité résolue à la RACINE du worktree
46
+ * jetable, y lance l'installeur avec `cwd` = cette racine, puis relit le
47
+ * fichier régénéré à son chemin niché — jamais touché par un install lancé à
48
+ * la racine. Résultat possible sans cette garde : un plan jugé runnable qui
49
+ * régénère silencieusement le lockfile RACINE pendant que le lockfile niché
50
+ * (resté tel quel, encore "ours") est relu, valide car simplement périmé, et
51
+ * présenté comme un succès de régénération — exactement le mode d'échec
52
+ * (sortie fausse mais présentée comme fiable) que ce lot existe pour éliminer.
53
+ * Bloqué ici, une seule fois, pour TOUS les appelants (`resolver/index.ts`
54
+ * pass 1, la pass 2 du CLI, le reporting MCP, le harness de mesure) plutôt que
55
+ * dupliqué dans chacun — voir le brief de la fix wave finale.
56
+ */
57
+ export declare function buildRegenerationPlan(file: string, ecosystem: RegenEcosystem, context: RegenerationContext | null | undefined): RegenerationPlan;
58
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/regenerate/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,2FAA2F;AAC3F,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAChC,4FAA4F;IAC5F,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,YAAY,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClG,6FAA6F;IAC7F,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAC9C,gBAAgB,CAyBlB"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * accuracy lot D — Émission d'un plan de régénération (fonction pure, zéro I/O).
3
+ *
4
+ * Le moteur n'exécute jamais rien : `buildRegenerationPlan` se contente de
5
+ * lire l'état (déjà connu de l'appelant, voir `RegenerationContext` dans
6
+ * `types.ts`) des fichiers "sources de vérité" d'un écosystème régénérable,
7
+ * et de décider si régénérer serait sûr (`runnable`). L'exécution de la
8
+ * commande elle-même appartient toujours à l'appelant.
9
+ */
10
+ /**
11
+ * Construit le plan de régénération pour `file` dans l'écosystème `ecosystem`,
12
+ * à partir de l'état des fichiers voisins fourni par l'appelant (`context`).
13
+ *
14
+ * Une source de vérité absente de `context.siblingFiles` est traitée comme
15
+ * "conflicted" (état inconnu = pas sûr de régénérer) — jamais runnable par défaut.
16
+ *
17
+ * Final-review Finding 1 — fichiers générés NICHÉS (non à la racine du dépôt).
18
+ * `findEcosystem`/`GENERATED_FILE_PATTERNS` matchent volontairement les
19
+ * lockfiles nichés (ex: `packages/x/package-lock.json` → npm, voir
20
+ * `registry.ts` et son test) mais rien en aval n'est conscient du répertoire :
21
+ * le runner CLI écrit chaque source de vérité résolue à la RACINE du worktree
22
+ * jetable, y lance l'installeur avec `cwd` = cette racine, puis relit le
23
+ * fichier régénéré à son chemin niché — jamais touché par un install lancé à
24
+ * la racine. Résultat possible sans cette garde : un plan jugé runnable qui
25
+ * régénère silencieusement le lockfile RACINE pendant que le lockfile niché
26
+ * (resté tel quel, encore "ours") est relu, valide car simplement périmé, et
27
+ * présenté comme un succès de régénération — exactement le mode d'échec
28
+ * (sortie fausse mais présentée comme fiable) que ce lot existe pour éliminer.
29
+ * Bloqué ici, une seule fois, pour TOUS les appelants (`resolver/index.ts`
30
+ * pass 1, la pass 2 du CLI, le reporting MCP, le harness de mesure) plutôt que
31
+ * dupliqué dans chacun — voir le brief de la fix wave finale.
32
+ */
33
+ export function buildRegenerationPlan(file, ecosystem, context) {
34
+ const siblingFiles = context?.siblingFiles ?? {};
35
+ const sources = ecosystem.sourcesOfTruth.map((path) => {
36
+ const sibling = siblingFiles[path];
37
+ if (!sibling) {
38
+ return { path, state: "conflicted" };
39
+ }
40
+ return { path, state: sibling.state, confidence: sibling.confidence };
41
+ });
42
+ const normalizedFile = file.replace(/\\/g, "/");
43
+ if (normalizedFile.includes("/")) {
44
+ return {
45
+ file,
46
+ ecosystem: ecosystem.id,
47
+ sources,
48
+ runnable: false,
49
+ blockedReason: `regeneration is not supported for a generated file nested in a subdirectory ("${file}") — resolve it manually or re-run your installer from that directory.`,
50
+ };
51
+ }
52
+ const runnable = sources.every((source) => source.state === "clean" || source.state === "resolved");
53
+ return { file, ecosystem: ecosystem.id, sources, runnable };
54
+ }
55
+ //# sourceMappingURL=plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/regenerate/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwBH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,SAAyB,EACzB,OAA+C;IAE/C,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC;IAEjD,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACpD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO;YACL,IAAI;YACJ,SAAS,EAAE,SAAS,CAAC,EAAE;YACvB,OAAO;YACP,QAAQ,EAAE,KAAK;YACf,aAAa,EAAE,iFAAiF,IAAI,wEAAwE;SAC7K,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;IAEpG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * accuracy lot D — Registre des écosystèmes régénérables (v1).
3
+ *
4
+ * Le moteur n'exécute jamais de commande : il se contente de savoir, pour un
5
+ * chemin de fichier généré donné, QUELLE commande le régénérerait et QUELS
6
+ * fichiers doivent être propres au préalable (`sourcesOfTruth`). L'exécution
7
+ * elle-même appartient toujours à l'appelant (CLI aujourd'hui, desktop plus
8
+ * tard) — voir `plan.ts` et le brief de la tâche.
9
+ *
10
+ * v1 est délibérément restreint aux écosystèmes qui exposent un mode
11
+ * "lockfile-only" ET une façon de couper les scripts de cycle de vie :
12
+ * `go.sum`, `Gemfile.lock`, `poetry.lock` et la régénération de snapshots
13
+ * (`jest -u`) sont hors scope v1 (exécutent du code arbitraire du dépôt).
14
+ *
15
+ * Contrainte globale : les flags de suppression de scripts sont des
16
+ * CONSTANTES du registre, jamais quelque chose que l'appelant peut
17
+ * surcharger. Une entrée sans eux ne doit pas passer la revue de code.
18
+ */
19
+ /** accuracy lot D — un écosystème que le tier de régénération sait piloter. */
20
+ export interface RegenEcosystem {
21
+ id: "npm" | "pnpm" | "yarn-berry" | "composer" | "cargo";
22
+ /** Le fichier généré que possède cette entrée (matche GENERATED_FILE_PATTERNS). */
23
+ lockfile: RegExp;
24
+ /** Fichiers qui doivent être propres (ou résolus par le moteur) avant régénération. */
25
+ sourcesOfTruth: string[];
26
+ /** Commande lockfile-only, scripts coupés. Jamais un install complet. */
27
+ command: {
28
+ bin: string;
29
+ args: string[];
30
+ };
31
+ network: "required" | "offline-capable";
32
+ defaultTimeoutMs: number;
33
+ }
34
+ /**
35
+ * v1 registry — 5 entrées, une par écosystème supporté. Voir le brief de la
36
+ * tâche (§ "v1 registry") pour la justification de chaque commande exacte.
37
+ */
38
+ export declare const REGEN_ECOSYSTEMS: readonly RegenEcosystem[];
39
+ /**
40
+ * Retourne l'entrée du registre dont `lockfile` matche `path`, ou `undefined`
41
+ * si aucune ne correspond (ex: `.min.js` — généré mais hors registre v1).
42
+ */
43
+ export declare function findEcosystem(path: string): RegenEcosystem | undefined;
44
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/regenerate/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,KAAK,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC;IACzD,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,yEAAyE;IACzE,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACzC,OAAO,EAAE,UAAU,GAAG,iBAAiB,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAID;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAiDrD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEtE"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * accuracy lot D — Registre des écosystèmes régénérables (v1).
3
+ *
4
+ * Le moteur n'exécute jamais de commande : il se contente de savoir, pour un
5
+ * chemin de fichier généré donné, QUELLE commande le régénérerait et QUELS
6
+ * fichiers doivent être propres au préalable (`sourcesOfTruth`). L'exécution
7
+ * elle-même appartient toujours à l'appelant (CLI aujourd'hui, desktop plus
8
+ * tard) — voir `plan.ts` et le brief de la tâche.
9
+ *
10
+ * v1 est délibérément restreint aux écosystèmes qui exposent un mode
11
+ * "lockfile-only" ET une façon de couper les scripts de cycle de vie :
12
+ * `go.sum`, `Gemfile.lock`, `poetry.lock` et la régénération de snapshots
13
+ * (`jest -u`) sont hors scope v1 (exécutent du code arbitraire du dépôt).
14
+ *
15
+ * Contrainte globale : les flags de suppression de scripts sont des
16
+ * CONSTANTES du registre, jamais quelque chose que l'appelant peut
17
+ * surcharger. Une entrée sans eux ne doit pas passer la revue de code.
18
+ */
19
+ const DEFAULT_TIMEOUT_MS = 120_000;
20
+ /**
21
+ * v1 registry — 5 entrées, une par écosystème supporté. Voir le brief de la
22
+ * tâche (§ "v1 registry") pour la justification de chaque commande exacte.
23
+ */
24
+ export const REGEN_ECOSYSTEMS = [
25
+ {
26
+ id: "npm",
27
+ lockfile: /package-lock\.json$/i,
28
+ sourcesOfTruth: ["package.json"],
29
+ command: { bin: "npm", args: ["install", "--package-lock-only", "--ignore-scripts"] },
30
+ network: "required",
31
+ defaultTimeoutMs: DEFAULT_TIMEOUT_MS,
32
+ },
33
+ {
34
+ id: "pnpm",
35
+ lockfile: /pnpm-lock\.yaml$/i,
36
+ sourcesOfTruth: ["package.json"],
37
+ command: { bin: "pnpm", args: ["install", "--lockfile-only", "--ignore-scripts"] },
38
+ network: "required",
39
+ defaultTimeoutMs: DEFAULT_TIMEOUT_MS,
40
+ },
41
+ {
42
+ id: "yarn-berry",
43
+ lockfile: /yarn\.lock$/i,
44
+ // Ruling P-3 (brief) — yarn.lock est matché sans distinction classic/berry
45
+ // par GENERATED_FILE_PATTERNS, mais v1 ne pilote QUE berry (`--mode=update-lockfile`
46
+ // n'existe pas en classic). `.yarnrc.yml` est le marqueur berry : en son
47
+ // absence (ou conflit), le plan est non-runnable — voir plan.ts.
48
+ sourcesOfTruth: ["package.json", ".yarnrc.yml"],
49
+ // `--mode=update-lockfile` ne fait jamais tourner d'install ni de scripts de
50
+ // cycle de vie (postinstall…) : il ne fait que mettre à jour le lockfile.
51
+ command: { bin: "yarn", args: ["install", "--mode=update-lockfile"] },
52
+ network: "required",
53
+ defaultTimeoutMs: DEFAULT_TIMEOUT_MS,
54
+ },
55
+ {
56
+ id: "composer",
57
+ lockfile: /composer\.lock$/i,
58
+ sourcesOfTruth: ["composer.json"],
59
+ command: { bin: "composer", args: ["update", "--lock", "--no-scripts", "--no-install"] },
60
+ network: "required",
61
+ defaultTimeoutMs: DEFAULT_TIMEOUT_MS,
62
+ },
63
+ {
64
+ id: "cargo",
65
+ lockfile: /Cargo\.lock$/i,
66
+ sourcesOfTruth: ["Cargo.toml"],
67
+ // `generate-lockfile` résout les dépendances, il ne construit jamais rien :
68
+ // aucun build.rs ni script de cycle de vie ne s'exécute.
69
+ command: { bin: "cargo", args: ["generate-lockfile"] },
70
+ network: "offline-capable",
71
+ defaultTimeoutMs: DEFAULT_TIMEOUT_MS,
72
+ },
73
+ ];
74
+ /**
75
+ * Retourne l'entrée du registre dont `lockfile` matche `path`, ou `undefined`
76
+ * si aucune ne correspond (ex: `.min.js` — généré mais hors registre v1).
77
+ */
78
+ export function findEcosystem(path) {
79
+ return REGEN_ECOSYSTEMS.find((eco) => eco.lockfile.test(path));
80
+ }
81
+ //# sourceMappingURL=registry.js.map