ghagga-core 2.9.1 → 3.0.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/LICENSE +21 -0
- package/dist/agents/consensus.d.ts.map +1 -1
- package/dist/agents/consensus.js +7 -2
- package/dist/agents/consensus.js.map +1 -1
- package/dist/agents/diagnostic.d.ts.map +1 -1
- package/dist/agents/diagnostic.js +7 -2
- package/dist/agents/diagnostic.js.map +1 -1
- package/dist/agents/fan-out-lenses.d.ts.map +1 -1
- package/dist/agents/fan-out-lenses.js +7 -2
- package/dist/agents/fan-out-lenses.js.map +1 -1
- package/dist/agents/prompts.d.ts +49 -1
- package/dist/agents/prompts.d.ts.map +1 -1
- package/dist/agents/prompts.js +133 -5
- package/dist/agents/prompts.js.map +1 -1
- package/dist/agents/simple.d.ts +1 -1
- package/dist/agents/simple.d.ts.map +1 -1
- package/dist/agents/simple.js +6 -4
- package/dist/agents/simple.js.map +1 -1
- package/dist/agents/workflow.d.ts.map +1 -1
- package/dist/agents/workflow.js +13 -4
- package/dist/agents/workflow.js.map +1 -1
- package/dist/critique/critique.d.ts.map +1 -1
- package/dist/critique/critique.js +14 -6
- package/dist/critique/critique.js.map +1 -1
- package/dist/diff/index.d.ts +12 -0
- package/dist/diff/index.d.ts.map +1 -0
- package/dist/diff/index.js +11 -0
- package/dist/diff/index.js.map +1 -0
- package/dist/diff/parse.d.ts +41 -0
- package/dist/diff/parse.d.ts.map +1 -0
- package/dist/diff/parse.js +303 -0
- package/dist/diff/parse.js.map +1 -0
- package/dist/diff/types.d.ts +106 -0
- package/dist/diff/types.d.ts.map +1 -0
- package/dist/diff/types.js +23 -0
- package/dist/diff/types.js.map +1 -0
- package/dist/embed.d.ts +5 -2
- package/dist/embed.d.ts.map +1 -1
- package/dist/embed.js +7 -3
- package/dist/embed.js.map +1 -1
- package/dist/enhance/prompt.d.ts +5 -1
- package/dist/enhance/prompt.d.ts.map +1 -1
- package/dist/enhance/prompt.js +9 -2
- package/dist/enhance/prompt.js.map +1 -1
- package/dist/format.d.ts +31 -0
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +256 -15
- package/dist/format.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/memory/pageindex/index.d.ts +2 -2
- package/dist/memory/pageindex/index.d.ts.map +1 -1
- package/dist/memory/pageindex/index.js.map +1 -1
- package/dist/memory/pageindex/service.d.ts +10 -1
- package/dist/memory/pageindex/service.d.ts.map +1 -1
- package/dist/memory/pageindex/service.js +2 -2
- package/dist/memory/pageindex/service.js.map +1 -1
- package/dist/memory/persist.d.ts.map +1 -1
- package/dist/memory/persist.js +10 -3
- package/dist/memory/persist.js.map +1 -1
- package/dist/memory/privacy.d.ts.map +1 -1
- package/dist/memory/privacy.js +45 -6
- package/dist/memory/privacy.js.map +1 -1
- package/dist/memory/sqlite.d.ts +1 -13
- package/dist/memory/sqlite.d.ts.map +1 -1
- package/dist/memory/sqlite.js +45 -27
- package/dist/memory/sqlite.js.map +1 -1
- package/dist/memory/taxonomy.d.ts.map +1 -1
- package/dist/memory/taxonomy.js +6 -1
- package/dist/memory/taxonomy.js.map +1 -1
- package/dist/pipeline/degrade.d.ts +61 -0
- package/dist/pipeline/degrade.d.ts.map +1 -0
- package/dist/pipeline/degrade.js +58 -0
- package/dist/pipeline/degrade.js.map +1 -0
- package/dist/pipeline/enrich.d.ts +29 -0
- package/dist/pipeline/enrich.d.ts.map +1 -0
- package/dist/pipeline/enrich.js +271 -0
- package/dist/pipeline/enrich.js.map +1 -0
- package/dist/pipeline/execute.d.ts +22 -0
- package/dist/pipeline/execute.d.ts.map +1 -0
- package/dist/pipeline/execute.js +250 -0
- package/dist/pipeline/execute.js.map +1 -0
- package/dist/pipeline/finalize.d.ts +26 -0
- package/dist/pipeline/finalize.d.ts.map +1 -0
- package/dist/pipeline/finalize.js +52 -0
- package/dist/pipeline/finalize.js.map +1 -0
- package/dist/pipeline/gather-context.d.ts +25 -0
- package/dist/pipeline/gather-context.d.ts.map +1 -0
- package/dist/pipeline/gather-context.js +169 -0
- package/dist/pipeline/gather-context.js.map +1 -0
- package/dist/pipeline/gather-safe.d.ts +39 -0
- package/dist/pipeline/gather-safe.d.ts.map +1 -0
- package/dist/pipeline/gather-safe.js +127 -0
- package/dist/pipeline/gather-safe.js.map +1 -0
- package/dist/pipeline/prepare-graph.d.ts +54 -0
- package/dist/pipeline/prepare-graph.d.ts.map +1 -0
- package/dist/pipeline/prepare-graph.js +174 -0
- package/dist/pipeline/prepare-graph.js.map +1 -0
- package/dist/pipeline/prepare.d.ts +40 -0
- package/dist/pipeline/prepare.d.ts.map +1 -0
- package/dist/pipeline/prepare.js +233 -0
- package/dist/pipeline/prepare.js.map +1 -0
- package/dist/pipeline/providers.d.ts +54 -0
- package/dist/pipeline/providers.d.ts.map +1 -0
- package/dist/pipeline/providers.js +163 -0
- package/dist/pipeline/providers.js.map +1 -0
- package/dist/pipeline/results.d.ts +35 -0
- package/dist/pipeline/results.d.ts.map +1 -0
- package/dist/pipeline/results.js +122 -0
- package/dist/pipeline/results.js.map +1 -0
- package/dist/pipeline/state.d.ts +92 -0
- package/dist/pipeline/state.d.ts.map +1 -0
- package/dist/pipeline/state.js +13 -0
- package/dist/pipeline/state.js.map +1 -0
- package/dist/pipeline.d.ts +10 -9
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +36 -1213
- package/dist/pipeline.js.map +1 -1
- package/dist/providers/gateway.d.ts.map +1 -1
- package/dist/providers/gateway.js +8 -0
- package/dist/providers/gateway.js.map +1 -1
- package/dist/recursive/index.d.ts +1 -0
- package/dist/recursive/index.d.ts.map +1 -1
- package/dist/recursive/index.js +7 -3
- package/dist/recursive/index.js.map +1 -1
- package/dist/recursive/patch-extractor.d.ts +58 -6
- package/dist/recursive/patch-extractor.d.ts.map +1 -1
- package/dist/recursive/patch-extractor.js +207 -26
- package/dist/recursive/patch-extractor.js.map +1 -1
- package/dist/sanitize.d.ts +51 -0
- package/dist/sanitize.d.ts.map +1 -0
- package/dist/sanitize.js +90 -0
- package/dist/sanitize.js.map +1 -0
- package/dist/scope/diff-mapper.d.ts +12 -0
- package/dist/scope/diff-mapper.d.ts.map +1 -1
- package/dist/scope/diff-mapper.js +25 -18
- package/dist/scope/diff-mapper.js.map +1 -1
- package/dist/scope/entity-diff.d.ts +21 -4
- package/dist/scope/entity-diff.d.ts.map +1 -1
- package/dist/scope/entity-diff.js +132 -34
- package/dist/scope/entity-diff.js.map +1 -1
- package/dist/scope/types.d.ts +10 -0
- package/dist/scope/types.d.ts.map +1 -1
- package/dist/semantic-diff/index.d.ts +25 -2
- package/dist/semantic-diff/index.d.ts.map +1 -1
- package/dist/semantic-diff/index.js +147 -53
- package/dist/semantic-diff/index.js.map +1 -1
- package/dist/tools/gitleaks-config.toml +35 -0
- package/dist/tools/plugins/gitleaks.d.ts +10 -0
- package/dist/tools/plugins/gitleaks.d.ts.map +1 -1
- package/dist/tools/plugins/gitleaks.js +29 -2
- package/dist/tools/plugins/gitleaks.js.map +1 -1
- package/dist/tools/plugins/semgrep.d.ts +11 -0
- package/dist/tools/plugins/semgrep.d.ts.map +1 -1
- package/dist/tools/plugins/semgrep.js +30 -1
- package/dist/tools/plugins/semgrep.js.map +1 -1
- package/dist/tools/semgrep-rules.yml +305 -0
- package/dist/types.d.ts +51 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/diff.d.ts +22 -2
- package/dist/utils/diff.d.ts.map +1 -1
- package/dist/utils/diff.js +36 -40
- package/dist/utils/diff.js.map +1 -1
- package/package.json +21 -22
- package/dist/providers/fallback.d.ts +0 -54
- package/dist/providers/fallback.d.ts.map +0 -1
- package/dist/providers/fallback.js +0 -102
- package/dist/providers/fallback.js.map +0 -1
- package/dist/providers/index.d.ts +0 -49
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -146
- package/dist/providers/index.js.map +0 -1
package/dist/pipeline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAIhD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAkB;IACrD,gEAAgE;IAChE,qEAAqE;IACrE,kDAAkD;IAClD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE3B,qEAAqE;IACrE,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAE1B,oEAAoE;IACpE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,qEAAqE;IACrE,qEAAqE;IACrE,uCAAuC;IACvC,MAAM,KAAK,GAAkB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE7D,+DAA+D;IAC/D,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpB,+DAA+D;IAC/D,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEtB,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/providers/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/providers/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,eAAe,CAAC,CAyC1B"}
|
|
@@ -42,7 +42,15 @@ export async function generateViaGateway(prompt, systemPrompt, options) {
|
|
|
42
42
|
project,
|
|
43
43
|
}),
|
|
44
44
|
signal: AbortSignal.timeout(180_000), // 3 min timeout (matches CLI bridge)
|
|
45
|
+
// SSRF defense: never follow redirects. The gateway URL was validated by
|
|
46
|
+
// the server worker (safe-url) against the ORIGINAL host only; a 3xx
|
|
47
|
+
// Location could redirect this server-side fetch to an unvalidated
|
|
48
|
+
// private/loopback/metadata address. With redirect:'manual' a 3xx becomes
|
|
49
|
+
// a non-ok response and is handled below as a failed generation, exactly
|
|
50
|
+
// like any other gateway error.
|
|
51
|
+
redirect: 'manual',
|
|
45
52
|
});
|
|
53
|
+
// Non-2xx (including a refused 3xx redirect) is a failed generation.
|
|
46
54
|
if (!response.ok) {
|
|
47
55
|
const error = await response.text().catch(() => 'unknown error');
|
|
48
56
|
throw new Error(`Gateway error (${response.status}): ${error}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/providers/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAsBH,mEAAmE;AAEnE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,YAAqB,EACrB,OAAwB;IAExB,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAEnE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,cAAc,EAAE;QACxD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,YAAY,EAAE;SACxC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,MAAM;YACN,MAAM,EAAE,YAAY;YACpB,KAAK;YACL,OAAO;SACR,CAAC;QACF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,qCAAqC;
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/providers/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAsBH,mEAAmE;AAEnE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,YAAqB,EACrB,OAAwB;IAExB,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAEnE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,cAAc,EAAE;QACxD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,YAAY,EAAE;SACxC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,MAAM;YACN,MAAM,EAAE,YAAY;YACpB,KAAK;YACL,OAAO;SACR,CAAC;QACF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,qCAAqC;QAC3E,yEAAyE;QACzE,qEAAqE;QACrE,mEAAmE;QACnE,0EAA0E;QAC1E,yEAAyE;QACzE,gCAAgC;QAChC,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC;IAEH,qEAAqE;IACrE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,CAAC,MAAM,MAAM,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAA8B,CAAC;AACrD,CAAC"}
|
|
@@ -41,6 +41,7 @@ export interface RecursiveReviewInput {
|
|
|
41
41
|
* @returns Report with convergence status and any regressions found
|
|
42
42
|
*/
|
|
43
43
|
export declare function recursiveReview(input: RecursiveReviewInput): Promise<RecursiveReviewReport | null>;
|
|
44
|
+
export type { VirtualPatchResult } from './patch-extractor.js';
|
|
44
45
|
export { applyVirtualPatches, buildPatchContext, extractPatches } from './patch-extractor.js';
|
|
45
46
|
export type { ReReviewInput, ReReviewResult } from './re-reviewer.js';
|
|
46
47
|
export { runReReview } from './re-reviewer.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recursive/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EAGtB,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,oBAAoB;IACnC,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IAErB,qEAAqE;IACrE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAE1B,kDAAkD;IAClD,UAAU,EAAE,cAAc,CAAC;IAE3B,uCAAuC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAExC,iCAAiC;IACjC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC,wDAAwD;IACxD,QAAQ,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACzC;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recursive/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EAGtB,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,oBAAoB;IACnC,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IAErB,qEAAqE;IACrE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAE1B,kDAAkD;IAClD,UAAU,EAAE,cAAc,CAAC;IAE3B,uCAAuC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAExC,iCAAiC;IACjC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC,wDAAwD;IACxD,QAAQ,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACzC;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CA0GvC;AA4ED,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC9F,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/recursive/index.js
CHANGED
|
@@ -46,8 +46,13 @@ export async function recursiveReview(input) {
|
|
|
46
46
|
let cbState = createCircuitBreakerState(config.circuitBreakerThreshold ?? 2);
|
|
47
47
|
for (let iteration = 1; iteration <= config.maxIterations; iteration++) {
|
|
48
48
|
emit(`Recursive review: iteration ${iteration}/${config.maxIterations}`);
|
|
49
|
-
// Step 2: Apply patches virtually
|
|
50
|
-
|
|
49
|
+
// Step 2: Apply patches virtually.
|
|
50
|
+
// `applyVirtualPatches` returns a `VirtualPatchResult` ({ diff, injectedLineIndices }).
|
|
51
|
+
// Only `diff` is consumed by the recursive loop today. The out-of-band
|
|
52
|
+
// `injectedLineIndices` (marker positions) are collision-immune metadata that a
|
|
53
|
+
// future marker-aware classifier could read; if/when that lands, destructure it
|
|
54
|
+
// here and thread it LOOP-LOCAL — it must NEVER enter `RecursiveReviewReport`.
|
|
55
|
+
const { diff: patchedDiff } = applyVirtualPatches(currentDiff, currentPatches);
|
|
51
56
|
const patchContext = buildPatchContext(currentPatches);
|
|
52
57
|
// Step 3: Re-review
|
|
53
58
|
const reReviewResult = await runReReview({
|
|
@@ -169,7 +174,6 @@ function findClosestPatch(finding, patches) {
|
|
|
169
174
|
}
|
|
170
175
|
return closest;
|
|
171
176
|
}
|
|
172
|
-
// ─── Re-exports ────────────────────────────────────────────────
|
|
173
177
|
export { applyVirtualPatches, buildPatchContext, extractPatches } from './patch-extractor.js';
|
|
174
178
|
export { runReReview } from './re-reviewer.js';
|
|
175
179
|
export { DEFAULT_RECURSIVE_CONFIG } from './types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recursive/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAO/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAwBtD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAA2B;IAE3B,MAAM,MAAM,GAA0B;QACpC,GAAG,wBAAwB;QAC3B,GAAG,KAAK,CAAC,MAAM;KAChB,CAAC;IACF,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAE5C,wCAAwC;IACxC,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,8CAA8C,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,qBAAqB,OAAO,CAAC,MAAM,4BAA4B,CAAC,CAAC;IAEtE,IAAI,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC;IACrC,IAAI,cAAc,GAAG,OAAO,CAAC;IAC7B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,cAAc,GAAwB,EAAE,CAAC;IAE/C,MAAM,qBAAqB,GAAG,KAAK,CAAC,QAAQ,EAAE,cAAc,KAAK,KAAK,CAAC;IACvE,IAAI,OAAO,GAAG,yBAAyB,CAAC,MAAM,CAAC,uBAAuB,IAAI,CAAC,CAAC,CAAC;IAE7E,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC;QACvE,IAAI,CAAC,+BAA+B,SAAS,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QAEzE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recursive/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,25 +16,77 @@ import type { SuggestionPatch } from './types.js';
|
|
|
16
16
|
* @returns Array of suggestion patches ready for virtual application
|
|
17
17
|
*/
|
|
18
18
|
export declare function extractPatches(findings: ReviewFinding[]): SuggestionPatch[];
|
|
19
|
+
/**
|
|
20
|
+
* Result of applying virtual patches: the synthetic diff plus the OUT-OF-BAND
|
|
21
|
+
* record of which output lines are injected `[SUGGESTED FIX]` markers.
|
|
22
|
+
*
|
|
23
|
+
* `injectedLineIndices` holds 0-based indices into `diff.split('\n')`. Identity
|
|
24
|
+
* comes from "the walker put it there" — recorded at the injection site — NOT
|
|
25
|
+
* from scanning the `[SUGGESTED FIX]` text prefix, which would collide with any
|
|
26
|
+
* genuine source line beginning `[SUGGESTED FIX]`. Collision-immune by
|
|
27
|
+
* construction.
|
|
28
|
+
*/
|
|
29
|
+
export interface VirtualPatchResult {
|
|
30
|
+
/** The synthetic diff string (the historical return value). */
|
|
31
|
+
diff: string;
|
|
32
|
+
/** 0-based indices into `diff.split('\n')` that are injected markers. */
|
|
33
|
+
injectedLineIndices: number[];
|
|
34
|
+
}
|
|
19
35
|
/**
|
|
20
36
|
* Apply suggestion patches to an original diff, producing a synthetic
|
|
21
37
|
* patched diff for re-review.
|
|
22
38
|
*
|
|
23
39
|
* Strategy:
|
|
24
|
-
* -
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
40
|
+
* - Parse the diff with the unified parser and walk it in input order
|
|
41
|
+
* (preamble first, then each file's `rawLines`) — output is byte-identical
|
|
42
|
+
* to the input plus the injected marker lines (spec R2 reconstruction).
|
|
43
|
+
* - For each file, collect patches targeting that file; a single-pass line
|
|
44
|
+
* counter tracks the target-side position and every patch whose `line`
|
|
45
|
+
* matches the counter emits a `+[SUGGESTED FIX]` marker after that line.
|
|
28
46
|
*
|
|
29
47
|
* The patched diff is a SYNTHETIC representation — it shows what the code
|
|
30
48
|
* would look like if the suggestions were applied. This is NOT a real
|
|
31
49
|
* git diff; it's a review-friendly format for the LLM to analyze.
|
|
32
50
|
*
|
|
51
|
+
* COORDINATE CONTRACT (Design B — recursive-coordinate-contract):
|
|
52
|
+
* the synthetic diff is a VALID unified diff. When a marker is injected, the
|
|
53
|
+
* hunk's `newCount` is incremented and every LATER hunk in the SAME file gets
|
|
54
|
+
* its `newStart` shifted by the markers injected above it, so the declared
|
|
55
|
+
* `@@ +N` tells the truth: physical position == declared `@@ +N` == real
|
|
56
|
+
* new-file line == whatever any sane LLM reports. On iteration 2+ the marker is
|
|
57
|
+
* therefore a REAL counted `+` line (its position is already reflected in later
|
|
58
|
+
* headers), which is why later patches no longer drift (the off-by-N is closed).
|
|
59
|
+
*
|
|
60
|
+
* Marker IDENTITY is tracked OUT-OF-BAND: the output index of each injected
|
|
61
|
+
* marker is recorded at the injection site (`injectedLineIndices`), never by
|
|
62
|
+
* scanning the `[SUGGESTED FIX]` text — collision-immune by construction.
|
|
63
|
+
*
|
|
64
|
+
* ⚠️ STILL-FROZEN LEGACY BEHAVIOR (spec R7) — the renumber ONLY touches the
|
|
65
|
+
* marker path; everything else reproduces the historical accounting, bugs
|
|
66
|
+
* included. Do NOT "fix" any of these here (separate tickets):
|
|
67
|
+
* - Quoted headers (`diff --git "a/x" "b/y"`, core.quotepath) are NOT
|
|
68
|
+
* recognized as file boundaries: the previous file's patch scope + line
|
|
69
|
+
* counter keep running through the quoted section (`headerQuoted` gate
|
|
70
|
+
* below). A marker can still land there if a leaked counter coincides with a
|
|
71
|
+
* leaked patch line — frozen legacy behavior, pinned by the parity suite.
|
|
72
|
+
* - The counter counts metadata lines its exclusion list never covered
|
|
73
|
+
* (`similarity index`, `rename from/to`, `Binary files`, `new file mode`,
|
|
74
|
+
* mode lines) and genuine empty lines. That is why counting walks `rawLines`
|
|
75
|
+
* (every input line), NOT `hunks`.
|
|
76
|
+
* - The file-boundary path authority is the `diff --git` header b-side
|
|
77
|
+
* capture (`headerNewPath`), NOT the `+++ b/` / `rename to` resolved `path`.
|
|
78
|
+
* - Patches without a `line` never match the counter and are silently dropped.
|
|
79
|
+
* The only INTENTIONAL behavior change vs the pre-Design-B walker is the
|
|
80
|
+
* marker path: hunk headers are now renumbered and markers count on iteration
|
|
81
|
+
* 2+. The non-recursive divergences (loose-hunk-header, mixed-quoted-malformed,
|
|
82
|
+
* partial-@@) are unaffected and stay pinned in
|
|
83
|
+
* diff/__tests__/parity-apply-virtual-patches.test.ts.
|
|
84
|
+
*
|
|
33
85
|
* @param originalDiff - The original unified diff string
|
|
34
86
|
* @param patches - Suggestion patches to apply
|
|
35
|
-
* @returns
|
|
87
|
+
* @returns `VirtualPatchResult` — the synthetic diff plus injected marker indices
|
|
36
88
|
*/
|
|
37
|
-
export declare function applyVirtualPatches(originalDiff: string, patches: SuggestionPatch[]):
|
|
89
|
+
export declare function applyVirtualPatches(originalDiff: string, patches: SuggestionPatch[]): VirtualPatchResult;
|
|
38
90
|
/**
|
|
39
91
|
* Build a focused review context for re-review.
|
|
40
92
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch-extractor.d.ts","sourceRoot":"","sources":["../../src/recursive/patch-extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"patch-extractor.d.ts","sourceRoot":"","sources":["../../src/recursive/patch-extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,eAAe,EAAE,CAqB3E;AAID;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AA6BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,eAAe,EAAE,GACzB,kBAAkB,CA6JpB;AAsDD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAWpE"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* No filesystem access — operates purely on diff strings.
|
|
6
6
|
*/
|
|
7
|
+
import { parseUnifiedDiff } from '../diff/index.js';
|
|
7
8
|
// ─── Patch Extraction ──────────────────────────────────────────
|
|
8
9
|
/**
|
|
9
10
|
* Extract actionable patches from review findings.
|
|
@@ -35,28 +36,81 @@ export function extractPatches(findings) {
|
|
|
35
36
|
}
|
|
36
37
|
return patches;
|
|
37
38
|
}
|
|
38
|
-
|
|
39
|
+
/** Hunk-header grammar: `@@ -oldStart,oldCount +newStart,newCount @@ <suffix>`. */
|
|
40
|
+
const HUNK_HEADER_RE = /^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@(.*)$/;
|
|
41
|
+
/**
|
|
42
|
+
* Rebuild a hunk header from the old-side captures (verbatim), the corrected
|
|
43
|
+
* new-side start/count, and the verbatim section-heading suffix preserved from
|
|
44
|
+
* the original header. `oldStart`/`oldCount` are NEVER touched — a marker is a
|
|
45
|
+
* pure NEW-SIDE addition, so the old (pre-image) accounting is unchanged.
|
|
46
|
+
*
|
|
47
|
+
* Mirrors git's unified-diff convention: a count of 1 MAY be omitted, but to
|
|
48
|
+
* stay byte-stable we re-emit exactly the shape the original used (we only
|
|
49
|
+
* rewrite the numbers that changed). When the original omitted a count, we keep
|
|
50
|
+
* it omitted unless the corrected count is no longer 1.
|
|
51
|
+
*/
|
|
52
|
+
function rebuildHunkHeader(oldStart, oldCount, newStart, newCount, newCountOmitted, suffix) {
|
|
53
|
+
const oldPart = oldCount === undefined ? `-${oldStart}` : `-${oldStart},${oldCount}`;
|
|
54
|
+
const newPart = newCountOmitted && newCount === 1 ? `+${newStart}` : `+${newStart},${newCount}`;
|
|
55
|
+
return `@@ ${oldPart} ${newPart} @@${suffix}`;
|
|
56
|
+
}
|
|
39
57
|
/**
|
|
40
58
|
* Apply suggestion patches to an original diff, producing a synthetic
|
|
41
59
|
* patched diff for re-review.
|
|
42
60
|
*
|
|
43
61
|
* Strategy:
|
|
44
|
-
* -
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
62
|
+
* - Parse the diff with the unified parser and walk it in input order
|
|
63
|
+
* (preamble first, then each file's `rawLines`) — output is byte-identical
|
|
64
|
+
* to the input plus the injected marker lines (spec R2 reconstruction).
|
|
65
|
+
* - For each file, collect patches targeting that file; a single-pass line
|
|
66
|
+
* counter tracks the target-side position and every patch whose `line`
|
|
67
|
+
* matches the counter emits a `+[SUGGESTED FIX]` marker after that line.
|
|
48
68
|
*
|
|
49
69
|
* The patched diff is a SYNTHETIC representation — it shows what the code
|
|
50
70
|
* would look like if the suggestions were applied. This is NOT a real
|
|
51
71
|
* git diff; it's a review-friendly format for the LLM to analyze.
|
|
52
72
|
*
|
|
73
|
+
* COORDINATE CONTRACT (Design B — recursive-coordinate-contract):
|
|
74
|
+
* the synthetic diff is a VALID unified diff. When a marker is injected, the
|
|
75
|
+
* hunk's `newCount` is incremented and every LATER hunk in the SAME file gets
|
|
76
|
+
* its `newStart` shifted by the markers injected above it, so the declared
|
|
77
|
+
* `@@ +N` tells the truth: physical position == declared `@@ +N` == real
|
|
78
|
+
* new-file line == whatever any sane LLM reports. On iteration 2+ the marker is
|
|
79
|
+
* therefore a REAL counted `+` line (its position is already reflected in later
|
|
80
|
+
* headers), which is why later patches no longer drift (the off-by-N is closed).
|
|
81
|
+
*
|
|
82
|
+
* Marker IDENTITY is tracked OUT-OF-BAND: the output index of each injected
|
|
83
|
+
* marker is recorded at the injection site (`injectedLineIndices`), never by
|
|
84
|
+
* scanning the `[SUGGESTED FIX]` text — collision-immune by construction.
|
|
85
|
+
*
|
|
86
|
+
* ⚠️ STILL-FROZEN LEGACY BEHAVIOR (spec R7) — the renumber ONLY touches the
|
|
87
|
+
* marker path; everything else reproduces the historical accounting, bugs
|
|
88
|
+
* included. Do NOT "fix" any of these here (separate tickets):
|
|
89
|
+
* - Quoted headers (`diff --git "a/x" "b/y"`, core.quotepath) are NOT
|
|
90
|
+
* recognized as file boundaries: the previous file's patch scope + line
|
|
91
|
+
* counter keep running through the quoted section (`headerQuoted` gate
|
|
92
|
+
* below). A marker can still land there if a leaked counter coincides with a
|
|
93
|
+
* leaked patch line — frozen legacy behavior, pinned by the parity suite.
|
|
94
|
+
* - The counter counts metadata lines its exclusion list never covered
|
|
95
|
+
* (`similarity index`, `rename from/to`, `Binary files`, `new file mode`,
|
|
96
|
+
* mode lines) and genuine empty lines. That is why counting walks `rawLines`
|
|
97
|
+
* (every input line), NOT `hunks`.
|
|
98
|
+
* - The file-boundary path authority is the `diff --git` header b-side
|
|
99
|
+
* capture (`headerNewPath`), NOT the `+++ b/` / `rename to` resolved `path`.
|
|
100
|
+
* - Patches without a `line` never match the counter and are silently dropped.
|
|
101
|
+
* The only INTENTIONAL behavior change vs the pre-Design-B walker is the
|
|
102
|
+
* marker path: hunk headers are now renumbered and markers count on iteration
|
|
103
|
+
* 2+. The non-recursive divergences (loose-hunk-header, mixed-quoted-malformed,
|
|
104
|
+
* partial-@@) are unaffected and stay pinned in
|
|
105
|
+
* diff/__tests__/parity-apply-virtual-patches.test.ts.
|
|
106
|
+
*
|
|
53
107
|
* @param originalDiff - The original unified diff string
|
|
54
108
|
* @param patches - Suggestion patches to apply
|
|
55
|
-
* @returns
|
|
109
|
+
* @returns `VirtualPatchResult` — the synthetic diff plus injected marker indices
|
|
56
110
|
*/
|
|
57
111
|
export function applyVirtualPatches(originalDiff, patches) {
|
|
58
112
|
if (patches.length === 0)
|
|
59
|
-
return originalDiff;
|
|
113
|
+
return { diff: originalDiff, injectedLineIndices: [] };
|
|
60
114
|
// Group patches by file
|
|
61
115
|
const patchesByFile = new Map();
|
|
62
116
|
for (const patch of patches) {
|
|
@@ -65,24 +119,33 @@ export function applyVirtualPatches(originalDiff, patches) {
|
|
|
65
119
|
patchesByFile.set(patch.file, existing);
|
|
66
120
|
}
|
|
67
121
|
// Build the synthetic diff
|
|
68
|
-
const
|
|
122
|
+
const parsed = parseUnifiedDiff(originalDiff);
|
|
69
123
|
const result = [];
|
|
124
|
+
const injectedLineIndices = [];
|
|
70
125
|
let currentFile = null;
|
|
71
126
|
let currentFilePatches = [];
|
|
72
127
|
let lineCounter = 0; // Tracks the target-side line number in current hunk
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
128
|
+
// Inject every `+[SUGGESTED FIX]` marker whose patch `line` matches the given
|
|
129
|
+
// counter value, recording each marker's output index out-of-band. Mirrors the
|
|
130
|
+
// legacy walker's post-line patch-match (which ran after EVERY emitted line,
|
|
131
|
+
// header included). Returns the number of markers injected.
|
|
132
|
+
const injectAfter = (counter) => {
|
|
133
|
+
if (!currentFile || currentFilePatches.length === 0)
|
|
134
|
+
return 0;
|
|
135
|
+
let injected = 0;
|
|
136
|
+
for (const patch of currentFilePatches.filter((p) => p.line === counter)) {
|
|
137
|
+
// Record the index BEFORE pushing — identity is positional, not textual.
|
|
138
|
+
injectedLineIndices.push(result.length);
|
|
139
|
+
result.push(`+[SUGGESTED FIX] ${patch.suggestion}`);
|
|
140
|
+
injected++;
|
|
85
141
|
}
|
|
142
|
+
return injected;
|
|
143
|
+
};
|
|
144
|
+
// Emit one input line, advancing the counter and injecting any matching
|
|
145
|
+
// `+[SUGGESTED FIX]` markers after it. Returns the number of markers injected
|
|
146
|
+
// (so the per-hunk renumber pass can tally `markersInThisHunk`). The injected
|
|
147
|
+
// marker's output index is recorded out-of-band in `injectedLineIndices`.
|
|
148
|
+
const visit = (line) => {
|
|
86
149
|
// Count lines for position tracking (added or context lines increment target counter)
|
|
87
150
|
if (line.startsWith('+') && !line.startsWith('+++')) {
|
|
88
151
|
lineCounter++;
|
|
@@ -100,15 +163,133 @@ export function applyVirtualPatches(originalDiff, patches) {
|
|
|
100
163
|
}
|
|
101
164
|
result.push(line);
|
|
102
165
|
// Check if any patch targets this line
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
166
|
+
return injectAfter(lineCounter);
|
|
167
|
+
};
|
|
168
|
+
for (const line of parsed.preamble)
|
|
169
|
+
visit(line);
|
|
170
|
+
for (const file of parsed.files) {
|
|
171
|
+
// File boundary — legacy gate: quoted headers were never recognized, so
|
|
172
|
+
// the previous file's patch scope and counter deliberately leak into
|
|
173
|
+
// this section (see STILL-FROZEN LEGACY BEHAVIOR above). `injectedBefore`
|
|
174
|
+
// is declared per parsed file section (below), so the header-shift math
|
|
175
|
+
// never crosses a file boundary. NOTE: for a quoted-header section the
|
|
176
|
+
// leaked `currentFilePatches` CAN still cause a marker to be injected if a
|
|
177
|
+
// leaked counter value coincides with a leaked patch line — the renumber
|
|
178
|
+
// then runs on that section's hunks like any other. That coincidence is
|
|
179
|
+
// frozen legacy behavior (spec R7), not a guarantee that quoted sections
|
|
180
|
+
// never get markers; the parity/golden suites pin whatever it produces.
|
|
181
|
+
if (!file.headerQuoted) {
|
|
182
|
+
currentFile = file.headerNewPath;
|
|
183
|
+
currentFilePatches = patchesByFile.get(currentFile) ?? [];
|
|
184
|
+
lineCounter = 0;
|
|
185
|
+
}
|
|
186
|
+
let injectedBefore = 0; // markers injected in EARLIER hunks of THIS file
|
|
187
|
+
// Hunk headers reset the counter to the new-side start AND are rewritten so
|
|
188
|
+
// the declared `@@ +N` accounts for markers injected above (Design B).
|
|
189
|
+
//
|
|
190
|
+
// The reset scan keys on STRING-EQUALITY `line === hunk.header`. We rewrite
|
|
191
|
+
// both the emitted string AND `hunk.header` (in lockstep) so the scan keeps
|
|
192
|
+
// pairing the i-th rawLines occurrence with hunks[i]. The new-side start is
|
|
193
|
+
// shifted by `injectedBefore`; the counter then resets to the shifted start
|
|
194
|
+
// minus 1 — still correct because the markers sit INSIDE already-counted
|
|
195
|
+
// earlier hunks, never double-counted across the boundary.
|
|
196
|
+
let nextHunk = 0;
|
|
197
|
+
for (let rawIdx = 0; rawIdx < file.rawLines.length; rawIdx++) {
|
|
198
|
+
const line = file.rawLines[rawIdx] ?? '';
|
|
199
|
+
const hunk = file.hunks[nextHunk];
|
|
200
|
+
if (hunk && line === hunk.header) {
|
|
201
|
+
const m = HUNK_HEADER_RE.exec(hunk.header);
|
|
202
|
+
if (m?.[1] && m?.[3]) {
|
|
203
|
+
const oldStart = m[1];
|
|
204
|
+
const oldCount = m[2]; // may be undefined (omitted → 1)
|
|
205
|
+
const newCountOmitted = m[4] === undefined;
|
|
206
|
+
const suffix = m[5] ?? '';
|
|
207
|
+
const markersInThisHunk = countMarkersInHunk(file.rawLines, rawIdx, file.hunks[nextHunk + 1]?.header, currentFilePatches, hunk.newStart);
|
|
208
|
+
const newStartShifted = hunk.newStart + injectedBefore;
|
|
209
|
+
const newCountShifted = hunk.newCount + markersInThisHunk;
|
|
210
|
+
const rewritten = rebuildHunkHeader(oldStart, oldCount, newStartShifted, newCountShifted, newCountOmitted, suffix);
|
|
211
|
+
// Keep model and emitted string in sync for the string-eq scan.
|
|
212
|
+
hunk.header = rewritten;
|
|
213
|
+
// CRITICAL coordinate frame: `lineCounter` is matched against patch
|
|
214
|
+
// `line` values, which reference the CURRENT diff's new-side line
|
|
215
|
+
// numbers — i.e. the UNSHIFTED coordinates the LLM numbered against.
|
|
216
|
+
// The `injectedBefore` shift belongs ONLY to the emitted header, not
|
|
217
|
+
// to the matching counter. Resetting to the shifted start would move
|
|
218
|
+
// every patch match in this hunk by `injectedBefore` lines (wrong
|
|
219
|
+
// landing + duplicate/missed injections). `countMarkersInHunk` uses
|
|
220
|
+
// the same unshifted anchor, so the precomputed tally agrees with
|
|
221
|
+
// what `visit` actually injects.
|
|
222
|
+
lineCounter = hunk.newStart - 1;
|
|
223
|
+
result.push(rewritten);
|
|
224
|
+
// LEGACY-FAITHFUL header-position injection: the old walker ran its
|
|
225
|
+
// patch-match check after EVERY line, the `@@` header included, with
|
|
226
|
+
// the counter already reset to `newStart - 1`. So a patch whose `line`
|
|
227
|
+
// equals `newStart - 1` injects a marker IMMEDIATELY after the header.
|
|
228
|
+
// We must reproduce that (it is frozen R7 behavior, NOT the renumber
|
|
229
|
+
// change) — `countMarkersInHunk` likewise counts this header-position
|
|
230
|
+
// match, so it is already budgeted into `markersInThisHunk` above.
|
|
231
|
+
injectAfter(lineCounter);
|
|
232
|
+
nextHunk++;
|
|
233
|
+
injectedBefore += markersInThisHunk;
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
// Header didn't match the strict grammar — fall back to legacy reset.
|
|
237
|
+
// The `visit(line)` below then pushes the header (no counter increment —
|
|
238
|
+
// it starts with `@@`) and runs the header-position patch-match at the
|
|
239
|
+
// reset counter, exactly as the legacy flat loop did.
|
|
240
|
+
lineCounter = hunk.newStart - 1;
|
|
241
|
+
nextHunk++;
|
|
108
242
|
}
|
|
243
|
+
visit(line);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return { diff: result.join('\n'), injectedLineIndices };
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Count how many markers a hunk will receive, WITHOUT mutating output. Replays
|
|
250
|
+
* the same counter logic `visit` uses over just this hunk's body lines (from
|
|
251
|
+
* `headerPos + 1` up to the next header / file end), so the per-hunk `newCount`
|
|
252
|
+
* bump is known BEFORE the header is emitted. `headerPos` is the EXACT rawLines
|
|
253
|
+
* index of this hunk's header (handed in by the main loop), so duplicate
|
|
254
|
+
* identical headers are paired correctly — no `indexOf` re-scan.
|
|
255
|
+
*/
|
|
256
|
+
function countMarkersInHunk(rawLines, headerPos, nextHeader, filePatches, newStart) {
|
|
257
|
+
if (filePatches.length === 0)
|
|
258
|
+
return 0;
|
|
259
|
+
let counter = newStart - 1;
|
|
260
|
+
// Header-position match: the legacy walker ran its patch-match after the `@@`
|
|
261
|
+
// header line with the counter already at `newStart - 1`, so a patch at that
|
|
262
|
+
// line injects a marker INSIDE this hunk. `injectAfter(newStart - 1)` in the
|
|
263
|
+
// main loop reproduces it; budget it here so `newCount` accounts for it.
|
|
264
|
+
let markers = filePatches.filter((p) => p.line === counter).length;
|
|
265
|
+
for (let i = headerPos + 1; i < rawLines.length; i++) {
|
|
266
|
+
const line = rawLines[i] ?? '';
|
|
267
|
+
if (nextHeader !== undefined && line === nextHeader)
|
|
268
|
+
break;
|
|
269
|
+
// Counter advance: MUST mirror `visit` exactly (additions + context lines
|
|
270
|
+
// increment; removals and meta lines do not).
|
|
271
|
+
if (line.startsWith('+') && !line.startsWith('+++')) {
|
|
272
|
+
counter++;
|
|
273
|
+
}
|
|
274
|
+
else if (line.startsWith('-') && !line.startsWith('---')) {
|
|
275
|
+
// removal — no advance
|
|
276
|
+
}
|
|
277
|
+
else if (!line.startsWith('\\') &&
|
|
278
|
+
!line.startsWith('diff ') &&
|
|
279
|
+
!line.startsWith('index ') &&
|
|
280
|
+
!line.startsWith('---') &&
|
|
281
|
+
!line.startsWith('+++') &&
|
|
282
|
+
!line.startsWith('@@')) {
|
|
283
|
+
counter++;
|
|
109
284
|
}
|
|
285
|
+
// Patch-match check: ALSO mirror `visit` — it runs after EVERY emitted line
|
|
286
|
+
// (outside the counter branch), including removals and meta lines, with the
|
|
287
|
+
// unchanged counter. Do NOT skip meta lines here, or the tally would
|
|
288
|
+
// under-count vs what `visit` injects (e.g. a patch landing where a
|
|
289
|
+
// `` line sits).
|
|
290
|
+
markers += filePatches.filter((p) => p.line === counter).length;
|
|
110
291
|
}
|
|
111
|
-
return
|
|
292
|
+
return markers;
|
|
112
293
|
}
|
|
113
294
|
/**
|
|
114
295
|
* Build a focused review context for re-review.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch-extractor.js","sourceRoot":"","sources":["../../src/recursive/patch-extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"patch-extractor.js","sourceRoot":"","sources":["../../src/recursive/patch-extractor.ts"],"names":[],"mappings":"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"}
|