@osovv/vv-opencode 1.2.6 → 1.2.8

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 (53) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +29 -2
  3. package/dist/commands/patch-provider.js +2 -0
  4. package/dist/commands/patch-provider.js.map +1 -1
  5. package/dist/commands/plugin-list.js +8 -3
  6. package/dist/commands/plugin-list.js.map +1 -1
  7. package/dist/commands/plugin-toggle.js +8 -1
  8. package/dist/commands/plugin-toggle.js.map +1 -1
  9. package/dist/lib/plugin-toggle-config.d.ts +5 -1
  10. package/dist/lib/plugin-toggle-config.js +15 -10
  11. package/dist/lib/plugin-toggle-config.js.map +1 -1
  12. package/dist/lib/vvoc-config.d.ts +33 -1
  13. package/dist/lib/vvoc-config.js +49 -1
  14. package/dist/lib/vvoc-config.js.map +1 -1
  15. package/dist/plugins/hashline-edit/diff-summary.d.ts +7 -0
  16. package/dist/plugins/hashline-edit/diff-summary.js +79 -0
  17. package/dist/plugins/hashline-edit/diff-summary.js.map +1 -0
  18. package/dist/plugins/hashline-edit/edit-operation-primitives.d.ts +2 -2
  19. package/dist/plugins/hashline-edit/edit-operation-primitives.js +56 -37
  20. package/dist/plugins/hashline-edit/edit-operation-primitives.js.map +1 -1
  21. package/dist/plugins/hashline-edit/edit-operations.d.ts +1 -0
  22. package/dist/plugins/hashline-edit/edit-operations.js +17 -10
  23. package/dist/plugins/hashline-edit/edit-operations.js.map +1 -1
  24. package/dist/plugins/hashline-edit/edit-text-normalization.d.ts +27 -4
  25. package/dist/plugins/hashline-edit/edit-text-normalization.js +45 -56
  26. package/dist/plugins/hashline-edit/edit-text-normalization.js.map +1 -1
  27. package/dist/plugins/hashline-edit/index.js +331 -35
  28. package/dist/plugins/hashline-edit/index.js.map +1 -1
  29. package/dist/plugins/hashline-edit/normalize-edits.js +56 -20
  30. package/dist/plugins/hashline-edit/normalize-edits.js.map +1 -1
  31. package/dist/plugins/hashline-edit/replace-engine.d.ts +24 -0
  32. package/dist/plugins/hashline-edit/replace-engine.js +246 -0
  33. package/dist/plugins/hashline-edit/replace-engine.js.map +1 -0
  34. package/dist/plugins/hashline-edit/routing.d.ts +21 -0
  35. package/dist/plugins/hashline-edit/routing.js +113 -0
  36. package/dist/plugins/hashline-edit/routing.js.map +1 -0
  37. package/dist/plugins/hashline-edit/session-state.d.ts +23 -0
  38. package/dist/plugins/hashline-edit/session-state.js +70 -0
  39. package/dist/plugins/hashline-edit/session-state.js.map +1 -0
  40. package/dist/plugins/hashline-edit/str-replace-editor.d.ts +50 -0
  41. package/dist/plugins/hashline-edit/str-replace-editor.js +285 -0
  42. package/dist/plugins/hashline-edit/str-replace-editor.js.map +1 -0
  43. package/dist/plugins/hashline-edit/tool-description.d.ts +2 -1
  44. package/dist/plugins/hashline-edit/tool-description.js +44 -18
  45. package/dist/plugins/hashline-edit/tool-description.js.map +1 -1
  46. package/dist/plugins/hashline-edit/validation.d.ts +1 -0
  47. package/dist/plugins/hashline-edit/validation.js +13 -3
  48. package/dist/plugins/hashline-edit/validation.js.map +1 -1
  49. package/package.json +1 -1
  50. package/schemas/vvoc/v3.json +29 -2
  51. package/dist/plugins/hashline-edit/autocorrect-replacement-lines.d.ts +0 -1
  52. package/dist/plugins/hashline-edit/autocorrect-replacement-lines.js +0 -188
  53. package/dist/plugins/hashline-edit/autocorrect-replacement-lines.js.map +0 -1
@@ -1,5 +1,6 @@
1
- interface EditApplyOptions {
1
+ export interface EditApplyOptions {
2
2
  skipValidation?: boolean;
3
+ onWarning?: (message: string) => void;
3
4
  }
4
5
  export declare function applySetLine(lines: string[], anchor: string, newText: string | string[] | null, options?: EditApplyOptions): string[];
5
6
  export declare function applyReplaceLines(lines: string[], startAnchor: string, endAnchor: string, newText: string | string[] | null, options?: EditApplyOptions): string[];
@@ -7,4 +8,3 @@ export declare function applyInsertAfter(lines: string[], anchor: string, text:
7
8
  export declare function applyInsertBefore(lines: string[], anchor: string, text: string | string[], options?: EditApplyOptions): string[];
8
9
  export declare function applyAppend(lines: string[], text: string | string[]): string[];
9
10
  export declare function applyPrepend(lines: string[], text: string | string[]): string[];
10
- export {};
@@ -1,47 +1,50 @@
1
1
  // FILE: src/plugins/hashline-edit/edit-operation-primitives.ts
2
- // VERSION: 0.1.0
2
+ // VERSION: 0.3.0
3
3
  // START_MODULE_CONTRACT
4
- // PURPOSE: Apply validated hashline edit operations to an in-memory file snapshot one mutation at a time.
5
- // SCOPE: Single-line replace, range replace, anchored insert-before/after, and BOF/EOF insert helpers.
6
- // DEPENDS: [src/plugins/hashline-edit/autocorrect-replacement-lines.ts, src/plugins/hashline-edit/edit-text-normalization.ts, src/plugins/hashline-edit/validation.ts]
4
+ // PURPOSE: Apply validated hashline edit operations literally to an in-memory file snapshot one mutation at a time.
5
+ // SCOPE: Single-line replace, range replace, anchored insert-before/after with exact-match echo trimming, neighbor-duplication warnings for insertions, and BOF/EOF insert helpers that preserve trailing-newline sentinels.
6
+ // DEPENDS: [src/plugins/hashline-edit/edit-text-normalization.ts, src/plugins/hashline-edit/validation.ts]
7
7
  // LINKS: [M-PLUGIN-HASHLINE-EDIT]
8
8
  // ROLE: RUNTIME
9
9
  // MAP_MODE: EXPORTS
10
10
  // END_MODULE_CONTRACT
11
11
  //
12
12
  // START_MODULE_MAP
13
- // applySetLine - Replace or delete a single anchored line.
14
- // applyReplaceLines - Replace or delete an inclusive anchored line range.
15
- // applyInsertAfter - Insert lines after an anchored line.
16
- // applyInsertBefore - Insert lines before an anchored line.
17
- // applyAppend - Insert lines at EOF, creating content for an empty file.
13
+ // EditApplyOptions - Optional validation skip and warning collector for primitive apply calls.
14
+ // applySetLine - Replace or delete a single anchored line literally.
15
+ // applyReplaceLines - Replace or delete an inclusive anchored line range literally, trimming only exact boundary echoes.
16
+ // applyInsertAfter - Insert lines after an anchored line, trimming only an exact anchor echo.
17
+ // applyInsertBefore - Insert lines before an anchored line, trimming only an exact anchor echo.
18
+ // applyAppend - Insert lines at EOF without creating a phantom blank line before the trailing newline.
18
19
  // applyPrepend - Insert lines at BOF, creating content for an empty file.
19
20
  // END_MODULE_MAP
20
21
  //
21
22
  // START_CHANGE_SUMMARY
22
- // LAST_CHANGE: [v0.0.0 - Initial GRACE compliance: added missing CHANGE_SUMMARY.]
23
+ // LAST_CHANGE: [v0.3.0 - Added visible warnings when append/prepend payloads duplicate the lines already adjacent to the anchor, applied literally.]
23
24
  // END_CHANGE_SUMMARY
24
- import { autocorrectReplacementLines } from "./autocorrect-replacement-lines.js";
25
- import { restoreLeadingIndent, stripInsertAnchorEcho, stripInsertBeforeEcho, stripRangeBoundaryEcho, toNewLines, } from "./edit-text-normalization.js";
25
+ import { stripExactBoundaryEchoes, stripExactInsertBeforeEcho, stripExactInsertEcho, toNewLines, } from "./edit-text-normalization.js";
26
26
  import { parseLineRef, validateLineRef } from "./validation.js";
27
27
  function shouldValidate(options) {
28
28
  return options?.skipValidation !== true;
29
29
  }
30
+ function linesEqual(left, right) {
31
+ if (left.length !== right.length || left.length === 0) {
32
+ return false;
33
+ }
34
+ for (let i = 0; i < left.length; i += 1) {
35
+ if (left[i] !== right[i]) {
36
+ return false;
37
+ }
38
+ }
39
+ return true;
40
+ }
30
41
  export function applySetLine(lines, anchor, newText, options) {
31
42
  if (shouldValidate(options)) {
32
43
  validateLineRef(lines, anchor);
33
44
  }
34
45
  const { line } = parseLineRef(anchor);
35
46
  const result = [...lines];
36
- const originalLine = lines[line - 1] ?? "";
37
- const normalized = newText === null ? [] : toNewLines(newText);
38
- const corrected = autocorrectReplacementLines([originalLine], normalized);
39
- const replacement = corrected.map((entry, index) => {
40
- if (index !== 0) {
41
- return entry;
42
- }
43
- return restoreLeadingIndent(originalLine, entry);
44
- });
47
+ const replacement = newText === null ? [] : toNewLines(newText);
45
48
  if (replacement.length > 1) {
46
49
  throw new Error("applySetLine: replace is for single-line replacement only. " +
47
50
  `Removing 1 line but inserting ${replacement.length} lines. Use applyReplaceLines (replace_range) for multi-line replacement.`);
@@ -60,17 +63,13 @@ export function applyReplaceLines(lines, startAnchor, endAnchor, newText, option
60
63
  throw new Error(`Invalid range: start line ${startLine} cannot be greater than end line ${endLine}`);
61
64
  }
62
65
  const result = [...lines];
63
- const originalRange = lines.slice(startLine - 1, endLine);
64
66
  const normalized = newText === null ? [] : toNewLines(newText);
65
- const stripped = stripRangeBoundaryEcho(lines, startLine, endLine, normalized);
66
- const corrected = autocorrectReplacementLines(originalRange, stripped);
67
- const restored = corrected.map((entry, index) => {
68
- if (index !== 0) {
69
- return entry;
70
- }
71
- return restoreLeadingIndent(lines[startLine - 1] ?? "", entry);
72
- });
73
- result.splice(startLine - 1, endLine - startLine + 1, ...restored);
67
+ const trimmed = stripExactBoundaryEchoes(lines, startLine, endLine, normalized);
68
+ const dropped = trimmed.droppedLeading + trimmed.droppedTrailing;
69
+ if (dropped > 0) {
70
+ options?.onWarning?.(`replace_range lines ${startLine}-${endLine}: dropped ${dropped} exact boundary echo line(s) duplicating surviving neighbors; the rest of the payload was applied literally`);
71
+ }
72
+ result.splice(startLine - 1, endLine - startLine + 1, ...trimmed.lines);
74
73
  return result;
75
74
  }
76
75
  export function applyInsertAfter(lines, anchor, text, options) {
@@ -79,11 +78,18 @@ export function applyInsertAfter(lines, anchor, text, options) {
79
78
  }
80
79
  const { line } = parseLineRef(anchor);
81
80
  const result = [...lines];
82
- const newLines = stripInsertAnchorEcho(lines[line - 1] ?? "", toNewLines(text));
83
- if (newLines.length === 0) {
81
+ const trimmed = stripExactInsertEcho(lines[line - 1] ?? "", toNewLines(text));
82
+ if (trimmed.stripped > 0) {
83
+ options?.onWarning?.(`append at line ${line}: dropped payload line identical to the anchor line`);
84
+ }
85
+ if (trimmed.lines.length === 0) {
84
86
  throw new Error(`append (anchored) requires non-empty text for ${anchor}`);
85
87
  }
86
- result.splice(line, 0, ...newLines);
88
+ const following = lines.slice(line, line + trimmed.lines.length);
89
+ if (linesEqual(trimmed.lines, following)) {
90
+ options?.onWarning?.(`append at line ${line}: payload duplicates the ${trimmed.lines.length} line(s) already following the anchor; applying literally creates a duplicate block`);
91
+ }
92
+ result.splice(line, 0, ...trimmed.lines);
87
93
  return result;
88
94
  }
89
95
  export function applyInsertBefore(lines, anchor, text, options) {
@@ -92,11 +98,18 @@ export function applyInsertBefore(lines, anchor, text, options) {
92
98
  }
93
99
  const { line } = parseLineRef(anchor);
94
100
  const result = [...lines];
95
- const newLines = stripInsertBeforeEcho(lines[line - 1] ?? "", toNewLines(text));
96
- if (newLines.length === 0) {
101
+ const trimmed = stripExactInsertBeforeEcho(lines[line - 1] ?? "", toNewLines(text));
102
+ if (trimmed.stripped > 0) {
103
+ options?.onWarning?.(`prepend at line ${line}: dropped payload line identical to the anchor line`);
104
+ }
105
+ if (trimmed.lines.length === 0) {
97
106
  throw new Error(`prepend (anchored) requires non-empty text for ${anchor}`);
98
107
  }
99
- result.splice(line - 1, 0, ...newLines);
108
+ const preceding = lines.slice(line - 1 - trimmed.lines.length, line - 1);
109
+ if (linesEqual(trimmed.lines, preceding)) {
110
+ options?.onWarning?.(`prepend at line ${line}: payload duplicates the ${trimmed.lines.length} line(s) already preceding the anchor; applying literally creates a duplicate block`);
111
+ }
112
+ result.splice(line - 1, 0, ...trimmed.lines);
100
113
  return result;
101
114
  }
102
115
  export function applyAppend(lines, text) {
@@ -107,6 +120,12 @@ export function applyAppend(lines, text) {
107
120
  if (lines.length === 1 && lines[0] === "") {
108
121
  return [...normalized];
109
122
  }
123
+ // A newline-terminated file splits into a trailing "" sentinel. Append
124
+ // before it so no phantom blank line is created and the final newline is
125
+ // preserved.
126
+ if (lines.length > 1 && lines[lines.length - 1] === "") {
127
+ return [...lines.slice(0, -1), ...normalized, ""];
128
+ }
110
129
  return [...lines, ...normalized];
111
130
  }
112
131
  export function applyPrepend(lines, text) {
@@ -1 +1 @@
1
- {"version":3,"file":"edit-operation-primitives.js","sourceRoot":"","sources":["../../../src/plugins/hashline-edit/edit-operation-primitives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit-operation-primitives.js","sourceRoot":"","sources":["../../../src/plugins/hashline-edit/edit-operation-primitives.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,6 @@ export interface HashlineApplyReport {
3
3
  content: string;
4
4
  noopEdits: number;
5
5
  deduplicatedEdits: number;
6
+ warnings: string[];
6
7
  }
7
8
  export declare function applyHashlineEditsWithReport(content: string, edits: HashlineEdit[]): HashlineApplyReport;
@@ -1,8 +1,8 @@
1
1
  // FILE: src/plugins/hashline-edit/edit-operations.ts
2
- // VERSION: 0.6.0
2
+ // VERSION: 0.7.0
3
3
  // START_MODULE_CONTRACT
4
- // PURPOSE: Validate, order, deduplicate, and apply a batch of hashline edit operations against a file snapshot.
5
- // SCOPE: Batch region computation, comprehensive conflict detection covering all mutation types, exact-edit deduplication, bottom-up application ordering, and no-op reporting.
4
+ // PURPOSE: Validate, order, deduplicate, and apply a batch of hashline edit operations literally against a file snapshot while collecting apply warnings.
5
+ // SCOPE: Batch region computation, comprehensive conflict detection covering all mutation types, exact-edit deduplication, bottom-up application ordering, no-op reporting, and warning aggregation.
6
6
  // DEPENDS: [src/plugins/hashline-edit/edit-operation-primitives.ts, src/plugins/hashline-edit/types.ts, src/plugins/hashline-edit/validation.ts]
7
7
  // LINKS: [M-PLUGIN-HASHLINE-EDIT]
8
8
  // ROLE: RUNTIME
@@ -10,12 +10,12 @@
10
10
  // END_MODULE_CONTRACT
11
11
  //
12
12
  // START_MODULE_MAP
13
- // HashlineApplyReport - Result shape returned after applying a batch of hashline edits.
14
- // applyHashlineEditsWithReport - Validate and apply a batch of edits while reporting no-ops and deduplicated operations.
13
+ // HashlineApplyReport - Result shape returned after applying a batch of hashline edits, including apply warnings.
14
+ // applyHashlineEditsWithReport - Validate and apply a batch of edits literally while reporting no-ops, deduplicated operations, and echo-trim warnings.
15
15
  // END_MODULE_MAP
16
16
  //
17
17
  // START_CHANGE_SUMMARY
18
- // LAST_CHANGE: [v0.7.0 - Added replace_range support alongside replace to prevent accidental end-boundary errors.]
18
+ // LAST_CHANGE: [v0.7.0 - Application is literal: primitives receive a warning collector and HashlineApplyReport surfaces echo-trim warnings.]
19
19
  // END_CHANGE_SUMMARY
20
20
  import { applyAppend, applyInsertAfter, applyInsertBefore, applyPrepend, applyReplaceLines, applySetLine, } from "./edit-operation-primitives.js";
21
21
  import { normalizeLineRef, parseLineRef, validateLineRefs } from "./validation.js";
@@ -167,6 +167,7 @@ export function applyHashlineEditsWithReport(content, edits) {
167
167
  content,
168
168
  noopEdits: 0,
169
169
  deduplicatedEdits: 0,
170
+ warnings: [],
170
171
  };
171
172
  }
172
173
  const dedupeResult = dedupeEdits(edits);
@@ -202,6 +203,11 @@ export function applyHashlineEditsWithReport(content, edits) {
202
203
  })
203
204
  .map((entry) => entry.edit);
204
205
  let lines = content.length === 0 ? [] : content.split("\n");
206
+ const warnings = [];
207
+ const applyOptions = {
208
+ skipValidation: true,
209
+ onWarning: (message) => warnings.push(message),
210
+ };
205
211
  const regions = computeEditRegions(sortedEdits);
206
212
  validateBatchConflicts(regions);
207
213
  const refs = collectLineRefs(sortedEdits);
@@ -211,19 +217,19 @@ export function applyHashlineEditsWithReport(content, edits) {
211
217
  let next = lines;
212
218
  switch (edit.op) {
213
219
  case "replace_range":
214
- next = applyReplaceLines(lines, edit.pos, edit.end, edit.lines, { skipValidation: true });
220
+ next = applyReplaceLines(lines, edit.pos, edit.end, edit.lines, applyOptions);
215
221
  break;
216
222
  case "replace":
217
- next = applySetLine(lines, edit.pos, edit.lines, { skipValidation: true });
223
+ next = applySetLine(lines, edit.pos, edit.lines, applyOptions);
218
224
  break;
219
225
  case "append":
220
226
  next = edit.pos
221
- ? applyInsertAfter(lines, edit.pos, edit.lines, { skipValidation: true })
227
+ ? applyInsertAfter(lines, edit.pos, edit.lines, applyOptions)
222
228
  : applyAppend(lines, edit.lines);
223
229
  break;
224
230
  case "prepend":
225
231
  next = edit.pos
226
- ? applyInsertBefore(lines, edit.pos, edit.lines, { skipValidation: true })
232
+ ? applyInsertBefore(lines, edit.pos, edit.lines, applyOptions)
227
233
  : applyPrepend(lines, edit.lines);
228
234
  break;
229
235
  }
@@ -236,6 +242,7 @@ export function applyHashlineEditsWithReport(content, edits) {
236
242
  return {
237
243
  content: lines.join("\n"),
238
244
  noopEdits,
245
+ warnings,
239
246
  deduplicatedEdits: dedupeResult.deduplicatedEdits,
240
247
  };
241
248
  }
@@ -1 +1 @@
1
- {"version":3,"file":"edit-operations.js","sourceRoot":"","sources":["../../../src/plugins/hashline-edit/edit-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit-operations.js","sourceRoot":"","sources":["../../../src/plugins/hashline-edit/edit-operations.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,29 @@
1
1
  export declare function stripLinePrefixes(lines: string[]): string[];
2
2
  export declare function toNewLines(input: string | string[]): string[];
3
- export declare function restoreLeadingIndent(templateLine: string, line: string): string;
4
- export declare function stripInsertAnchorEcho(anchorLine: string, newLines: string[]): string[];
5
- export declare function stripInsertBeforeEcho(anchorLine: string, newLines: string[]): string[];
6
- export declare function stripRangeBoundaryEcho(lines: string[], startLine: number, endLine: number, newLines: string[]): string[];
3
+ export interface EchoTrimResult {
4
+ lines: string[];
5
+ stripped: number;
6
+ }
7
+ /**
8
+ * Remove a leading payload line that exactly duplicates the append anchor
9
+ * line. Only byte-identical echoes are trimmed; whitespace-differing lines
10
+ * are literal content and stay in the payload.
11
+ */
12
+ export declare function stripExactInsertEcho(anchorLine: string, newLines: string[]): EchoTrimResult;
13
+ /**
14
+ * Remove a trailing payload line that exactly duplicates the prepend anchor
15
+ * line. Only byte-identical echoes are trimmed.
16
+ */
17
+ export declare function stripExactInsertBeforeEcho(anchorLine: string, newLines: string[]): EchoTrimResult;
18
+ export interface BoundaryEchoTrimResult {
19
+ lines: string[];
20
+ droppedLeading: number;
21
+ droppedTrailing: number;
22
+ }
23
+ /**
24
+ * Remove exact copies of the surviving neighbor lines from a replace payload
25
+ * that is longer than the replaced range. Payloads that are not longer than
26
+ * their range are returned untouched so intentional boundary content is
27
+ * never silently dropped.
28
+ */
29
+ export declare function stripExactBoundaryEchoes(fileLines: string[], startLine: number, endLine: number, newLines: string[]): BoundaryEchoTrimResult;
@@ -1,8 +1,8 @@
1
1
  // FILE: src/plugins/hashline-edit/edit-text-normalization.ts
2
- // VERSION: 0.4.0
2
+ // VERSION: 0.5.0
3
3
  // START_MODULE_CONTRACT
4
- // PURPOSE: Normalize edit payload text so copied hashline rows and accidental diff markers do not corrupt replacements.
5
- // SCOPE: Prefix stripping, line splitting, indentation restoration, whitespace-tolerant insert echo trimming, and exact range-boundary echo trimming.
4
+ // PURPOSE: Normalize edit payload text so copied hashline rows and accidental diff markers do not corrupt replacements, and trim only provably accidental echo lines.
5
+ // SCOPE: Prefix stripping, line splitting, exact-match insert echo trimming with reporting, and exact-match range-boundary echo trimming with reporting.
6
6
  // DEPENDS: []
7
7
  // LINKS: [M-PLUGIN-HASHLINE-EDIT]
8
8
  // ROLE: RUNTIME
@@ -12,26 +12,18 @@
12
12
  // START_MODULE_MAP
13
13
  // stripLinePrefixes - Remove copied hashline or diff prefixes when most payload lines include them.
14
14
  // toNewLines - Normalize string or string[] payloads into plain content lines.
15
- // restoreLeadingIndent - Reapply the template line indentation for obvious unindented replacements.
16
- // stripInsertAnchorEcho - Remove duplicated anchor echoes from append payloads.
17
- // stripInsertBeforeEcho - Remove duplicated anchor echoes from prepend payloads.
18
- // stripRangeBoundaryEcho - Remove exact copies of surrounding lines accidentally included in replace payloads.
15
+ // EchoTrimResult - Trimmed payload lines plus the number of exact echo lines removed.
16
+ // stripExactInsertEcho - Remove a leading payload line that exactly duplicates the append anchor line.
17
+ // stripExactInsertBeforeEcho - Remove a trailing payload line that exactly duplicates the prepend anchor line.
18
+ // BoundaryEchoTrimResult - Trimmed payload lines plus removed leading/trailing boundary echo counts.
19
+ // stripExactBoundaryEchoes - Remove exact copies of surviving neighbor lines from over-long replace payloads.
19
20
  // END_MODULE_MAP
20
21
  //
21
22
  // START_CHANGE_SUMMARY
22
- // LAST_CHANGE: [v0.4.0 - Restricted range-boundary echo stripping to exact line matches so differently indented nested syntax is preserved.]
23
+ // LAST_CHANGE: [v0.5.0 - Replaced whitespace-insensitive autocorrect helpers with exact-match, reported echo trimming so valid payloads apply literally.]
23
24
  // END_CHANGE_SUMMARY
24
25
  const HASHLINE_PREFIX_RE = /^\s*(?:>>>|>>)?\s*\d+\s*#\s*[ZPMQVRWSNKTXJBYH]{2}(?:\s*#\s*[ZPMQVRWSNKTXJBYH]{2})?\|/;
25
26
  const DIFF_PLUS_RE = /^[+](?![+])/;
26
- function equalsIgnoringWhitespace(left, right) {
27
- if (left === right) {
28
- return true;
29
- }
30
- return left.replace(/\s+/g, "") === right.replace(/\s+/g, "");
31
- }
32
- function leadingWhitespace(text) {
33
- return text.match(/^\s*/)?.[0] ?? "";
34
- }
35
27
  export function stripLinePrefixes(lines) {
36
28
  let hashPrefixCount = 0;
37
29
  let diffPlusCount = 0;
@@ -72,56 +64,53 @@ export function toNewLines(input) {
72
64
  }
73
65
  return stripLinePrefixes(input.split("\n"));
74
66
  }
75
- export function restoreLeadingIndent(templateLine, line) {
76
- if (line.length === 0) {
77
- return line;
78
- }
79
- const templateIndent = leadingWhitespace(templateLine);
80
- if (templateIndent.length === 0) {
81
- return line;
82
- }
83
- if (leadingWhitespace(line).length > 0) {
84
- return line;
85
- }
86
- if (templateLine.trim() === line.trim()) {
87
- return line;
88
- }
89
- return `${templateIndent}${line}`;
90
- }
91
- export function stripInsertAnchorEcho(anchorLine, newLines) {
92
- if (newLines.length === 0) {
93
- return newLines;
94
- }
95
- if (equalsIgnoringWhitespace(newLines[0] ?? "", anchorLine)) {
96
- return newLines.slice(1);
97
- }
98
- return newLines;
67
+ /**
68
+ * Remove a leading payload line that exactly duplicates the append anchor
69
+ * line. Only byte-identical echoes are trimmed; whitespace-differing lines
70
+ * are literal content and stay in the payload.
71
+ */
72
+ export function stripExactInsertEcho(anchorLine, newLines) {
73
+ if (newLines.length > 0 && newLines[0] === anchorLine) {
74
+ return { lines: newLines.slice(1), stripped: 1 };
75
+ }
76
+ return { lines: newLines, stripped: 0 };
99
77
  }
100
- export function stripInsertBeforeEcho(anchorLine, newLines) {
101
- if (newLines.length === 0) {
102
- return newLines;
103
- }
104
- if (equalsIgnoringWhitespace(newLines[newLines.length - 1] ?? "", anchorLine)) {
105
- return newLines.slice(0, -1);
106
- }
107
- return newLines;
78
+ /**
79
+ * Remove a trailing payload line that exactly duplicates the prepend anchor
80
+ * line. Only byte-identical echoes are trimmed.
81
+ */
82
+ export function stripExactInsertBeforeEcho(anchorLine, newLines) {
83
+ if (newLines.length > 0 && newLines[newLines.length - 1] === anchorLine) {
84
+ return { lines: newLines.slice(0, -1), stripped: 1 };
85
+ }
86
+ return { lines: newLines, stripped: 0 };
108
87
  }
109
- export function stripRangeBoundaryEcho(lines, startLine, endLine, newLines) {
88
+ /**
89
+ * Remove exact copies of the surviving neighbor lines from a replace payload
90
+ * that is longer than the replaced range. Payloads that are not longer than
91
+ * their range are returned untouched so intentional boundary content is
92
+ * never silently dropped.
93
+ */
94
+ export function stripExactBoundaryEchoes(fileLines, startLine, endLine, newLines) {
110
95
  const replacedCount = endLine - startLine + 1;
111
- if (newLines.length <= 1 || newLines.length <= replacedCount) {
112
- return newLines;
96
+ if (newLines.length <= replacedCount) {
97
+ return { lines: newLines, droppedLeading: 0, droppedTrailing: 0 };
113
98
  }
114
99
  let output = newLines;
100
+ let droppedLeading = 0;
101
+ let droppedTrailing = 0;
115
102
  const beforeIndex = startLine - 2;
116
- if (beforeIndex >= 0 && output[0] === lines[beforeIndex]) {
103
+ if (beforeIndex >= 0 && output[0] === fileLines[beforeIndex]) {
117
104
  output = output.slice(1);
105
+ droppedLeading = 1;
118
106
  }
119
107
  const afterIndex = endLine;
120
- if (afterIndex < lines.length &&
108
+ if (afterIndex < fileLines.length &&
121
109
  output.length > 0 &&
122
- output[output.length - 1] === lines[afterIndex]) {
110
+ output[output.length - 1] === fileLines[afterIndex]) {
123
111
  output = output.slice(0, -1);
112
+ droppedTrailing = 1;
124
113
  }
125
- return output;
114
+ return { lines: output, droppedLeading, droppedTrailing };
126
115
  }
127
116
  //# sourceMappingURL=edit-text-normalization.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit-text-normalization.js","sourceRoot":"","sources":["../../../src/plugins/hashline-edit/edit-text-normalization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit-text-normalization.js","sourceRoot":"","sources":["../../../src/plugins/hashline-edit/edit-text-normalization.ts"],"names":[],"mappings":"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"}