@ssmeo/mcp-local-rag 0.18.13 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/README.de.md +248 -215
  2. package/README.es.md +241 -215
  3. package/README.fr.md +249 -215
  4. package/README.md +207 -297
  5. package/README.pt-BR.md +236 -215
  6. package/README.zh-CN.md +133 -206
  7. package/dist/chunker/semantic-chunker.d.ts +23 -5
  8. package/dist/chunker/semantic-chunker.d.ts.map +1 -1
  9. package/dist/chunker/semantic-chunker.js +13 -5
  10. package/dist/chunker/semantic-chunker.js.map +1 -1
  11. package/dist/cli/common.d.ts +7 -0
  12. package/dist/cli/common.d.ts.map +1 -1
  13. package/dist/cli/common.js +26 -2
  14. package/dist/cli/common.js.map +1 -1
  15. package/dist/cli/delete.d.ts.map +1 -1
  16. package/dist/cli/delete.js +2 -0
  17. package/dist/cli/delete.js.map +1 -1
  18. package/dist/cli/download-model.d.ts +3 -0
  19. package/dist/cli/download-model.d.ts.map +1 -0
  20. package/dist/cli/download-model.js +21 -0
  21. package/dist/cli/download-model.js.map +1 -0
  22. package/dist/cli/file-collection.d.ts +2 -1
  23. package/dist/cli/file-collection.d.ts.map +1 -1
  24. package/dist/cli/file-collection.js +2 -2
  25. package/dist/cli/file-collection.js.map +1 -1
  26. package/dist/cli/ingest.d.ts +1 -0
  27. package/dist/cli/ingest.d.ts.map +1 -1
  28. package/dist/cli/ingest.js +45 -25
  29. package/dist/cli/ingest.js.map +1 -1
  30. package/dist/cli/list.d.ts.map +1 -1
  31. package/dist/cli/list.js +9 -13
  32. package/dist/cli/list.js.map +1 -1
  33. package/dist/cli/options.d.ts +8 -0
  34. package/dist/cli/options.d.ts.map +1 -1
  35. package/dist/cli/options.js +21 -0
  36. package/dist/cli/options.js.map +1 -1
  37. package/dist/cli/query.d.ts.map +1 -1
  38. package/dist/cli/query.js +2 -1
  39. package/dist/cli/query.js.map +1 -1
  40. package/dist/cli/read-neighbors.d.ts.map +1 -1
  41. package/dist/cli/read-neighbors.js +1 -0
  42. package/dist/cli/read-neighbors.js.map +1 -1
  43. package/dist/cli/relocate.d.ts +3 -0
  44. package/dist/cli/relocate.d.ts.map +1 -0
  45. package/dist/cli/relocate.js +135 -0
  46. package/dist/cli/relocate.js.map +1 -0
  47. package/dist/cli/sync.d.ts.map +1 -1
  48. package/dist/cli/sync.js +17 -8
  49. package/dist/cli/sync.js.map +1 -1
  50. package/dist/cli-main.d.ts +1 -1
  51. package/dist/cli-main.d.ts.map +1 -1
  52. package/dist/cli-main.js +5 -0
  53. package/dist/cli-main.js.map +1 -1
  54. package/dist/embedder/embedding-snapshot.d.ts +52 -0
  55. package/dist/embedder/embedding-snapshot.d.ts.map +1 -0
  56. package/dist/embedder/embedding-snapshot.js +413 -0
  57. package/dist/embedder/embedding-snapshot.js.map +1 -0
  58. package/dist/embedder/index.d.ts +36 -5
  59. package/dist/embedder/index.d.ts.map +1 -1
  60. package/dist/embedder/index.js +351 -24
  61. package/dist/embedder/index.js.map +1 -1
  62. package/dist/embedder/remote.d.ts +42 -4
  63. package/dist/embedder/remote.d.ts.map +1 -1
  64. package/dist/embedder/remote.js +113 -5
  65. package/dist/embedder/remote.js.map +1 -1
  66. package/dist/embedder/sentence-transformers-config.d.ts +24 -0
  67. package/dist/embedder/sentence-transformers-config.d.ts.map +1 -0
  68. package/dist/embedder/sentence-transformers-config.js +93 -0
  69. package/dist/embedder/sentence-transformers-config.js.map +1 -0
  70. package/dist/features/sync.js +1 -1
  71. package/dist/features/sync.js.map +1 -1
  72. package/dist/ingest/compute.d.ts +15 -7
  73. package/dist/ingest/compute.d.ts.map +1 -1
  74. package/dist/ingest/compute.js +74 -14
  75. package/dist/ingest/compute.js.map +1 -1
  76. package/dist/ingest/file.d.ts +3 -3
  77. package/dist/ingest/file.d.ts.map +1 -1
  78. package/dist/ingest/file.js +0 -5
  79. package/dist/ingest/file.js.map +1 -1
  80. package/dist/ingest/visual.d.ts +6 -2
  81. package/dist/ingest/visual.d.ts.map +1 -1
  82. package/dist/ingest/visual.js +20 -4
  83. package/dist/ingest/visual.js.map +1 -1
  84. package/dist/parser/docx-parser.d.ts +2 -0
  85. package/dist/parser/docx-parser.d.ts.map +1 -1
  86. package/dist/parser/docx-parser.js +12 -3
  87. package/dist/parser/docx-parser.js.map +1 -1
  88. package/dist/parser/index.d.ts +11 -1
  89. package/dist/parser/index.d.ts.map +1 -1
  90. package/dist/parser/index.js +27 -11
  91. package/dist/parser/index.js.map +1 -1
  92. package/dist/parser/pdf-extract.d.ts +2 -0
  93. package/dist/parser/pdf-extract.d.ts.map +1 -1
  94. package/dist/parser/pdf-extract.js +3 -0
  95. package/dist/parser/pdf-extract.js.map +1 -1
  96. package/dist/parser/pdf-filter.d.ts +2 -9
  97. package/dist/parser/pdf-filter.d.ts.map +1 -1
  98. package/dist/parser/pdf-filter.js +110 -144
  99. package/dist/parser/pdf-filter.js.map +1 -1
  100. package/dist/parser/pdf-headings.d.ts +6 -0
  101. package/dist/parser/pdf-headings.d.ts.map +1 -0
  102. package/dist/parser/pdf-headings.js +166 -0
  103. package/dist/parser/pdf-headings.js.map +1 -0
  104. package/dist/parser/text-source-map.d.ts +3 -0
  105. package/dist/parser/text-source-map.d.ts.map +1 -0
  106. package/dist/parser/text-source-map.js +33 -0
  107. package/dist/parser/text-source-map.js.map +1 -0
  108. package/dist/pdf-visual/captioner.d.ts.map +1 -1
  109. package/dist/pdf-visual/captioner.js +7 -4
  110. package/dist/pdf-visual/captioner.js.map +1 -1
  111. package/dist/pdf-visual/detector.js +3 -3
  112. package/dist/pdf-visual/detector.js.map +1 -1
  113. package/dist/rerank/command.d.ts +10 -7
  114. package/dist/rerank/command.d.ts.map +1 -1
  115. package/dist/rerank/command.js +51 -10
  116. package/dist/rerank/command.js.map +1 -1
  117. package/dist/rerank/index.d.ts +3 -3
  118. package/dist/rerank/index.d.ts.map +1 -1
  119. package/dist/rerank/index.js +3 -3
  120. package/dist/rerank/index.js.map +1 -1
  121. package/dist/server/index.d.ts +8 -1
  122. package/dist/server/index.d.ts.map +1 -1
  123. package/dist/server/index.js +129 -81
  124. package/dist/server/index.js.map +1 -1
  125. package/dist/server/list-scanner.d.ts +2 -1
  126. package/dist/server/list-scanner.d.ts.map +1 -1
  127. package/dist/server/list-scanner.js +2 -2
  128. package/dist/server/list-scanner.js.map +1 -1
  129. package/dist/server/tool-definitions.js +2 -2
  130. package/dist/server/tool-definitions.js.map +1 -1
  131. package/dist/server/types.d.ts +9 -0
  132. package/dist/server/types.d.ts.map +1 -1
  133. package/dist/server-main.d.ts +2 -2
  134. package/dist/server-main.d.ts.map +1 -1
  135. package/dist/server-main.js +22 -20
  136. package/dist/server-main.js.map +1 -1
  137. package/dist/utils/base-dirs.d.ts +9 -10
  138. package/dist/utils/base-dirs.d.ts.map +1 -1
  139. package/dist/utils/base-dirs.js +28 -30
  140. package/dist/utils/base-dirs.js.map +1 -1
  141. package/dist/utils/scan.d.ts +25 -5
  142. package/dist/utils/scan.d.ts.map +1 -1
  143. package/dist/utils/scan.js +40 -10
  144. package/dist/utils/scan.js.map +1 -1
  145. package/dist/utils/source-context.d.ts +29 -0
  146. package/dist/utils/source-context.d.ts.map +1 -0
  147. package/dist/utils/source-context.js +86 -0
  148. package/dist/utils/source-context.js.map +1 -0
  149. package/dist/utils/sync-path-key.d.ts +1 -1
  150. package/dist/utils/sync-path-key.d.ts.map +1 -1
  151. package/dist/utils/sync-path-key.js +1 -1
  152. package/dist/utils/sync-path-key.js.map +1 -1
  153. package/dist/vectordb/index.d.ts +4 -2
  154. package/dist/vectordb/index.d.ts.map +1 -1
  155. package/dist/vectordb/index.js +33 -8
  156. package/dist/vectordb/index.js.map +1 -1
  157. package/dist/vectordb/relocate.d.ts +18 -0
  158. package/dist/vectordb/relocate.d.ts.map +1 -0
  159. package/dist/vectordb/relocate.js +179 -0
  160. package/dist/vectordb/relocate.js.map +1 -0
  161. package/dist/vectordb/types.d.ts +10 -23
  162. package/dist/vectordb/types.d.ts.map +1 -1
  163. package/dist/vectordb/types.js +14 -23
  164. package/dist/vectordb/types.js.map +1 -1
  165. package/package.json +14 -14
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-extract.d.ts","sourceRoot":"","sources":["../../src/parser/pdf-extract.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,IAAI,aAAa,EAAqB,MAAM,OAAO,CAAA;AAEzE,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAG1B,MAAM,iBAAiB,CAAA;AAExB,UAAU,SAAS;IACjB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,kEAAkE;AAClE,UAAU,SAAS;IACjB,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,+EAA+E;QAC/E,IAAI,CAAC,EAAE,SAAS,CAAA;QAChB,KAAK,CAAC,EAAE,KAAK,CAAC;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,CAAC,EAAE,MAAM,CAAA;YACT,CAAC,EAAE,MAAM,CAAA;YACT,IAAI,CAAC,EAAE,SAAS,CAAA;YAChB,IAAI,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAC,MAAM,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SACvD,CAAC,CAAA;KACH,CAAC,CAAA;CACH;AAED;;;GAGG;AACH,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,oBAAoB,EAAE,CAAA;IACrC,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,4CAA4C;AAC5C,UAAU,YAAY;IACpB,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;CAC9D;AAwFD,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,iBAAiB,EAC3B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC,CAgCvB"}
1
+ {"version":3,"file":"pdf-extract.d.ts","sourceRoot":"","sources":["../../src/parser/pdf-extract.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,IAAI,aAAa,EAAqB,MAAM,OAAO,CAAA;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAG1B,MAAM,iBAAiB,CAAA;AAGxB,UAAU,SAAS;IACjB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,kEAAkE;AAClE,UAAU,SAAS;IACjB,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,+EAA+E;QAC/E,IAAI,CAAC,EAAE,SAAS,CAAA;QAChB,KAAK,CAAC,EAAE,KAAK,CAAC;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,CAAC,EAAE,MAAM,CAAA;YACT,CAAC,EAAE,MAAM,CAAA;YACT,IAAI,CAAC,EAAE,SAAS,CAAA;YAChB,IAAI,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAC,MAAM,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SACvD,CAAC,CAAA;KACH,CAAC,CAAA;CACH;AAED;;;GAGG;AACH,UAAU,aAAa;IACrB,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,oBAAoB,EAAE,CAAA;IACrC,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,4CAA4C;AAC5C,UAAU,YAAY;IACpB,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;CAC9D;AAwFD,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,iBAAiB,EAC3B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC,CAkCvB"}
@@ -8,6 +8,7 @@
8
8
  // emits `block.type === 'image'` entries for the downstream
9
9
  // visual-candidate detector.
10
10
  import { filterPageBoundaryLayouts, } from './pdf-filter.js';
11
+ import { pdfHeadings } from './pdf-headings.js';
11
12
  /**
12
13
  * Per-page extraction shared by `parsePdf` and `parsePdfPages`, which differ
13
14
  * only in `stextOptions`: `parsePdfPages` adds `preserve-images` so mupdf
@@ -102,9 +103,11 @@ export async function extractPdfPages(doc, embedder, stextOptions) {
102
103
  }
103
104
  // Apply sentence-level header/footer filtering while retaining each survivor's layout data.
104
105
  const filteredPages = await filterPageBoundaryLayouts(pageDataList, embedder);
106
+ const headings = pdfHeadings(doc, pageDataList, filteredPages);
105
107
  const page1FontHint = largestFontTitleHint(pageDataList[0]?.items ?? []);
106
108
  const pages = pageDataList.map((p, idx) => ({
107
109
  pageNum: p.pageNum,
110
+ headings: headings[idx] ?? [],
108
111
  text: filteredPages[idx]?.text ?? '',
109
112
  textFragments: filteredPages[idx]?.textFragments ?? [],
110
113
  stextJson: stextJsonList[idx] ?? { blocks: [] },
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-extract.js","sourceRoot":"","sources":["../../src/parser/pdf-extract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdf-extract.js","sourceRoot":"","sources":["../../src/parser/pdf-extract.ts"],"names":[],"mappings":"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"}
@@ -37,8 +37,6 @@ export interface FilteredPageLayout {
37
37
  text: string;
38
38
  textFragments: FilteredTextFragment[];
39
39
  }
40
- /** Join filtered pages into one text. */
41
- export declare function joinFilteredPages(pages: PageData[]): string;
42
40
  /**
43
41
  * Configuration for sentence-level pattern detection
44
42
  */
@@ -79,13 +77,8 @@ interface SentencePatternResult {
79
77
  export declare function detectSentencePatterns(pages: PageData[], embedder: EmbedderInterface, config?: Partial<SentencePatternConfig>): Promise<SentencePatternResult>;
80
78
  /**
81
79
  * Main entry point for sentence-level header/footer filtering: removes
82
- * repeating boundary sentences and returns one filtered text per page.
83
- *
84
- * Use this rather than {@link joinFilteredPages} when an embedder is available.
85
- */
86
- export declare function filterPageBoundarySentences(pages: PageData[], embedder: EmbedderInterface, config?: Partial<SentencePatternConfig>): Promise<string[]>;
87
- /**
88
- * Filter page boundaries while retaining native provenance for every survivor.
80
+ * repeating boundary sentences while retaining native provenance for every
81
+ * survivor.
89
82
  */
90
83
  export declare function filterPageBoundaryLayouts(pages: PageData[], embedder: EmbedderInterface, config?: Partial<SentencePatternConfig>): Promise<FilteredPageLayout[]>;
91
84
  //# sourceMappingURL=pdf-filter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-filter.d.ts","sourceRoot":"","sources":["../../src/parser/pdf-filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdf-filter.d.ts","sourceRoot":"","sources":["../../src/parser/pdf-filter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAIvE,YAAY,EAAE,iBAAiB,EAAE,CAAA;AAMjC;;GAEG;AACH,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,oBAAoB,EAAE,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,oBAAoB,EAAE,CAAA;CACtC;AA8TD;;GAEG;AACH,UAAU,qBAAqB;IAC7B,iEAAiE;IACjE,mBAAmB,EAAE,MAAM,CAAA;IAC3B,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAA;IAChB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAA;IACnB,wFAAwF;IACxF,UAAU,CAAC,EAAE,mBAAmB,CAAA;IAChC,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAcD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC9B,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC/B;AAsED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,UAAU,GAAG,aAAa,CAAC,CAAM,GAC5E,mBAAmB,CA2BrB;AAED;;GAEG;AACH,UAAU,qBAAqB;IAC7B,qEAAqE;IACrE,mBAAmB,EAAE,OAAO,CAAA;IAC5B,oEAAoE;IACpE,kBAAkB,EAAE,OAAO,CAAA;IAC3B,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,CAAA;IACxB,0CAA0C;IAC1C,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAyDD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,QAAQ,EAAE,EACjB,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC1C,OAAO,CAAC,qBAAqB,CAAC,CAmFhC;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,QAAQ,EAAE,EACjB,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC1C,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAiE/B"}
@@ -1,26 +1,38 @@
1
1
  // PDF Header/Footer Filter
2
2
  // - Detects and removes repeating patterns across pages
3
3
  // - Semantic similarity-based header/footer detection (sentence-level)
4
- import { splitIntoSentences } from '../chunker/sentence-splitter.js';
4
+ import { splitIntoSentenceUnits } from '../chunker/sentence-splitter.js';
5
+ function beginsNewNativeBlock(previousItem, item) {
6
+ if (previousItem.blockOrdinal !== undefined && item.blockOrdinal !== undefined) {
7
+ return previousItem.blockOrdinal !== item.blockOrdinal;
8
+ }
9
+ return (previousItem.blockOrdinal !== undefined ||
10
+ item.blockOrdinal !== undefined ||
11
+ previousItem.hasEOL);
12
+ }
13
+ /**
14
+ * Join page items into text, preserving the native item stream. `hasEOL`
15
+ * separates fragments on one native line from the next; geometry stays
16
+ * placement metadata and is never a global reading-order comparator.
17
+ */
5
18
  function buildPageLayout(pageNum, items) {
6
19
  let rawText = '';
7
20
  let previousItem;
8
21
  const rawFragments = [];
9
22
  const fragmentCounts = new Map();
10
- const orderedItems = [...items].sort((left, right) => Math.round(right.y) - Math.round(left.y) || left.x - right.x);
11
- for (let itemIndex = 0; itemIndex < orderedItems.length; itemIndex++) {
12
- const item = orderedItems[itemIndex];
23
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
24
+ const item = items[itemIndex];
13
25
  if (!item || item.text.trim().length === 0) {
14
26
  continue;
15
27
  }
16
28
  if (previousItem) {
17
- rawText += Math.round(previousItem.y) === Math.round(item.y) ? ' ' : '\n';
29
+ rawText += beginsNewNativeBlock(previousItem, item) ? '\n' : ' ';
18
30
  }
19
31
  const rawStart = rawText.length;
20
32
  rawText += item.text;
21
33
  const rawEnd = rawText.length;
22
- const blockOrdinal = item.blockOrdinal ?? 0;
23
- const lineOrdinal = item.lineOrdinal ?? itemIndex;
34
+ const blockOrdinal = item.blockOrdinal ?? itemIndex;
35
+ const lineOrdinal = item.lineOrdinal ?? 0;
24
36
  const lineKey = `${blockOrdinal}:${lineOrdinal}`;
25
37
  const fragmentOrdinal = fragmentCounts.get(lineKey) ?? 0;
26
38
  fragmentCounts.set(lineKey, fragmentOrdinal + 1);
@@ -67,136 +79,88 @@ function trimToPageText(rawText, rawFragments) {
67
79
  }
68
80
  return { text, textFragments };
69
81
  }
70
- function buildSentenceLayout(pageNum, sentences, items) {
71
- let text = '';
82
+ /** Remove only selected source ranges and rebase the surviving fragments. */
83
+ function removeSourceSpans(layout, spans) {
84
+ const kept = [];
85
+ const orderedSpans = spans
86
+ .map((span) => ({
87
+ start: Math.max(0, Math.min(layout.text.length, span.sourceStart)),
88
+ end: Math.max(0, Math.min(layout.text.length, span.sourceEnd)),
89
+ }))
90
+ .filter((span) => span.start < span.end)
91
+ .sort((left, right) => left.start - right.start);
92
+ let sourceCursor = 0;
93
+ let outputText = '';
94
+ const keepRange = (sourceStart, sourceEnd) => {
95
+ if (sourceStart >= sourceEnd) {
96
+ return;
97
+ }
98
+ kept.push({ sourceStart, sourceEnd, outputStart: outputText.length });
99
+ outputText += layout.text.slice(sourceStart, sourceEnd);
100
+ };
101
+ for (const span of orderedSpans) {
102
+ const start = Math.max(sourceCursor, span.start);
103
+ if (start > sourceCursor) {
104
+ keepRange(sourceCursor, start);
105
+ }
106
+ sourceCursor = Math.max(sourceCursor, span.end);
107
+ }
108
+ if (sourceCursor < layout.text.length) {
109
+ keepRange(sourceCursor, layout.text.length);
110
+ }
111
+ const leadingWhitespace = outputText.length - outputText.trimStart().length;
112
+ const trailingBoundary = outputText.trimEnd().length;
113
+ const text = outputText.slice(leadingWhitespace, trailingBoundary);
72
114
  const textFragments = [];
73
- for (const sentence of sentences) {
74
- if (text) {
75
- text += ' ';
115
+ for (const fragment of layout.textFragments) {
116
+ for (const segment of kept) {
117
+ const sourceStart = Math.max(fragment.pageTextStart, segment.sourceStart);
118
+ const sourceEnd = Math.min(fragment.pageTextEnd, segment.sourceEnd);
119
+ if (sourceStart >= sourceEnd) {
120
+ continue;
121
+ }
122
+ const outputStart = segment.outputStart + sourceStart - segment.sourceStart;
123
+ const outputEnd = segment.outputStart + sourceEnd - segment.sourceStart;
124
+ const clippedStart = Math.max(outputStart, leadingWhitespace);
125
+ const clippedEnd = Math.min(outputEnd, trailingBoundary);
126
+ if (clippedStart >= clippedEnd) {
127
+ continue;
128
+ }
129
+ const pageTextStart = clippedStart - leadingWhitespace;
130
+ const pageTextEnd = clippedEnd - leadingWhitespace;
131
+ textFragments.push({
132
+ ...fragment,
133
+ text: text.slice(pageTextStart, pageTextEnd),
134
+ pageTextStart,
135
+ pageTextEnd,
136
+ });
76
137
  }
77
- const start = text.length;
78
- text += sentence.text;
79
- const matchingItems = items.filter((item) => Math.round(item.y) === Math.round(sentence.y));
80
- const first = matchingItems[0];
81
- const boxes = matchingItems.map((item) => item.bbox ?? [item.x, item.y, item.x, item.y]);
82
- const bbox = boxes.length
83
- ? [
84
- Math.min(...boxes.map((box) => box[0])),
85
- Math.min(...boxes.map((box) => box[1])),
86
- Math.max(...boxes.map((box) => box[2])),
87
- Math.max(...boxes.map((box) => box[3])),
88
- ]
89
- : [0, 0, 0, 0];
90
- textFragments.push({
91
- pageNum,
92
- blockOrdinal: first?.blockOrdinal ?? 0,
93
- lineOrdinal: first?.lineOrdinal ?? textFragments.length,
94
- fragmentOrdinal: 0,
95
- bbox,
96
- text: sentence.text,
97
- pageTextStart: start,
98
- pageTextEnd: text.length,
99
- });
100
138
  }
101
139
  return { text, textFragments };
102
140
  }
103
- function joinPageItems(items) {
104
- return buildPageLayout(0, items).text;
105
- }
106
- /** Join filtered pages into one text. */
107
- export function joinFilteredPages(pages) {
108
- return pages
109
- .map((page) => joinPageItems(page.items))
110
- .filter((text) => text.length > 0)
111
- .join('\n\n');
112
- }
113
141
  /**
114
- * Split page items into sentences, each mapped to the Y of its first item, and
115
- * merged when they share a Y.
142
+ * Split the ordered page text into sentence units while retaining exact source
143
+ * spans. Y is used only as the boundary detector's geometric hint.
116
144
  */
117
- function splitItemsIntoSentencesWithY(items) {
145
+ function splitItemsIntoSentencesWithY(pageNum, items) {
118
146
  if (items.length === 0) {
119
147
  return [];
120
148
  }
121
- // Sort items by Y descending, then X ascending (reading order)
122
- const sortedItems = [...items].sort((a, b) => {
123
- const yDiff = b.y - a.y;
124
- if (Math.abs(yDiff) > 1) {
125
- return yDiff;
126
- }
127
- return a.x - b.x;
149
+ const layout = buildPageLayout(pageNum, items);
150
+ return splitIntoSentenceUnits(layout.text).map((unit) => {
151
+ const firstFragment = layout.textFragments.find((fragment) => fragment.pageTextStart < unit.sourceEnd && fragment.pageTextEnd > unit.sourceStart);
152
+ const firstItemIndex = firstFragment
153
+ ? items.findIndex((item, index) => (item.blockOrdinal ?? index) === firstFragment.blockOrdinal &&
154
+ (item.lineOrdinal ?? 0) === firstFragment.lineOrdinal &&
155
+ item.text.includes(firstFragment.text))
156
+ : -1;
157
+ return {
158
+ text: unit.text,
159
+ y: firstItemIndex >= 0 ? Math.round(items[firstItemIndex]?.y ?? 0) : 0,
160
+ sourceStart: unit.sourceStart,
161
+ sourceEnd: unit.sourceEnd,
162
+ };
128
163
  });
129
- // Build text and track character positions to item mapping
130
- const charToItem = [];
131
- let fullText = '';
132
- let prevY = null;
133
- for (const item of sortedItems) {
134
- // Insert newline when Y coordinate changes (different line)
135
- // This matches joinPageItems behavior: same Y = space, different Y = newline
136
- if (prevY !== null && Math.abs(prevY - item.y) > 1) {
137
- fullText = `${fullText.trimEnd()}\n`;
138
- }
139
- charToItem.push({ start: fullText.length, item });
140
- fullText += `${item.text} `;
141
- prevY = item.y;
142
- }
143
- // Split into sentences
144
- const sentences = splitIntoSentences(fullText);
145
- // Map each sentence to Y coordinate of its first character's item
146
- const sentencesWithY = [];
147
- let searchStart = 0;
148
- for (const sentence of sentences) {
149
- // Find where this sentence starts in fullText
150
- const sentenceStart = fullText.indexOf(sentence.trim(), searchStart);
151
- // Benign skip (not error masking): this builds the Y-coordinate map used
152
- // only for header/footer boundary detection. A miss means this sentence
153
- // is omitted from boundary detection — it does NOT drop the sentence from
154
- // the document body (that text comes from `fullText`). Misses are expected
155
- // when `splitIntoSentences` normalizes whitespace differently than the
156
- // reconstructed `fullText`, so logging here would be noise, not signal.
157
- if (sentenceStart === -1) {
158
- continue;
159
- }
160
- // Find the item that contains this position
161
- let firstItemY = sortedItems[0]?.y ?? 0;
162
- for (let i = charToItem.length - 1; i >= 0; i--) {
163
- const entry = charToItem[i];
164
- if (entry && entry.start <= sentenceStart) {
165
- firstItemY = Math.round(entry.item.y);
166
- break;
167
- }
168
- }
169
- sentencesWithY.push({ text: sentence, y: firstItemY });
170
- searchStart = sentenceStart + sentence.length;
171
- }
172
- // Merge sentences with same Y coordinate
173
- return mergeSentencesByY(sentencesWithY);
174
- }
175
- /** Sentences sharing a Y coordinate are one sentence. */
176
- function mergeSentencesByY(sentences) {
177
- if (sentences.length === 0) {
178
- return [];
179
- }
180
- const merged = [];
181
- let current = null;
182
- for (const sentence of sentences) {
183
- if (current === null) {
184
- current = { ...sentence };
185
- }
186
- else if (current.y === sentence.y) {
187
- // Same Y: merge text
188
- current.text += ` ${sentence.text}`;
189
- }
190
- else {
191
- // Different Y: push current and start new
192
- merged.push(current);
193
- current = { ...sentence };
194
- }
195
- }
196
- if (current !== null) {
197
- merged.push(current);
198
- }
199
- return merged;
200
164
  }
201
165
  // ============================================
202
166
  // Sentence-Level Header/Footer Detection
@@ -411,8 +375,8 @@ export async function detectSentencePatterns(pages, embedder, config = {}) {
411
375
  const firstSamplePage = samplePages[0];
412
376
  const startIndex = firstSamplePage === undefined ? 0 : pages.indexOf(firstSamplePage);
413
377
  const endIndex = startIndex + samplePages.length;
414
- // 2. Split each page into sentences with Y coordinate (merged by Y)
415
- const pageSentences = samplePages.map((page) => splitItemsIntoSentencesWithY(page.items));
378
+ // 2. Split each page in its ordered source layout and retain first-item Y.
379
+ const pageSentences = samplePages.map((page) => splitItemsIntoSentencesWithY(page.pageNum, page.items));
416
380
  // 3. Collect first and last sentences from sampled pages
417
381
  const firstSentences = [];
418
382
  const lastSentences = [];
@@ -469,21 +433,15 @@ export async function detectSentencePatterns(pages, embedder, config = {}) {
469
433
  }
470
434
  /**
471
435
  * Main entry point for sentence-level header/footer filtering: removes
472
- * repeating boundary sentences and returns one filtered text per page.
473
- *
474
- * Use this rather than {@link joinFilteredPages} when an embedder is available.
475
- */
476
- export async function filterPageBoundarySentences(pages, embedder, config = {}) {
477
- return (await filterPageBoundaryLayouts(pages, embedder, config)).map((page) => page.text);
478
- }
479
- /**
480
- * Filter page boundaries while retaining native provenance for every survivor.
436
+ * repeating boundary sentences while retaining native provenance for every
437
+ * survivor.
481
438
  */
482
439
  export async function filterPageBoundaryLayouts(pages, embedder, config = {}) {
483
440
  const cfg = { ...DEFAULT_SENTENCE_PATTERN_CONFIG, ...config };
441
+ const layouts = pages.map((page) => buildPageLayout(page.pageNum, page.items));
484
442
  // Need minimum pages to detect patterns
485
443
  if (pages.length < cfg.minPages) {
486
- return pages.map((page) => buildPageLayout(page.pageNum, page.items));
444
+ return layouts;
487
445
  }
488
446
  // Detect block attribute candidates for boosted threshold
489
447
  const blockHints = detectBlockAttributeCandidates(pages, cfg);
@@ -491,10 +449,10 @@ export async function filterPageBoundaryLayouts(pages, embedder, config = {}) {
491
449
  const patterns = await detectSentencePatterns(pages, embedder, { ...cfg, blockHints });
492
450
  // If no patterns detected, return normally joined text per page
493
451
  if (!patterns.removeFirstSentence && !patterns.removeLastSentence) {
494
- return pages.map((page) => buildPageLayout(page.pageNum, page.items));
452
+ return layouts;
495
453
  }
496
- // Split each page into sentences with Y coordinate (merged by Y)
497
- const pageSentences = pages.map((page) => splitItemsIntoSentencesWithY(page.items));
454
+ // Keep sentence source spans so a detected boundary removes only its text.
455
+ const pageSentences = pages.map((page) => splitItemsIntoSentencesWithY(page.pageNum, page.items));
498
456
  const sampledSentences = sampleCenterPages(pages, cfg.samplePages).map((page) => pageSentences[pages.indexOf(page)] ?? []);
499
457
  const matchesRepeatedBoundary = (sentence, edge) => {
500
458
  if (!sentence) {
@@ -508,15 +466,23 @@ export async function filterPageBoundaryLayouts(pages, embedder, config = {}) {
508
466
  return candidate !== undefined && key(candidate) === target;
509
467
  }).length >= 2);
510
468
  };
511
- return pages.map((page, pageIndex) => {
469
+ return layouts.map((layout, pageIndex) => {
512
470
  let cleaned = [...(pageSentences[pageIndex] ?? [])];
471
+ const removed = [];
513
472
  if (patterns.removeFirstSentence && matchesRepeatedBoundary(cleaned[0], 'first')) {
473
+ if (cleaned[0]) {
474
+ removed.push(cleaned[0]);
475
+ }
514
476
  cleaned = cleaned.slice(1);
515
477
  }
516
- if (patterns.removeLastSentence && matchesRepeatedBoundary(cleaned.at(-1), 'last')) {
478
+ const last = cleaned.at(-1);
479
+ if (patterns.removeLastSentence && matchesRepeatedBoundary(last, 'last')) {
480
+ if (last) {
481
+ removed.push(last);
482
+ }
517
483
  cleaned = cleaned.slice(0, -1);
518
484
  }
519
- return buildSentenceLayout(page.pageNum, cleaned, page.items);
485
+ return removeSourceSpans(layout, removed);
520
486
  });
521
487
  }
522
488
  //# sourceMappingURL=pdf-filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-filter.js","sourceRoot":"","sources":["../../src/parser/pdf-filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdf-filter.js","sourceRoot":"","sources":["../../src/parser/pdf-filter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Document } from 'mupdf';
2
+ import type { HeadingAnchor } from '../utils/source-context.js';
3
+ import type { FilteredPageLayout, PageData } from './pdf-filter.js';
4
+ /** Best-effort structure from data already extracted by MuPDF; no OCR or extra model calls. */
5
+ export declare function pdfHeadings(doc: Document, pages: readonly PageData[], layouts: readonly FilteredPageLayout[]): HeadingAnchor[][];
6
+ //# sourceMappingURL=pdf-headings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-headings.d.ts","sourceRoot":"","sources":["../../src/parser/pdf-headings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AA+KnE,+FAA+F;AAC/F,wBAAgB,WAAW,CACzB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,OAAO,EAAE,SAAS,kBAAkB,EAAE,GACrC,aAAa,EAAE,EAAE,CA0BnB"}