@gitwand/core 2.4.1 → 2.5.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.
- package/dist/__tests__/corpus.d.ts.map +1 -1
- package/dist/__tests__/corpus.js +262 -0
- package/dist/__tests__/corpus.js.map +1 -1
- package/dist/__tests__/patterns/llm-proposed.test.d.ts +10 -0
- package/dist/__tests__/patterns/llm-proposed.test.d.ts.map +1 -0
- package/dist/__tests__/patterns/llm-proposed.test.js +306 -0
- package/dist/__tests__/patterns/llm-proposed.test.js.map +1 -0
- package/dist/classifier.d.ts.map +1 -1
- package/dist/classifier.js +3 -0
- package/dist/classifier.js.map +1 -1
- package/dist/config.d.ts +29 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +26 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/patterns/llm-proposed.d.ts +8 -0
- package/dist/patterns/llm-proposed.d.ts.map +1 -0
- package/dist/patterns/llm-proposed.js +66 -0
- package/dist/patterns/llm-proposed.js.map +1 -0
- package/dist/resolver/index.d.ts.map +1 -1
- package/dist/resolver/index.js +19 -2
- package/dist/resolver/index.js.map +1 -1
- package/dist/resolver/llm-pipeline.d.ts +33 -0
- package/dist/resolver/llm-pipeline.d.ts.map +1 -0
- package/dist/resolver/llm-pipeline.js +218 -0
- package/dist/resolver/llm-pipeline.js.map +1 -0
- package/dist/resolver/policy.d.ts.map +1 -1
- package/dist/resolver/policy.js +2 -0
- package/dist/resolver/policy.js.map +1 -1
- package/dist/resolvers/llm-fallback.d.ts +41 -0
- package/dist/resolvers/llm-fallback.d.ts.map +1 -0
- package/dist/resolvers/llm-fallback.js +231 -0
- package/dist/resolvers/llm-fallback.js.map +1 -0
- package/dist/types.d.ts +123 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests du pattern llm_proposed (v2.5) et de la pipeline LLM fallback.
|
|
3
|
+
*
|
|
4
|
+
* Couvre :
|
|
5
|
+
* 1. Comportement du PatternPlugin (flag module-level, confidence, priority)
|
|
6
|
+
* 2. tryLlmFallbackResolve (endpoint mock, parsing, validation, trace)
|
|
7
|
+
* 3. Intégration resolveAsync avec mock endpoint déterministe
|
|
8
|
+
*/
|
|
9
|
+
import { describe, it, expect, afterEach } from "vitest";
|
|
10
|
+
import llmProposed, { setLlmFallbackEnabled, isLlmFallbackEnabled, } from "../../patterns/llm-proposed.js";
|
|
11
|
+
import { tryLlmFallbackResolve } from "../../resolvers/llm-fallback.js";
|
|
12
|
+
import { resolveAsync } from "../../resolver/index.js";
|
|
13
|
+
// ─── Helpers ──────────────────────────────────────────────────
|
|
14
|
+
/** Hunk fictif minimal pour les tests unitaires du pattern */
|
|
15
|
+
const SIMPLE_HUNK = {
|
|
16
|
+
oursLines: [" level: 'warn',", " format: 'json',"],
|
|
17
|
+
baseLines: [" level: 'info',", " format: 'text',"],
|
|
18
|
+
theirsLines: [" level: 'error',", " format: 'logfmt',"],
|
|
19
|
+
startLine: 10,
|
|
20
|
+
endLine: 20,
|
|
21
|
+
};
|
|
22
|
+
/** Conflit diff3 simple pour les tests d'intégration */
|
|
23
|
+
const COMPLEX_DIFF3 = [
|
|
24
|
+
`<<<<<<< ours`,
|
|
25
|
+
` level: "warn",`,
|
|
26
|
+
` format: "json",`,
|
|
27
|
+
`||||||| base`,
|
|
28
|
+
` level: "info",`,
|
|
29
|
+
` format: "text",`,
|
|
30
|
+
`=======`,
|
|
31
|
+
` level: "error",`,
|
|
32
|
+
` format: "logfmt",`,
|
|
33
|
+
`>>>>>>> theirs`,
|
|
34
|
+
].join("\n");
|
|
35
|
+
/** Endpoint mock déterministe — retourne toujours une résolution valide */
|
|
36
|
+
function makeMockEndpoint(responseText) {
|
|
37
|
+
return {
|
|
38
|
+
async call(_prompt) {
|
|
39
|
+
return responseText;
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
// ─── 1. PatternPlugin unit tests ──────────────────────────────
|
|
44
|
+
describe("llm_proposed PatternPlugin — métadonnées", () => {
|
|
45
|
+
it("a le bon type", () => {
|
|
46
|
+
expect(llmProposed.type).toBe("llm_proposed");
|
|
47
|
+
});
|
|
48
|
+
it("a la bonne priorité (998, juste avant complex 999)", () => {
|
|
49
|
+
expect(llmProposed.priority).toBe(998);
|
|
50
|
+
});
|
|
51
|
+
it("requires === 'both' (évalué quelle que soit la disponibilité de la base)", () => {
|
|
52
|
+
expect(llmProposed.requires).toBe("both");
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
describe("llm_proposed PatternPlugin — flag module-level", () => {
|
|
56
|
+
afterEach(() => {
|
|
57
|
+
// Toujours réinitialiser le flag après chaque test
|
|
58
|
+
setLlmFallbackEnabled(false);
|
|
59
|
+
});
|
|
60
|
+
it("detect() retourne false par défaut (LLM désactivé)", () => {
|
|
61
|
+
expect(llmProposed.detect(SIMPLE_HUNK)).toBe(false);
|
|
62
|
+
});
|
|
63
|
+
it("isLlmFallbackEnabled() retourne false par défaut", () => {
|
|
64
|
+
expect(isLlmFallbackEnabled()).toBe(false);
|
|
65
|
+
});
|
|
66
|
+
it("detect() retourne true après setLlmFallbackEnabled(true)", () => {
|
|
67
|
+
setLlmFallbackEnabled(true);
|
|
68
|
+
expect(llmProposed.detect(SIMPLE_HUNK)).toBe(true);
|
|
69
|
+
});
|
|
70
|
+
it("detect() retourne false après reset setLlmFallbackEnabled(false)", () => {
|
|
71
|
+
setLlmFallbackEnabled(true);
|
|
72
|
+
setLlmFallbackEnabled(false);
|
|
73
|
+
expect(llmProposed.detect(SIMPLE_HUNK)).toBe(false);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
describe("llm_proposed PatternPlugin — confidence", () => {
|
|
77
|
+
it("typeClassification = 50 (incertitude LLM)", () => {
|
|
78
|
+
const score = llmProposed.confidence(SIMPLE_HUNK);
|
|
79
|
+
expect(score.dimensions.typeClassification).toBe(50);
|
|
80
|
+
});
|
|
81
|
+
it("dataRisk = 60 (risque d'hallucination)", () => {
|
|
82
|
+
const score = llmProposed.confidence(SIMPLE_HUNK);
|
|
83
|
+
expect(score.dimensions.dataRisk).toBe(60);
|
|
84
|
+
});
|
|
85
|
+
it("score composite trop bas pour auto-résolution (label low ou medium)", () => {
|
|
86
|
+
const score = llmProposed.confidence(SIMPLE_HUNK);
|
|
87
|
+
// score = 50 - 60*0.40 = 50 - 24 = 26 → "low"
|
|
88
|
+
expect(score.label).toBe("low");
|
|
89
|
+
expect(score.score).toBeLessThan(44);
|
|
90
|
+
});
|
|
91
|
+
it("penalties liste les risques LLM", () => {
|
|
92
|
+
const score = llmProposed.confidence(SIMPLE_HUNK);
|
|
93
|
+
expect(score.penalties.length).toBeGreaterThan(0);
|
|
94
|
+
expect(score.penalties.some((p) => p.toLowerCase().includes("llm") || p.toLowerCase().includes("déterministe"))).toBe(true);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
// ─── 2. tryLlmFallbackResolve ─────────────────────────────────
|
|
98
|
+
describe("tryLlmFallbackResolve — sans endpoint", () => {
|
|
99
|
+
it("retourne lines: null quand endpoint absent", async () => {
|
|
100
|
+
const hunk = {
|
|
101
|
+
...SIMPLE_HUNK,
|
|
102
|
+
type: "llm_proposed",
|
|
103
|
+
confidence: llmProposed.confidence(SIMPLE_HUNK),
|
|
104
|
+
explanation: llmProposed.explanation(SIMPLE_HUNK),
|
|
105
|
+
trace: {
|
|
106
|
+
steps: [],
|
|
107
|
+
selected: "llm_proposed",
|
|
108
|
+
summary: "test",
|
|
109
|
+
hasBase: true,
|
|
110
|
+
},
|
|
111
|
+
zdiff3: false,
|
|
112
|
+
};
|
|
113
|
+
const result = await tryLlmFallbackResolve(hunk, "src/config.ts", "// contexte fictif", { enabled: true });
|
|
114
|
+
expect(result.lines).toBeNull();
|
|
115
|
+
expect(result.llmTrace.accepted).toBe(false);
|
|
116
|
+
expect(result.reason).toMatch(/endpoint/i);
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
describe("tryLlmFallbackResolve — endpoint mock", () => {
|
|
120
|
+
const MOCK_HUNK = {
|
|
121
|
+
oursLines: [` level: "warn",`, ` format: "json",`],
|
|
122
|
+
baseLines: [` level: "info",`, ` format: "text",`],
|
|
123
|
+
theirsLines: [` level: "error",`, ` format: "logfmt",`],
|
|
124
|
+
startLine: 10,
|
|
125
|
+
endLine: 20,
|
|
126
|
+
type: "llm_proposed",
|
|
127
|
+
confidence: llmProposed.confidence(SIMPLE_HUNK),
|
|
128
|
+
explanation: llmProposed.explanation(SIMPLE_HUNK),
|
|
129
|
+
trace: {
|
|
130
|
+
steps: [],
|
|
131
|
+
selected: "llm_proposed",
|
|
132
|
+
summary: "LLM fallback activé",
|
|
133
|
+
hasBase: true,
|
|
134
|
+
},
|
|
135
|
+
zdiff3: false,
|
|
136
|
+
};
|
|
137
|
+
it("extrait les lignes d'un bloc fencé valide", async () => {
|
|
138
|
+
const endpoint = makeMockEndpoint("```\n level: \"warn\",\n format: \"json\",\n```");
|
|
139
|
+
const result = await tryLlmFallbackResolve(MOCK_HUNK, "src/config.ts", "", {
|
|
140
|
+
enabled: true,
|
|
141
|
+
endpoint,
|
|
142
|
+
});
|
|
143
|
+
expect(result.lines).not.toBeNull();
|
|
144
|
+
expect(result.lines).toEqual([` level: "warn",`, ` format: "json",`]);
|
|
145
|
+
expect(result.llmTrace.accepted).toBe(true);
|
|
146
|
+
});
|
|
147
|
+
it("retourne lines: null pour CANNOT_RESOLVE", async () => {
|
|
148
|
+
const endpoint = makeMockEndpoint("CANNOT_RESOLVE");
|
|
149
|
+
const result = await tryLlmFallbackResolve(MOCK_HUNK, "src/config.ts", "", {
|
|
150
|
+
enabled: true,
|
|
151
|
+
endpoint,
|
|
152
|
+
});
|
|
153
|
+
expect(result.lines).toBeNull();
|
|
154
|
+
expect(result.llmTrace.accepted).toBe(false);
|
|
155
|
+
expect(result.reason).toMatch(/cannot_resolve|refusé/i);
|
|
156
|
+
});
|
|
157
|
+
it("retourne lines: null quand l'endpoint throw une erreur", async () => {
|
|
158
|
+
const endpoint = {
|
|
159
|
+
async call() { throw new Error("network timeout"); },
|
|
160
|
+
};
|
|
161
|
+
const result = await tryLlmFallbackResolve(MOCK_HUNK, "src/config.ts", "", {
|
|
162
|
+
enabled: true,
|
|
163
|
+
endpoint,
|
|
164
|
+
});
|
|
165
|
+
expect(result.lines).toBeNull();
|
|
166
|
+
expect(result.llmTrace.accepted).toBe(false);
|
|
167
|
+
expect(result.reason).toMatch(/erreur|network timeout/i);
|
|
168
|
+
});
|
|
169
|
+
it("LlmTrace — promptHash est un hash SHA-256 hexadécimal (64 chars)", async () => {
|
|
170
|
+
const endpoint = makeMockEndpoint("```\n level: \"warn\",\n```");
|
|
171
|
+
const result = await tryLlmFallbackResolve(MOCK_HUNK, "src/config.ts", "", {
|
|
172
|
+
enabled: true,
|
|
173
|
+
endpoint,
|
|
174
|
+
});
|
|
175
|
+
expect(result.llmTrace.promptHash).toMatch(/^[0-9a-f]{64}$/);
|
|
176
|
+
});
|
|
177
|
+
it("LlmTrace — rawResponseTruncated est ≤ 500 chars", async () => {
|
|
178
|
+
const longResponse = "x".repeat(1000);
|
|
179
|
+
const endpoint = makeMockEndpoint(longResponse);
|
|
180
|
+
const result = await tryLlmFallbackResolve(MOCK_HUNK, "src/config.ts", "", {
|
|
181
|
+
enabled: true,
|
|
182
|
+
endpoint,
|
|
183
|
+
});
|
|
184
|
+
expect(result.llmTrace.rawResponseTruncated.length).toBeLessThanOrEqual(500);
|
|
185
|
+
});
|
|
186
|
+
it("LlmTrace — calledAt est un ISO 8601 valide", async () => {
|
|
187
|
+
const endpoint = makeMockEndpoint("```\n level: \"warn\",\n```");
|
|
188
|
+
const result = await tryLlmFallbackResolve(MOCK_HUNK, "src/config.ts", "", {
|
|
189
|
+
enabled: true,
|
|
190
|
+
endpoint,
|
|
191
|
+
});
|
|
192
|
+
expect(() => new Date(result.llmTrace.calledAt)).not.toThrow();
|
|
193
|
+
expect(new Date(result.llmTrace.calledAt).toISOString()).toBe(result.llmTrace.calledAt);
|
|
194
|
+
});
|
|
195
|
+
it("LlmTrace — model par défaut est claude-sonnet-4-6", async () => {
|
|
196
|
+
const endpoint = makeMockEndpoint("```\n level: \"warn\",\n```");
|
|
197
|
+
const result = await tryLlmFallbackResolve(MOCK_HUNK, "src/config.ts", "", {
|
|
198
|
+
enabled: true,
|
|
199
|
+
endpoint,
|
|
200
|
+
});
|
|
201
|
+
expect(result.llmTrace.model).toBe("claude-sonnet-4-6");
|
|
202
|
+
});
|
|
203
|
+
it("refus si validationScore < minPostMergeScore (marqueurs résiduels)", async () => {
|
|
204
|
+
// Endpoint qui retourne des marqueurs de conflit résiduels
|
|
205
|
+
const endpoint = makeMockEndpoint("```\n<<<<<<< ours\n bad content\n>>>>>>> theirs\n```");
|
|
206
|
+
const result = await tryLlmFallbackResolve(MOCK_HUNK, "src/config.ts", "", {
|
|
207
|
+
enabled: true,
|
|
208
|
+
endpoint,
|
|
209
|
+
minPostMergeScore: 80,
|
|
210
|
+
});
|
|
211
|
+
expect(result.lines).toBeNull();
|
|
212
|
+
expect(result.llmTrace.validationScore).toBe(0);
|
|
213
|
+
expect(result.llmTrace.accepted).toBe(false);
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
// ─── 3. resolveAsync — intégration LLM fallback ───────────────
|
|
217
|
+
describe("resolveAsync — sans llmFallback", () => {
|
|
218
|
+
it("un hunk complex reste complex et non résolu", async () => {
|
|
219
|
+
const result = await resolveAsync(COMPLEX_DIFF3, "src/config.ts");
|
|
220
|
+
expect(result.hunks[0].type).toBe("complex");
|
|
221
|
+
expect(result.stats.autoResolved).toBe(0);
|
|
222
|
+
expect(result.mergedContent).toBeNull();
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
describe("resolveAsync — avec llmFallback enabled sans endpoint", () => {
|
|
226
|
+
it("le hunk reste complex quand l'endpoint est absent (flag LLM non activé)", async () => {
|
|
227
|
+
// Sans endpoint, llmEnabled = false → setLlmFallbackEnabled jamais appelé
|
|
228
|
+
// → classification normale → "complex"
|
|
229
|
+
const result = await resolveAsync(COMPLEX_DIFF3, "src/config.ts", {
|
|
230
|
+
llmFallback: { enabled: true }, // enabled mais pas d'endpoint → llmEnabled = false
|
|
231
|
+
});
|
|
232
|
+
expect(result.hunks[0].type).toBe("complex");
|
|
233
|
+
expect(result.stats.autoResolved).toBe(0);
|
|
234
|
+
expect(result.mergedContent).toBeNull();
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
describe("resolveAsync — avec llmFallback enabled et endpoint mock", () => {
|
|
238
|
+
// Note : on utilise validationLevel: "off" pour éviter la validation parse-tree
|
|
239
|
+
// sur des contenus partiels (lignes de code hors d'un fichier complet).
|
|
240
|
+
// En production, l'appelant fournit un fichier complet qui parse correctement.
|
|
241
|
+
it("résout le hunk complex via LLM, mergedContent non null", async () => {
|
|
242
|
+
const resolvedLines = ` level: "warn",\n format: "json",`;
|
|
243
|
+
const endpoint = makeMockEndpoint(`\`\`\`\n${resolvedLines}\n\`\`\``);
|
|
244
|
+
const result = await resolveAsync(COMPLEX_DIFF3, "src/config.ts", {
|
|
245
|
+
llmFallback: { enabled: true, endpoint },
|
|
246
|
+
validationLevel: "off",
|
|
247
|
+
});
|
|
248
|
+
expect(result.stats.autoResolved).toBe(1);
|
|
249
|
+
expect(result.mergedContent).not.toBeNull();
|
|
250
|
+
expect(result.hunks[0].type).toBe("llm_proposed");
|
|
251
|
+
});
|
|
252
|
+
it("la DecisionTrace contient llmTrace quand résolu par LLM", async () => {
|
|
253
|
+
const resolvedLines = ` level: "warn",\n format: "json",`;
|
|
254
|
+
const endpoint = makeMockEndpoint(`\`\`\`\n${resolvedLines}\n\`\`\``);
|
|
255
|
+
const result = await resolveAsync(COMPLEX_DIFF3, "src/config.ts", {
|
|
256
|
+
llmFallback: { enabled: true, endpoint },
|
|
257
|
+
validationLevel: "off",
|
|
258
|
+
});
|
|
259
|
+
const hunk = result.resolutions[0].hunk;
|
|
260
|
+
expect(hunk.trace.llmTrace).toBeDefined();
|
|
261
|
+
expect(hunk.trace.llmTrace.accepted).toBe(true);
|
|
262
|
+
expect(hunk.trace.llmTrace.promptHash).toMatch(/^[0-9a-f]{64}$/);
|
|
263
|
+
});
|
|
264
|
+
it("reste non résolu si l'endpoint retourne CANNOT_RESOLVE", async () => {
|
|
265
|
+
const endpoint = makeMockEndpoint("CANNOT_RESOLVE");
|
|
266
|
+
const result = await resolveAsync(COMPLEX_DIFF3, "src/config.ts", {
|
|
267
|
+
llmFallback: { enabled: true, endpoint },
|
|
268
|
+
validationLevel: "off",
|
|
269
|
+
});
|
|
270
|
+
expect(result.stats.autoResolved).toBe(0);
|
|
271
|
+
expect(result.mergedContent).toBeNull();
|
|
272
|
+
// La trace LLM est quand même attachée pour l'audit
|
|
273
|
+
expect(result.resolutions[0].hunk.trace.llmTrace).toBeDefined();
|
|
274
|
+
expect(result.resolutions[0].hunk.trace.llmTrace.accepted).toBe(false);
|
|
275
|
+
});
|
|
276
|
+
it("les hunks déjà résolus (non-complex) ne sont pas re-classifiés llm_proposed", async () => {
|
|
277
|
+
// Conflit trivial + conflit complexe
|
|
278
|
+
const mixedInput = [
|
|
279
|
+
`<<<<<<< ours`,
|
|
280
|
+
`const x = 1;`,
|
|
281
|
+
`||||||| base`,
|
|
282
|
+
`const x = 1;`,
|
|
283
|
+
`=======`,
|
|
284
|
+
`const x = 1;`,
|
|
285
|
+
`>>>>>>> theirs`,
|
|
286
|
+
`some text`,
|
|
287
|
+
`<<<<<<< ours`,
|
|
288
|
+
` level: "warn",`,
|
|
289
|
+
`||||||| base`,
|
|
290
|
+
` level: "info",`,
|
|
291
|
+
`=======`,
|
|
292
|
+
` level: "error",`,
|
|
293
|
+
`>>>>>>> theirs`,
|
|
294
|
+
].join("\n");
|
|
295
|
+
const endpoint = makeMockEndpoint("```\n level: \"warn\",\n```");
|
|
296
|
+
const result = await resolveAsync(mixedInput, "src/config.ts", {
|
|
297
|
+
llmFallback: { enabled: true, endpoint },
|
|
298
|
+
validationLevel: "off",
|
|
299
|
+
});
|
|
300
|
+
// Premier hunk : same_change, auto-résolu par le moteur déterministe
|
|
301
|
+
expect(result.hunks[0].type).toBe("same_change");
|
|
302
|
+
// Deuxième hunk : llm_proposed, résolu via LLM
|
|
303
|
+
expect(result.hunks[1].type).toBe("llm_proposed");
|
|
304
|
+
});
|
|
305
|
+
});
|
|
306
|
+
//# sourceMappingURL=llm-proposed.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-proposed.test.js","sourceRoot":"","sources":["../../../src/__tests__/patterns/llm-proposed.test.ts"],"names":[],"mappings":"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"}
|
package/dist/classifier.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../src/classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAyD,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../src/classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAyD,MAAM,YAAY,CAAC;AA2GvH;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,cAAc,CA6BpE"}
|
package/dist/classifier.js
CHANGED
|
@@ -16,6 +16,7 @@ import whitespaceOnly from "./patterns/whitespace-only.js";
|
|
|
16
16
|
import reorderOnly from "./patterns/reorder-only.js";
|
|
17
17
|
import insertionAtBoundary from "./patterns/insertion-at-boundary.js";
|
|
18
18
|
import valueOnlyChange from "./patterns/value-only-change.js";
|
|
19
|
+
import llmProposed from "./patterns/llm-proposed.js"; // v2.5 — priority 998
|
|
19
20
|
import complex from "./patterns/complex.js";
|
|
20
21
|
// ─── Registre ────────────────────────────────────────────────
|
|
21
22
|
/**
|
|
@@ -32,6 +33,7 @@ const PATTERNS = [
|
|
|
32
33
|
reorderOnly, // priority 55 ← v1.4
|
|
33
34
|
insertionAtBoundary, // priority 57 ← v1.4
|
|
34
35
|
valueOnlyChange, // priority 60
|
|
36
|
+
llmProposed, // priority 998 ← v2.5 (OFF par défaut, activé par resolveAsync)
|
|
35
37
|
complex, // priority 999 (fallback — detect() always true)
|
|
36
38
|
];
|
|
37
39
|
// ─── Trace builder ───────────────────────────────────────────
|
|
@@ -86,6 +88,7 @@ function buildSummary(type, h) {
|
|
|
86
88
|
case "reorder_only": return "Mêmes lignes, ordre différent — résolution : accepter l'ordre theirs.";
|
|
87
89
|
case "insertion_at_boundary": return "Insertions pures des deux côtés — résolution par union.";
|
|
88
90
|
case "value_only_change": return "Même structure, valeur(s) volatile(s) différente(s) — résolution : accepter theirs.";
|
|
91
|
+
case "llm_proposed": return "LLM fallback activé — résolution déléguée à l'endpoint LLM configuré.";
|
|
89
92
|
case "complex": return "Conflit complexe — toutes les heuristiques automatiques ont échoué.";
|
|
90
93
|
default: return `Type détecté : ${type}.`;
|
|
91
94
|
}
|
package/dist/classifier.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../src/classifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../src/classifier.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -124,6 +124,35 @@ export interface GitWandrcConfig {
|
|
|
124
124
|
/** Outils externes activés en mode strict. Défaut : ["tsc"]. */
|
|
125
125
|
tools?: Array<"tsc" | "eslint">;
|
|
126
126
|
};
|
|
127
|
+
/**
|
|
128
|
+
* v2.5 — Configuration du fallback LLM (sans le champ `endpoint`, injecté programmatiquement).
|
|
129
|
+
*
|
|
130
|
+
* Le champ `endpoint` de `LlmFallbackConfig` ne peut pas être sérialisé dans un fichier JSON.
|
|
131
|
+
* Il doit être injecté via `GitWandOptions.llmFallback.endpoint` dans le code consommateur.
|
|
132
|
+
*
|
|
133
|
+
* ```jsonc
|
|
134
|
+
* {
|
|
135
|
+
* "llmFallback": {
|
|
136
|
+
* "enabled": false,
|
|
137
|
+
* "model": "claude-sonnet-4-6",
|
|
138
|
+
* "maxTokens": 4000,
|
|
139
|
+
* "temperature": 0.0,
|
|
140
|
+
* "contextLines": 50,
|
|
141
|
+
* "minPostMergeScore": 80,
|
|
142
|
+
* "minMode": "strict"
|
|
143
|
+
* }
|
|
144
|
+
* }
|
|
145
|
+
* ```
|
|
146
|
+
*/
|
|
147
|
+
llmFallback?: {
|
|
148
|
+
enabled?: boolean;
|
|
149
|
+
model?: string;
|
|
150
|
+
maxTokens?: number;
|
|
151
|
+
temperature?: number;
|
|
152
|
+
contextLines?: number;
|
|
153
|
+
minPostMergeScore?: number;
|
|
154
|
+
minMode?: ValidationLevel;
|
|
155
|
+
};
|
|
127
156
|
}
|
|
128
157
|
/**
|
|
129
158
|
* Parse une configuration GitWandrc depuis une string JSON.
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAIH;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;AAI5D;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,eAAe,GACf,cAAc,GACd,eAAe,GACf,QAAQ,CAAC;AAIb;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,6FAA6F;IAC7F,UAAU,EAAE,OAAO,CAAC;IACpB,gDAAgD;IAChD,eAAe,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,cAAc,EAAE,OAAO,CAAC;IACxB,gDAAgD;IAChD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iEAAiE;IACjE,aAAa,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACtD;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CA2ChE;AAED,+DAA+D;AAC/D,eAAO,MAAM,cAAc,EAAE,WAA6B,CAAC;AAI3D;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAapE;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,WAAW,EAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAC7C,WAAW,CAmBb;AAID;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,eAAe,CAAC;QACxB,gEAAgE;QAChE,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC;KACjC,CAAC;CACH;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAIH;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;AAI5D;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,eAAe,GACf,cAAc,GACd,eAAe,GACf,QAAQ,CAAC;AAIb;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,6FAA6F;IAC7F,UAAU,EAAE,OAAO,CAAC;IACpB,gDAAgD;IAChD,eAAe,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,cAAc,EAAE,OAAO,CAAC;IACxB,gDAAgD;IAChD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iEAAiE;IACjE,aAAa,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACtD;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CA2ChE;AAED,+DAA+D;AAC/D,eAAO,MAAM,cAAc,EAAE,WAA6B,CAAC;AAI3D;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAapE;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,WAAW,EAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAC7C,WAAW,CAmBb;AAID;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,eAAe,CAAC;QACxB,gEAAgE;QAChE,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC;KACjC,CAAC;IACF;;;;;;;;;;;;;;;;;;;OAmBG;IACH,WAAW,CAAC,EAAE;QACZ,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,OAAO,CAAC,EAAE,eAAe,CAAC;KAC3B,CAAC;CACH;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CA6FnE"}
|
package/dist/config.js
CHANGED
|
@@ -192,8 +192,8 @@ export function parseGitwandrc(json) {
|
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
// v2.4 — Validation post-merge.
|
|
195
|
+
const validLevels = ["balanced", "strict", "off"];
|
|
195
196
|
if (parsed.validation && typeof parsed.validation === "object") {
|
|
196
|
-
const validLevels = ["balanced", "strict", "off"];
|
|
197
197
|
const validTools = ["tsc", "eslint"];
|
|
198
198
|
const val = {};
|
|
199
199
|
if (validLevels.includes(parsed.validation.level)) {
|
|
@@ -208,6 +208,31 @@ export function parseGitwandrc(json) {
|
|
|
208
208
|
result.validation = val;
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
|
+
// v2.5 — LLM fallback config (sans endpoint, injecté programmatiquement).
|
|
212
|
+
if (parsed.llmFallback && typeof parsed.llmFallback === "object") {
|
|
213
|
+
const llm = parsed.llmFallback;
|
|
214
|
+
const fallback = {};
|
|
215
|
+
if (typeof llm.enabled === "boolean")
|
|
216
|
+
fallback.enabled = llm.enabled;
|
|
217
|
+
if (typeof llm.model === "string" && llm.model.length > 0)
|
|
218
|
+
fallback.model = llm.model;
|
|
219
|
+
if (typeof llm.maxTokens === "number" && llm.maxTokens > 0)
|
|
220
|
+
fallback.maxTokens = llm.maxTokens;
|
|
221
|
+
if (typeof llm.temperature === "number" && llm.temperature >= 0 && llm.temperature <= 2) {
|
|
222
|
+
fallback.temperature = llm.temperature;
|
|
223
|
+
}
|
|
224
|
+
if (typeof llm.contextLines === "number" && llm.contextLines > 0) {
|
|
225
|
+
fallback.contextLines = llm.contextLines;
|
|
226
|
+
}
|
|
227
|
+
if (typeof llm.minPostMergeScore === "number" && llm.minPostMergeScore >= 0 && llm.minPostMergeScore <= 100) {
|
|
228
|
+
fallback.minPostMergeScore = llm.minPostMergeScore;
|
|
229
|
+
}
|
|
230
|
+
if (validLevels.includes(llm.minMode))
|
|
231
|
+
fallback.minMode = llm.minMode;
|
|
232
|
+
if (Object.keys(fallback).length > 0) {
|
|
233
|
+
result.llmFallback = fallback;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
211
236
|
return result;
|
|
212
237
|
}
|
|
213
238
|
catch {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -39,7 +39,9 @@ export { tryResolveYarnLockConflict } from "./resolvers/lockfile-yarn.js";
|
|
|
39
39
|
export { tryResolvePnpmLockConflict } from "./resolvers/lockfile-pnpm.js";
|
|
40
40
|
export { matchGlob, effectivePolicyForFile, policyToConfig, parseGitwandrc, DEFAULT_POLICY, } from "./config.js";
|
|
41
41
|
export { tryFormatAwareResolve, isJsonFile, isMarkdownFile, isYamlFile, isJsFile, isVueFile, isCssFile, isNpmLockfile, isYarnLockfile, isPnpmLockfile, isLockfile, } from "./resolvers/dispatcher.js";
|
|
42
|
-
export type { MergeInput, MergeResult, MergeStats, ConflictHunk, ConflictType, Confidence, ConfidenceScore, HunkResolution, GitWandOptions, DecisionTrace, TraceStep, ValidationResult, } from "./types.js";
|
|
42
|
+
export type { MergeInput, MergeResult, MergeStats, ConflictHunk, ConflictType, Confidence, ConfidenceScore, HunkResolution, GitWandOptions, DecisionTrace, TraceStep, ValidationResult, ExternalValidationResult, LlmEndpoint, LlmFallbackConfig, LlmTrace, } from "./types.js";
|
|
43
|
+
export { tryLlmFallbackResolve } from "./resolvers/llm-fallback.js";
|
|
44
|
+
export type { LlmResolveResult } from "./resolvers/llm-fallback.js";
|
|
43
45
|
export type { JsonMergeResult } from "./resolvers/json.js";
|
|
44
46
|
export type { MarkdownMergeResult, MarkdownSection } from "./resolvers/markdown.js";
|
|
45
47
|
export type { YamlMergeResult, YamlEntry } from "./resolvers/yaml.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAG5D,OAAO,EACL,yBAAyB,EACzB,gBAAgB,EAAQ,kBAAkB;AAC1C,oBAAoB,EAAI,YAAY;AACpC,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGlE,OAAO,EACL,aAAa,EACb,eAAe,EACf,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGxG,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAG1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAG1E,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACT,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,GACX,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EAEV,eAAe,EACf,cAAc,EACd,cAAc,EAEd,aAAa,EACb,SAAS,EAET,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -44,4 +44,6 @@ export { tryResolvePnpmLockConflict } from "./resolvers/lockfile-pnpm.js";
|
|
|
44
44
|
// Phase 7.4 — Politiques de merge et configuration par projet
|
|
45
45
|
export { matchGlob, effectivePolicyForFile, policyToConfig, parseGitwandrc, DEFAULT_POLICY, } from "./config.js";
|
|
46
46
|
export { tryFormatAwareResolve, isJsonFile, isMarkdownFile, isYamlFile, isJsFile, isVueFile, isCssFile, isNpmLockfile, isYarnLockfile, isPnpmLockfile, isLockfile, } from "./resolvers/dispatcher.js";
|
|
47
|
+
// v2.5 — LLM fallback resolver (consommateurs souhaitant invoquer directement)
|
|
48
|
+
export { tryLlmFallbackResolve } from "./resolvers/llm-fallback.js";
|
|
47
49
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE5D,2EAA2E;AAC3E,OAAO,EACL,yBAAyB,EACzB,gBAAgB,EAAQ,kBAAkB;AAC1C,oBAAoB,EAAI,YAAY;AACpC,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAElE,wCAAwC;AACxC,OAAO,EACL,aAAa,EACb,eAAe,EACf,SAAS,GAIV,MAAM,iBAAiB,CAAC;AAEzB,kDAAkD;AAClD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,eAAe,GAGhB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,iCAAiC,CAAC;AAGzC,gDAAgD;AAChD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAExG,8EAA8E;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE1E,oEAAoE;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,8DAA8D;AAC9D,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACT,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,GACX,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE5D,2EAA2E;AAC3E,OAAO,EACL,yBAAyB,EACzB,gBAAgB,EAAQ,kBAAkB;AAC1C,oBAAoB,EAAI,YAAY;AACpC,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAElE,wCAAwC;AACxC,OAAO,EACL,aAAa,EACb,eAAe,EACf,SAAS,GAIV,MAAM,iBAAiB,CAAC;AAEzB,kDAAkD;AAClD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,eAAe,GAGhB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,iCAAiC,CAAC;AAGzC,gDAAgD;AAChD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAExG,8EAA8E;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE1E,oEAAoE;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,8DAA8D;AAC9D,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACT,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,GACX,MAAM,2BAA2B,CAAC;AAyBnC,+EAA+E;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PatternPlugin } from "../types.js";
|
|
2
|
+
/** Active ou désactive le pattern llm_proposed pour la prochaine classification. */
|
|
3
|
+
export declare function setLlmFallbackEnabled(enabled: boolean): void;
|
|
4
|
+
/** Retourne l'état actuel du flag (utile pour les tests). */
|
|
5
|
+
export declare function isLlmFallbackEnabled(): boolean;
|
|
6
|
+
declare const llmProposed: PatternPlugin;
|
|
7
|
+
export default llmProposed;
|
|
8
|
+
//# sourceMappingURL=llm-proposed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-proposed.d.ts","sourceRoot":"","sources":["../../src/patterns/llm-proposed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkC,aAAa,EAAE,MAAM,aAAa,CAAC;AA8BjF,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE5D;AAED,6DAA6D;AAC7D,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,QAAA,MAAM,WAAW,EAAE,aAoClB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { makeScore } from "./utils.js";
|
|
2
|
+
/**
|
|
3
|
+
* v2.5 — Pattern de fallback LLM (priority 998, juste avant `complex` à 999).
|
|
4
|
+
*
|
|
5
|
+
* Ce plugin est désactivé par défaut : `detect()` retourne toujours `false`
|
|
6
|
+
* sauf quand le flag interne `_llmFallbackEnabled` est activé par `resolveAsync()`
|
|
7
|
+
* avant de lancer la classification.
|
|
8
|
+
*
|
|
9
|
+
* ## Design
|
|
10
|
+
*
|
|
11
|
+
* Le `PatternPlugin.detect()` ne reçoit pas les options (contrainte du registre).
|
|
12
|
+
* L'activation se fait via un flag module-level positionné par `resolveAsync()` :
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* // Dans resolveAsync() :
|
|
16
|
+
* setLlmFallbackEnabled(true);
|
|
17
|
+
* const result = classifyConflict(hunk);
|
|
18
|
+
* setLlmFallbackEnabled(false);
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* La résolution effective (appel LLM) a lieu en phase 5 de `resolveAsync()`,
|
|
22
|
+
* après la classification. Le score initial (`dataRisk: 60, typeClassification: 50`)
|
|
23
|
+
* est volontairement médiocre — la décision finale dépend de la validation post-merge.
|
|
24
|
+
*/
|
|
25
|
+
/** Flag interne — positionné par `resolveAsync()` avant classification */
|
|
26
|
+
let _llmFallbackEnabled = false;
|
|
27
|
+
/** Active ou désactive le pattern llm_proposed pour la prochaine classification. */
|
|
28
|
+
export function setLlmFallbackEnabled(enabled) {
|
|
29
|
+
_llmFallbackEnabled = enabled;
|
|
30
|
+
}
|
|
31
|
+
/** Retourne l'état actuel du flag (utile pour les tests). */
|
|
32
|
+
export function isLlmFallbackEnabled() {
|
|
33
|
+
return _llmFallbackEnabled;
|
|
34
|
+
}
|
|
35
|
+
const llmProposed = {
|
|
36
|
+
type: "llm_proposed",
|
|
37
|
+
priority: 998,
|
|
38
|
+
requires: "both",
|
|
39
|
+
detect(_h) {
|
|
40
|
+
// OFF par défaut. Activé uniquement par resolveAsync() via setLlmFallbackEnabled(true).
|
|
41
|
+
return _llmFallbackEnabled;
|
|
42
|
+
},
|
|
43
|
+
confidence(_h) {
|
|
44
|
+
// Score initial volontairement médiocre (dataRisk élevé, typeClassification moyen).
|
|
45
|
+
// La résolution sera acceptée ou rejetée selon la validation post-merge stricte.
|
|
46
|
+
return makeScore(50, // typeClassification : incertitude sur la qualité de la résolution LLM
|
|
47
|
+
60, // dataRisk : risque non nul d'hallucination
|
|
48
|
+
0, // scopeImpact : inconnu à ce stade
|
|
49
|
+
[], // boosters
|
|
50
|
+
[
|
|
51
|
+
"Résolution non déterministe (LLM)",
|
|
52
|
+
"Validation post-merge stricte requise avant acceptation",
|
|
53
|
+
]);
|
|
54
|
+
},
|
|
55
|
+
explanation(_h) {
|
|
56
|
+
return "Résolution proposée par LLM fallback. Le hunk sera envoyé à l'endpoint LLM configuré pour une résolution assistée. La résolution sera validée (parse-tree + tsc/eslint) avant acceptation.";
|
|
57
|
+
},
|
|
58
|
+
passReason(_h) {
|
|
59
|
+
return "Aucun pattern déterministe applicable — délégation au LLM fallback (opt-in).";
|
|
60
|
+
},
|
|
61
|
+
failReason(_h) {
|
|
62
|
+
return "LLM fallback désactivé (options.llmFallback.enabled !== true).";
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
export default llmProposed;
|
|
66
|
+
//# sourceMappingURL=llm-proposed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-proposed.js","sourceRoot":"","sources":["../../src/patterns/llm-proposed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,0EAA0E;AAC1E,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAEhC,oFAAoF;AACpF,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,mBAAmB,GAAG,OAAO,CAAC;AAChC,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,oBAAoB;IAClC,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,MAAM,WAAW,GAAkB;IACjC,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,MAAM;IAEhB,MAAM,CAAC,EAAiB;QACtB,wFAAwF;QACxF,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,EAAiB;QAC1B,oFAAoF;QACpF,iFAAiF;QACjF,OAAO,SAAS,CACd,EAAE,EAAI,uEAAuE;QAC7E,EAAE,EAAI,4CAA4C;QAClD,CAAC,EAAK,mCAAmC;QACzC,EAAE,EAAI,WAAW;QACjB;YACE,mCAAmC;YACnC,yDAAyD;SAC1D,CACF,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,EAAiB;QAC3B,OAAO,4LAA4L,CAAC;IACtM,CAAC;IAED,UAAU,CAAC,EAAiB;QAC1B,OAAO,8EAA8E,CAAC;IACxF,CAAC;IAED,UAAU,CAAC,EAAiB;QAC1B,OAAO,gEAAgE,CAAC;IAC1E,CAAC;CACF,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resolver/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAIV,cAAc,EAEd,WAAW,EAGZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resolver/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAIV,cAAc,EAEd,WAAW,EAGZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAC;AAoEhC;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,cAAmB,GAC/B,WAAW,CAgGb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,YAAY,CAChC,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,cAAmB,EAChC,cAAc,GAAE,uBAA4B,GAC3C,OAAO,CAAC,WAAW,CAAC,CAyGtB"}
|