docrev 0.9.5 → 0.9.7

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 (99) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dev_notes/bug_repro_comment_parser.md +71 -0
  3. package/dist/lib/anchor-match.d.ts +41 -0
  4. package/dist/lib/anchor-match.d.ts.map +1 -0
  5. package/dist/lib/anchor-match.js +192 -0
  6. package/dist/lib/anchor-match.js.map +1 -0
  7. package/dist/lib/annotations.d.ts.map +1 -1
  8. package/dist/lib/annotations.js +8 -5
  9. package/dist/lib/annotations.js.map +1 -1
  10. package/dist/lib/commands/file-ops.d.ts +11 -0
  11. package/dist/lib/commands/file-ops.d.ts.map +1 -0
  12. package/dist/lib/commands/file-ops.js +301 -0
  13. package/dist/lib/commands/file-ops.js.map +1 -0
  14. package/dist/lib/commands/index.d.ts +10 -1
  15. package/dist/lib/commands/index.d.ts.map +1 -1
  16. package/dist/lib/commands/index.js +19 -1
  17. package/dist/lib/commands/index.js.map +1 -1
  18. package/dist/lib/commands/merge-resolve.d.ts +12 -0
  19. package/dist/lib/commands/merge-resolve.d.ts.map +1 -0
  20. package/dist/lib/commands/merge-resolve.js +318 -0
  21. package/dist/lib/commands/merge-resolve.js.map +1 -0
  22. package/dist/lib/commands/preview.d.ts +11 -0
  23. package/dist/lib/commands/preview.d.ts.map +1 -0
  24. package/dist/lib/commands/preview.js +138 -0
  25. package/dist/lib/commands/preview.js.map +1 -0
  26. package/dist/lib/commands/project-info.d.ts +11 -0
  27. package/dist/lib/commands/project-info.d.ts.map +1 -0
  28. package/dist/lib/commands/project-info.js +187 -0
  29. package/dist/lib/commands/project-info.js.map +1 -0
  30. package/dist/lib/commands/quality.d.ts +11 -0
  31. package/dist/lib/commands/quality.d.ts.map +1 -0
  32. package/dist/lib/commands/quality.js +384 -0
  33. package/dist/lib/commands/quality.js.map +1 -0
  34. package/dist/lib/commands/section-boundaries.d.ts +22 -0
  35. package/dist/lib/commands/section-boundaries.d.ts.map +1 -0
  36. package/dist/lib/commands/section-boundaries.js +53 -0
  37. package/dist/lib/commands/section-boundaries.js.map +1 -0
  38. package/dist/lib/commands/sections.d.ts +3 -2
  39. package/dist/lib/commands/sections.d.ts.map +1 -1
  40. package/dist/lib/commands/sections.js +4 -736
  41. package/dist/lib/commands/sections.js.map +1 -1
  42. package/dist/lib/commands/sync.d.ts +11 -0
  43. package/dist/lib/commands/sync.d.ts.map +1 -0
  44. package/dist/lib/commands/sync.js +576 -0
  45. package/dist/lib/commands/sync.js.map +1 -0
  46. package/dist/lib/commands/text-ops.d.ts +11 -0
  47. package/dist/lib/commands/text-ops.d.ts.map +1 -0
  48. package/dist/lib/commands/text-ops.js +357 -0
  49. package/dist/lib/commands/text-ops.js.map +1 -0
  50. package/dist/lib/commands/utilities.d.ts +2 -4
  51. package/dist/lib/commands/utilities.d.ts.map +1 -1
  52. package/dist/lib/commands/utilities.js +3 -1572
  53. package/dist/lib/commands/utilities.js.map +1 -1
  54. package/dist/lib/commands/verify-anchors.d.ts +17 -0
  55. package/dist/lib/commands/verify-anchors.d.ts.map +1 -0
  56. package/dist/lib/commands/verify-anchors.js +215 -0
  57. package/dist/lib/commands/verify-anchors.js.map +1 -0
  58. package/dist/lib/commands/word-tools.d.ts +11 -0
  59. package/dist/lib/commands/word-tools.d.ts.map +1 -0
  60. package/dist/lib/commands/word-tools.js +272 -0
  61. package/dist/lib/commands/word-tools.js.map +1 -0
  62. package/dist/lib/diff-engine.d.ts +25 -0
  63. package/dist/lib/diff-engine.d.ts.map +1 -0
  64. package/dist/lib/diff-engine.js +354 -0
  65. package/dist/lib/diff-engine.js.map +1 -0
  66. package/dist/lib/import.d.ts +44 -118
  67. package/dist/lib/import.d.ts.map +1 -1
  68. package/dist/lib/import.js +25 -1173
  69. package/dist/lib/import.js.map +1 -1
  70. package/dist/lib/restore-references.d.ts +35 -0
  71. package/dist/lib/restore-references.d.ts.map +1 -0
  72. package/dist/lib/restore-references.js +188 -0
  73. package/dist/lib/restore-references.js.map +1 -0
  74. package/dist/lib/word-extraction.d.ts +100 -0
  75. package/dist/lib/word-extraction.d.ts.map +1 -0
  76. package/dist/lib/word-extraction.js +594 -0
  77. package/dist/lib/word-extraction.js.map +1 -0
  78. package/lib/anchor-match.ts +238 -0
  79. package/lib/annotations.ts +9 -5
  80. package/lib/commands/file-ops.ts +372 -0
  81. package/lib/commands/index.ts +27 -0
  82. package/lib/commands/merge-resolve.ts +378 -0
  83. package/lib/commands/preview.ts +178 -0
  84. package/lib/commands/project-info.ts +244 -0
  85. package/lib/commands/quality.ts +517 -0
  86. package/lib/commands/section-boundaries.ts +72 -0
  87. package/lib/commands/sections.ts +3 -870
  88. package/lib/commands/sync.ts +701 -0
  89. package/lib/commands/text-ops.ts +449 -0
  90. package/lib/commands/utilities.ts +62 -2043
  91. package/lib/commands/verify-anchors.ts +261 -0
  92. package/lib/commands/word-tools.ts +340 -0
  93. package/lib/diff-engine.ts +465 -0
  94. package/lib/import.ts +108 -1504
  95. package/lib/restore-references.ts +240 -0
  96. package/lib/word-extraction.ts +759 -0
  97. package/package.json +1 -1
  98. package/skill/REFERENCE.md +29 -2
  99. package/skill/SKILL.md +12 -2
@@ -0,0 +1,354 @@
1
+ /**
2
+ * Diff engine - diffing and annotation processing for Word→Markdown import
3
+ */
4
+ import { diffWords } from 'diff';
5
+ import { extractMarkdownPrefix, protectAnchors, restoreAnchors, protectCrossrefs, restoreCrossrefs, protectMath, restoreMath, replaceRenderedMath, protectCitations, restoreCitations, replaceRenderedCitations, protectImages, restoreImages, matchWordImagesToOriginal, protectTables, restoreTables, } from './protect-restore.js';
6
+ import { normalizeWhitespace } from './utils.js';
7
+ // ============================================
8
+ // Functions
9
+ // ============================================
10
+ /**
11
+ * Fix citation and math annotations by preserving original markdown syntax
12
+ */
13
+ export function fixCitationAnnotations(text, originalMd) {
14
+ // Fix math annotations - preserve inline and display math
15
+ text = text.replace(/\{--(\$[^$]+\$)--\}/g, '$1');
16
+ text = text.replace(/\{--(\$\$[^$]+\$\$)--\}/g, '$1');
17
+ text = text.replace(/\{~~(\$[^$]+\$)~>[^~]+~~\}/g, '$1');
18
+ text = text.replace(/\{~~(\$\$[^$]+\$\$)~>[^~]+~~\}/g, '$1');
19
+ // Extract all citations from original markdown
20
+ const citationPattern = /\[@[^\]]+\]/g;
21
+ const originalCitations = [...originalMd.matchAll(citationPattern)].map(m => m[0]);
22
+ // Fix substitutions where left side has markdown citation
23
+ text = text.replace(/\{~~(\[@[^\]]+\])~>[^~]+~~\}/g, '$1');
24
+ // Fix substitutions where left side STARTS with markdown citation
25
+ text = text.replace(/\{~~(\[@[^\]]+\])\s*([^~]*)~>([^~]*)~~\}/g, (match, cite, oldText, newText) => {
26
+ if (oldText.trim() === '' && newText.trim() === '') {
27
+ return cite;
28
+ }
29
+ if (oldText.trim() || newText.trim()) {
30
+ return cite + (oldText.trim() !== newText.trim() ? ` {~~${oldText.trim()}~>${newText.trim()}~~}` : ` ${newText}`);
31
+ }
32
+ return cite;
33
+ });
34
+ // Fix deletions of markdown citations
35
+ text = text.replace(/\{--(\[@[^\]]+\])--\}/g, '$1');
36
+ // Fix insertions of rendered citations
37
+ text = text.replace(/\{\+\+\([A-Z][^)]*\d{4}[^)]*\)\+\+\}/g, '');
38
+ // Clean up broken multi-part substitutions
39
+ text = text.replace(/\{~~(@[A-Za-z]+\d{4})~>[^~]+~~\}/g, '[$1]');
40
+ // Fix citations split across substitution boundaries
41
+ text = text.replace(/\{~~\[@~>[^~]*~~\}([A-Za-z]+\d{4})\]/g, '[@$1]');
42
+ // Clean up any remaining partial citations
43
+ text = text.replace(/\{~~;\s*@([A-Za-z]+\d{4})\]~>[^~]*~~\}/g, '; [@$1]');
44
+ // Remove rendered citation insertions (with Unicode support)
45
+ text = text.replace(/\{\+\+\(\p{Lu}\p{L}*(?:\s+et\s+al\.?)?\s+\d{4}[a-z]?(?:[;,]\s*\p{Lu}\p{L}*(?:\s+et\s+al\.?)?\s+\d{4}[a-z]?)*\)\+\+\}/gu, '');
46
+ text = text.replace(/\{\+\+\(\p{Lu}\p{L}*(?:\s+et\s+al\.?)?\s+\d{4}[a-z]?(?:[;,]\s*\p{Lu}\p{L}*(?:\s+et\s+al\.?)?\s+\d{4}[a-z]?)*\)\.\s*\+\+\}/gu, '');
47
+ // Trailing citation fragments
48
+ text = text.replace(/\{\+\+\d{4}[a-z]?(?:[;,]\s*(?:\p{Lu}\p{L}*(?:\s+et\s+al\.?)?\s+)?\d{4}[a-z]?)*\)\.\s*\+\+\}/gu, '');
49
+ text = text.replace(/\{\+\+\d{4}[a-z]?(?:[;,]\s*(?:\p{Lu}\p{L}*(?:\s+et\s+al\.?)?\s+)?\d{4}[a-z]?)*\)\s*\+\+\}/gu, '');
50
+ // Just year with closing paren
51
+ text = text.replace(/\{\+\+\d{4}[a-z]?\)\.\s*\+\+\}/g, '');
52
+ text = text.replace(/\{\+\+\d{4}[a-z]?\)\s*\+\+\}/g, '');
53
+ // Leading citation fragments
54
+ text = text.replace(/\{\+\+\(?\p{Lu}\p{L}*(?:\s+et\s+al\.?)?\s*\+\+\}/gu, '');
55
+ // Semicolon-separated fragments
56
+ text = text.replace(/\{\+\+[;,]\s*\p{Lu}\p{L}*(?:\s+et\s+al\.?)?\s+\d{4}[a-z]?\+\+\}/gu, '');
57
+ // Year ranges with authors
58
+ text = text.replace(/\{\+\+\p{Lu}\p{L}*(?:\s+et\s+al\.?)?\s+\d{4}[a-z]?(?:[;,]\s*\p{Lu}\p{L}*(?:\s+et\s+al\.?)?\s+\d{4}[a-z]?)*\)\s*\+\+\}/gu, '');
59
+ text = text.replace(/\{\+\+\p{Lu}\p{L}*(?:\s+et\s+al\.?)?\s+\d{4}[a-z]?(?:[;,]\s*\p{Lu}\p{L}*(?:\s+et\s+al\.?)?\s+\d{4}[a-z]?)*\)\.\s*\+\+\}/gu, '');
60
+ // Clean up double spaces and orphaned punctuation
61
+ text = text.replace(/ +/g, ' ');
62
+ text = text.replace(/\s+\./g, '.');
63
+ text = text.replace(/\s+,/g, ',');
64
+ // Final cleanup - remove empty annotations
65
+ text = text.replace(/\{~~\s*~>\s*~~\}/g, '');
66
+ text = text.replace(/\{\+\+\s*\+\+\}/g, '');
67
+ text = text.replace(/\{--\s*--\}/g, '');
68
+ return text;
69
+ }
70
+ /**
71
+ * Strip markdown syntax to get plain text
72
+ */
73
+ function stripMarkdownSyntax(md) {
74
+ return md
75
+ .replace(/^---[\s\S]*?---\n*/m, '')
76
+ .replace(/^#{1,6}\s+/gm, '')
77
+ .replace(/(\*\*|__)(.*?)\1/g, '$2')
78
+ .replace(/(\*|_)(.*?)\1/g, '$2')
79
+ .replace(/\[([^\]]+)\]\([^)]+\)/g, '$1')
80
+ .replace(/!\[([^\]]*)\]\([^)]+\)/g, '')
81
+ .replace(/`([^`]+)`/g, '$1')
82
+ .replace(/```[\s\S]*?```/g, '')
83
+ .replace(/^>\s*/gm, '')
84
+ .replace(/^[-*_]{3,}\s*$/gm, '')
85
+ .replace(/^[\s]*[-*+]\s+/gm, '')
86
+ .replace(/^[\s]*\d+\.\s+/gm, '')
87
+ .replace(/\|/g, ' ')
88
+ .replace(/^[-:]+$/gm, '')
89
+ .replace(/\n{3,}/g, '\n\n')
90
+ .trim();
91
+ }
92
+ /**
93
+ * Inject Word tables (extracted from XML) into pandoc text output
94
+ */
95
+ function injectWordTables(pandocText, wordTables) {
96
+ if (!wordTables || wordTables.length === 0) {
97
+ return pandocText;
98
+ }
99
+ let result = pandocText;
100
+ for (const table of wordTables) {
101
+ const firstLine = table.markdown.split('\n')[0];
102
+ const headerCells = firstLine
103
+ .split('|')
104
+ .map((c) => c.trim())
105
+ .filter((c) => c.length > 0);
106
+ if (headerCells.length === 0)
107
+ continue;
108
+ const firstCell = headerCells[0];
109
+ const startIdx = result.indexOf(firstCell);
110
+ if (startIdx === -1)
111
+ continue;
112
+ const lastLine = table.markdown.split('\n').pop();
113
+ const lastCells = lastLine
114
+ .split('|')
115
+ .map((c) => c.trim())
116
+ .filter((c) => c.length > 0);
117
+ const lastCell = lastCells[lastCells.length - 1] || lastCells[0];
118
+ const endIdx = result.indexOf(lastCell, startIdx);
119
+ if (endIdx === -1)
120
+ continue;
121
+ let regionStart = result.lastIndexOf('\n\n', startIdx);
122
+ if (regionStart === -1)
123
+ regionStart = 0;
124
+ else
125
+ regionStart += 2;
126
+ let regionEnd = result.indexOf('\n\n', endIdx + lastCell.length);
127
+ if (regionEnd === -1)
128
+ regionEnd = result.length;
129
+ result = result.slice(0, regionStart) + table.markdown + '\n\n' + result.slice(regionEnd);
130
+ }
131
+ return result;
132
+ }
133
+ /**
134
+ * Generate annotated markdown by diffing original MD against Word text
135
+ */
136
+ export function generateAnnotatedDiff(originalMd, wordText, author = 'Reviewer') {
137
+ const normalizedOriginal = normalizeWhitespace(originalMd);
138
+ const normalizedWord = normalizeWhitespace(wordText);
139
+ const changes = diffWords(normalizedOriginal, normalizedWord);
140
+ let result = '';
141
+ for (const part of changes) {
142
+ if (part.added) {
143
+ result += `{++${part.value}++}`;
144
+ }
145
+ else if (part.removed) {
146
+ result += `{--${part.value}--}`;
147
+ }
148
+ else {
149
+ result += part.value;
150
+ }
151
+ }
152
+ return result;
153
+ }
154
+ /**
155
+ * Smart paragraph-level diff that preserves markdown structure
156
+ */
157
+ export function generateSmartDiff(originalMd, wordText, author = 'Reviewer', options = {}) {
158
+ const { wordTables = [], imageRegistry = null } = options;
159
+ // Inject Word tables into pandoc output
160
+ let wordTextWithTables = injectWordTables(wordText, wordTables);
161
+ // Protect markdown tables
162
+ const { text: mdWithTablesProtected, tables } = protectTables(originalMd);
163
+ // Also protect tables in Word text
164
+ const { text: wordWithTablesProtected, tables: wordTableBlocks } = protectTables(wordTextWithTables);
165
+ // Protect images
166
+ const { text: mdWithImagesProtected, images: origImages } = protectImages(mdWithTablesProtected, imageRegistry);
167
+ const { text: wordWithImagesProtected, images: wordImages } = protectImages(wordWithTablesProtected, imageRegistry);
168
+ // Match Word images to original images
169
+ const imageMapping = matchWordImagesToOriginal(origImages, wordImages, imageRegistry);
170
+ // Replace Word image placeholders with matching original placeholders
171
+ let wordWithMappedImages = wordWithImagesProtected;
172
+ for (const [wordPlaceholder, origPlaceholder] of imageMapping) {
173
+ wordWithMappedImages = wordWithMappedImages.split(wordPlaceholder).join(origPlaceholder);
174
+ }
175
+ // Protect figure/table anchors
176
+ const { text: mdWithAnchorsProtected, anchors: figAnchors } = protectAnchors(mdWithImagesProtected);
177
+ // Protect cross-references
178
+ const { text: mdWithXrefsProtected, crossrefs } = protectCrossrefs(mdWithAnchorsProtected);
179
+ // Protect math
180
+ const { text: mdWithMathProtected, mathBlocks } = protectMath(mdWithXrefsProtected);
181
+ // Protect citations
182
+ const { text: mdProtected, citations } = protectCitations(mdWithMathProtected);
183
+ // Replace rendered elements in Word text
184
+ let wordProtected = wordWithMappedImages;
185
+ wordProtected = replaceRenderedMath(wordProtected, mathBlocks);
186
+ wordProtected = replaceRenderedCitations(wordProtected, citations.length);
187
+ // Split into paragraphs
188
+ const originalParas = mdProtected.split(/\n\n+/);
189
+ const wordParas = wordProtected.split(/\n\n+/);
190
+ const result = [];
191
+ // Try to match paragraphs intelligently
192
+ let wordIdx = 0;
193
+ for (let i = 0; i < originalParas.length; i++) {
194
+ const orig = originalParas[i] || '';
195
+ const { prefix: mdPrefix, content: origContent } = extractMarkdownPrefix(orig.split('\n')[0]);
196
+ // Find best matching word paragraph
197
+ let bestMatch = -1;
198
+ let bestScore = 0;
199
+ for (let j = wordIdx; j < Math.min(wordIdx + 3, wordParas.length); j++) {
200
+ const wordPara = wordParas[j] || '';
201
+ const origWords = new Set(origContent.toLowerCase().split(/\s+/));
202
+ const wordWords = wordPara.toLowerCase().split(/\s+/);
203
+ const common = wordWords.filter((w) => origWords.has(w)).length;
204
+ const score = common / Math.max(origWords.size, wordWords.length);
205
+ if (score > bestScore && score > 0.3) {
206
+ bestScore = score;
207
+ bestMatch = j;
208
+ }
209
+ }
210
+ if (bestMatch === -1) {
211
+ if (mdPrefix && wordIdx < wordParas.length) {
212
+ const wordPara = wordParas[wordIdx];
213
+ if (wordPara.toLowerCase().includes(origContent.toLowerCase().slice(0, 20))) {
214
+ bestMatch = wordIdx;
215
+ }
216
+ }
217
+ }
218
+ if (bestMatch >= 0) {
219
+ const word = wordParas[bestMatch];
220
+ const origStripped = stripMarkdownSyntax(orig);
221
+ const wordNormalized = normalizeWhitespace(word);
222
+ if (origStripped === wordNormalized) {
223
+ result.push(orig);
224
+ }
225
+ else {
226
+ const changes = diffWords(origStripped, wordNormalized);
227
+ let annotated = mdPrefix;
228
+ for (const part of changes) {
229
+ if (part.added) {
230
+ annotated += `{++${part.value}++}`;
231
+ }
232
+ else if (part.removed) {
233
+ annotated += `{--${part.value}--}`;
234
+ }
235
+ else {
236
+ annotated += part.value;
237
+ }
238
+ }
239
+ result.push(annotated);
240
+ }
241
+ wordIdx = bestMatch + 1;
242
+ }
243
+ else {
244
+ // Paragraph deleted entirely
245
+ if (mdPrefix && mdPrefix.match(/^#{1,6}\s+/)) {
246
+ result.push(orig);
247
+ }
248
+ else {
249
+ result.push(`{--${orig}--}`);
250
+ }
251
+ }
252
+ }
253
+ // Any remaining word paragraphs are additions
254
+ for (let j = wordIdx; j < wordParas.length; j++) {
255
+ const word = wordParas[j];
256
+ if (word.trim()) {
257
+ result.push(`{++${word}++}`);
258
+ }
259
+ }
260
+ // Restore protected content
261
+ let finalResult = result.join('\n\n');
262
+ finalResult = restoreCitations(finalResult, citations);
263
+ finalResult = restoreMath(finalResult, mathBlocks);
264
+ finalResult = restoreCrossrefs(finalResult, crossrefs);
265
+ finalResult = restoreAnchors(finalResult, figAnchors);
266
+ finalResult = restoreImages(finalResult, origImages);
267
+ finalResult = restoreImages(finalResult, wordImages);
268
+ finalResult = restoreTables(finalResult, tables);
269
+ finalResult = restoreTables(finalResult, wordTableBlocks);
270
+ return finalResult;
271
+ }
272
+ /**
273
+ * Clean up redundant adjacent annotations
274
+ */
275
+ export function cleanupAnnotations(text) {
276
+ // Convert adjacent delete+insert to substitution
277
+ text = text.replace(/\{--(.+?)--\}\s*\{\+\+(.+?)\+\+\}/g, '{~~$1~>$2~~}');
278
+ // Also handle insert+delete
279
+ text = text.replace(/\{\+\+(.+?)\+\+\}\s*\{--(.+?)--\}/g, '{~~$2~>$1~~}');
280
+ // Fix malformed patterns
281
+ text = text.replace(/\{--([^}]+?)~>([^}]+?)~~\}/g, '{~~$1~>$2~~}');
282
+ // Fix malformed substitutions that got split
283
+ text = text.replace(/\{~~([^~]+)\s*--\}/g, '{--$1--}');
284
+ text = text.replace(/\{\+\+([^+]+)~~\}/g, '{++$1++}');
285
+ // Clean up empty annotations
286
+ text = text.replace(/\{--\s*--\}/g, '');
287
+ text = text.replace(/\{\+\+\s*\+\+\}/g, '');
288
+ // Clean up double spaces in prose, but preserve table formatting
289
+ const lines = text.split('\n');
290
+ let inTable = false;
291
+ const processedLines = lines.map((line, idx) => {
292
+ const isSeparator = /^[-]+(\s+[-]+)+\s*$/.test(line.trim());
293
+ const looksLikeTableRow = /\S+\s{2,}\S+/.test(line);
294
+ if (isSeparator) {
295
+ if (!inTable) {
296
+ inTable = true;
297
+ }
298
+ return line;
299
+ }
300
+ if (inTable) {
301
+ if (line.trim() === '') {
302
+ let lookAhead = idx + 1;
303
+ let foundTableContent = false;
304
+ let foundEndSeparator = false;
305
+ while (lookAhead < lines.length && lookAhead < idx + 20) {
306
+ const nextLine = lines[lookAhead].trim();
307
+ if (nextLine === '') {
308
+ lookAhead++;
309
+ continue;
310
+ }
311
+ if (/^[-]+(\s+[-]+)+\s*$/.test(nextLine)) {
312
+ foundEndSeparator = true;
313
+ break;
314
+ }
315
+ if (/\S+\s{2,}\S+/.test(nextLine)) {
316
+ foundTableContent = true;
317
+ break;
318
+ }
319
+ if (/^\*[^*]+\*\s*$/.test(nextLine)) {
320
+ foundTableContent = true;
321
+ break;
322
+ }
323
+ if (lines[lookAhead].startsWith(' ')) {
324
+ lookAhead++;
325
+ continue;
326
+ }
327
+ break;
328
+ }
329
+ if (foundTableContent || foundEndSeparator) {
330
+ return line;
331
+ }
332
+ inTable = false;
333
+ return line;
334
+ }
335
+ return line;
336
+ }
337
+ if (looksLikeTableRow) {
338
+ let nextIdx = idx + 1;
339
+ while (nextIdx < lines.length && lines[nextIdx].trim() === '') {
340
+ nextIdx++;
341
+ }
342
+ if (nextIdx < lines.length && /^[-]+(\s+[-]+)+\s*$/.test(lines[nextIdx].trim())) {
343
+ return line;
344
+ }
345
+ }
346
+ if (line.trim().startsWith('|')) {
347
+ return line;
348
+ }
349
+ return line.replace(/ +/g, ' ');
350
+ });
351
+ text = processedLines.join('\n');
352
+ return text;
353
+ }
354
+ //# sourceMappingURL=diff-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-engine.js","sourceRoot":"","sources":["../../lib/diff-engine.ts"],"names":[],"mappings":"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"}
@@ -1,77 +1,54 @@
1
1
  /**
2
2
  * Import functionality - convert Word docs to annotated Markdown
3
- */
4
- interface WordComment {
5
- id: string;
6
- author: string;
7
- date: string;
8
- text: string;
9
- }
10
- interface CommentAnchorData {
11
- anchor: string;
12
- before: string;
13
- after: string;
14
- docPosition: number;
15
- docLength: number;
16
- isEmpty: boolean;
17
- }
18
- interface CommentAnchorsResult {
19
- anchors: Map<string, CommentAnchorData>;
20
- fullDocText: string;
21
- }
22
- interface WordTable {
23
- markdown: string;
24
- rowCount: number;
25
- colCount: number;
26
- }
27
- interface ExtractFromWordOptions {
28
- mediaDir?: string;
29
- skipMediaExtraction?: boolean;
30
- }
31
- interface ExtractMessage {
32
- type: 'info' | 'warning';
33
- message: string;
34
- }
35
- interface ExtractFromWordResult {
36
- text: string;
37
- comments: WordComment[];
38
- anchors: Map<string, CommentAnchorData>;
39
- messages: ExtractMessage[];
40
- extractedMedia: string[];
41
- tables: WordTable[];
42
- hasTrackChanges: boolean;
43
- trackChangeStats: {
44
- insertions: number;
45
- deletions: number;
46
- };
47
- }
48
- interface InsertCommentsOptions {
3
+ *
4
+ * Orchestration workflows + re-exports from extraction/diff/restore modules
5
+ */
6
+ import type { WordComment, CommentAnchorData, WordTable } from './word-extraction.js';
7
+ export { extractFromWord, extractWordComments, extractCommentAnchors, extractHeadings, extractWordTables, } from './word-extraction.js';
8
+ export type { WordComment, TextNode, CommentAnchorData, CommentAnchorsResult, DocxHeading, WordTable, ParsedRow, ExtractFromWordOptions, ExtractMessage, ExtractFromWordResult, } from './word-extraction.js';
9
+ export { generateSmartDiff, generateAnnotatedDiff, cleanupAnnotations, fixCitationAnnotations, } from './diff-engine.js';
10
+ export type { GenerateSmartDiffOptions, } from './diff-engine.js';
11
+ export { restoreCrossrefFromWord, restoreImagesFromRegistry, parseVisibleComments, convertVisibleComments, } from './restore-references.js';
12
+ export type { RestoreCrossrefResult, RestoreImagesResult, } from './restore-references.js';
13
+ export interface InsertCommentsOptions {
49
14
  quiet?: boolean;
50
15
  sectionBoundary?: {
51
16
  start: number;
52
17
  end: number;
53
18
  } | null;
54
- }
55
- interface GenerateSmartDiffOptions {
56
- wordTables?: WordTable[];
57
- imageRegistry?: any;
58
- }
59
- interface RestoreCrossrefResult {
60
- text: string;
61
- restored: number;
62
- messages: string[];
63
- restoredLabels: Set<string>;
64
- }
65
- interface RestoreImagesResult {
19
+ /**
20
+ * When true (default), comments wrap their anchor text in `[anchor]{.mark}`
21
+ * so the rebuilt docx restores the original Word comment range. When false,
22
+ * comments are inserted as standalone `{>>...<<}` blocks adjacent to the
23
+ * anchor — the prose stays byte-identical except for the inserted blocks.
24
+ *
25
+ * Set to false from `sync --comments-only` so a draft revised after the
26
+ * docx was sent for review keeps its prose intact, and so multiple
27
+ * comments sharing one anchor don't produce nested broken markup.
28
+ */
29
+ wrapAnchor?: boolean;
30
+ }
31
+ export interface CommentWithPos {
32
+ id: string;
33
+ author: string;
66
34
  text: string;
67
- restored: number;
68
- messages: string[];
69
- }
70
- interface ImportWordWithTrackChangesOptions {
35
+ date: string;
36
+ pos: number;
37
+ anchorText: string | null;
38
+ anchorEnd?: number;
39
+ isEmpty?: boolean;
40
+ strategy?: string;
41
+ }
42
+ export type { AnchorSearchResult } from './anchor-match.js';
43
+ export interface MarkdownPrefixResult {
44
+ prefix: string;
45
+ content: string;
46
+ }
47
+ export interface ImportWordWithTrackChangesOptions {
71
48
  mediaDir?: string;
72
49
  projectDir?: string;
73
50
  }
74
- interface ImportWordWithTrackChangesResult {
51
+ export interface ImportWordWithTrackChangesResult {
75
52
  text: string;
76
53
  stats: {
77
54
  insertions: number;
@@ -88,13 +65,13 @@ interface ImportWordWithTrackChangesResult {
88
65
  extractedMedia: string[];
89
66
  comments: WordComment[];
90
67
  }
91
- interface ImportFromWordOptions {
68
+ export interface ImportFromWordOptions {
92
69
  author?: string;
93
70
  sectionContent?: string;
94
71
  figuresDir?: string;
95
72
  wordTables?: WordTable[];
96
73
  }
97
- interface ImportFromWordResult {
74
+ export interface ImportFromWordResult {
98
75
  annotated: string;
99
76
  stats: {
100
77
  insertions: number;
@@ -105,69 +82,19 @@ interface ImportFromWordResult {
105
82
  };
106
83
  extractedMedia: string[];
107
84
  }
108
- interface MovedFile {
85
+ export interface MovedFile {
109
86
  from: string;
110
87
  to: string;
111
88
  name: string;
112
89
  }
113
- interface MoveExtractedMediaResult {
90
+ export interface MoveExtractedMediaResult {
114
91
  moved: MovedFile[];
115
92
  errors: string[];
116
93
  }
117
- /**
118
- * Extract comments directly from Word docx comments.xml
119
- */
120
- export declare function extractWordComments(docxPath: string): Promise<WordComment[]>;
121
- /**
122
- * Extract comment anchor texts from document.xml with surrounding context
123
- * Returns map of comment ID -> {anchor, before, after, docPosition, isEmpty} for better matching
124
- * Also returns fullDocText for section boundary matching
125
- */
126
- export declare function extractCommentAnchors(docxPath: string): Promise<CommentAnchorsResult>;
127
- /**
128
- * Extract tables directly from Word document XML and convert to markdown pipe tables
129
- */
130
- export declare function extractWordTables(docxPath: string): Promise<WordTable[]>;
131
- /**
132
- * Extract text from Word document using pandoc with track changes preserved
133
- */
134
- export declare function extractFromWord(docxPath: string, options?: ExtractFromWordOptions): Promise<ExtractFromWordResult>;
135
94
  /**
136
95
  * Insert comments into markdown text based on anchor texts with context
137
96
  */
138
97
  export declare function insertCommentsIntoMarkdown(markdown: string, comments: WordComment[], anchors: Map<string, CommentAnchorData | string>, options?: InsertCommentsOptions): string;
139
- /**
140
- * Generate annotated markdown by diffing original MD against Word text
141
- */
142
- export declare function generateAnnotatedDiff(originalMd: string, wordText: string, author?: string): string;
143
- /**
144
- * Smart paragraph-level diff that preserves markdown structure
145
- */
146
- export declare function generateSmartDiff(originalMd: string, wordText: string, author?: string, options?: GenerateSmartDiffOptions): string;
147
- /**
148
- * Clean up redundant adjacent annotations
149
- */
150
- export declare function cleanupAnnotations(text: string): string;
151
- /**
152
- * Parse visible comment markers from Word text
153
- */
154
- export declare function parseVisibleComments(text: string): Array<{
155
- author: string;
156
- text: string;
157
- position: number;
158
- }>;
159
- /**
160
- * Convert visible comments to CriticMarkup format
161
- */
162
- export declare function convertVisibleComments(text: string): string;
163
- /**
164
- * Restore pandoc-crossref figure/table references from Word-rendered format
165
- */
166
- export declare function restoreCrossrefFromWord(text: string, projectDir: string, restoredLabels?: Set<string> | null): RestoreCrossrefResult;
167
- /**
168
- * Restore proper markdown image syntax from Word-extracted text using image registry
169
- */
170
- export declare function restoreImagesFromRegistry(text: string, projectDir: string, restoredLabels?: Set<string> | null): RestoreImagesResult;
171
98
  /**
172
99
  * Import Word document with track changes directly as CriticMarkup
173
100
  */
@@ -180,5 +107,4 @@ export declare function importFromWord(docxPath: string, originalMdPath: string,
180
107
  * Move extracted media files to a figures directory with better names
181
108
  */
182
109
  export declare function moveExtractedMedia(mediaFiles: string[], figuresDir: string, prefix?: string): MoveExtractedMediaResult;
183
- export {};
184
110
  //# sourceMappingURL=import.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../lib/import.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoCH,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAUD,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,oBAAoB;IAC5B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,SAAS;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAOD,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7D;AAED,UAAU,qBAAqB;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACzD;AA0BD,UAAU,wBAAwB;IAChC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,GAAG,CAAC;CACrB;AAED,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,UAAU,iCAAiC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,gCAAgC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7D,CAAC;IACF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,UAAU,qBAAqB;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B;AAED,UAAU,oBAAoB;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,wBAAwB;IAChC,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAMD;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAoFlF;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA6J3F;AA2GD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA2C9E;AAqCD;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CA0IhC;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAAC,EAChD,OAAO,GAAE,qBAA0B,GAClC,MAAM,CAwVR;AAwGD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAmB,GAAG,MAAM,CAmB/G;AAiDD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAAmB,EAC3B,OAAO,GAAE,wBAA6B,GACrC,MAAM,CA0IR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqGvD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAc5G;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,cAAc,GAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAW,GACxC,qBAAqB,CAkEvB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,cAAc,GAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAW,GACxC,mBAAmB,CAwGrB;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,gCAAgC,CAAC,CA4F3C;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC,CA8I/B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAiB,GACxB,wBAAwB,CAuB1B"}
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../lib/import.ts"],"names":[],"mappings":"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"}