@ssmeo/mcp-local-rag 0.18.14 → 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 (158) 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/file-collection.d.ts +2 -1
  19. package/dist/cli/file-collection.d.ts.map +1 -1
  20. package/dist/cli/file-collection.js +2 -2
  21. package/dist/cli/file-collection.js.map +1 -1
  22. package/dist/cli/ingest.d.ts +1 -0
  23. package/dist/cli/ingest.d.ts.map +1 -1
  24. package/dist/cli/ingest.js +45 -25
  25. package/dist/cli/ingest.js.map +1 -1
  26. package/dist/cli/list.d.ts.map +1 -1
  27. package/dist/cli/list.js +9 -13
  28. package/dist/cli/list.js.map +1 -1
  29. package/dist/cli/options.d.ts +8 -0
  30. package/dist/cli/options.d.ts.map +1 -1
  31. package/dist/cli/options.js +21 -0
  32. package/dist/cli/options.js.map +1 -1
  33. package/dist/cli/query.d.ts.map +1 -1
  34. package/dist/cli/query.js +2 -1
  35. package/dist/cli/query.js.map +1 -1
  36. package/dist/cli/read-neighbors.d.ts.map +1 -1
  37. package/dist/cli/read-neighbors.js +1 -0
  38. package/dist/cli/read-neighbors.js.map +1 -1
  39. package/dist/cli/relocate.d.ts +3 -0
  40. package/dist/cli/relocate.d.ts.map +1 -0
  41. package/dist/cli/relocate.js +135 -0
  42. package/dist/cli/relocate.js.map +1 -0
  43. package/dist/cli/sync.d.ts.map +1 -1
  44. package/dist/cli/sync.js +17 -8
  45. package/dist/cli/sync.js.map +1 -1
  46. package/dist/cli-main.d.ts +1 -1
  47. package/dist/cli-main.d.ts.map +1 -1
  48. package/dist/cli-main.js +5 -0
  49. package/dist/cli-main.js.map +1 -1
  50. package/dist/embedder/embedding-snapshot.d.ts +52 -0
  51. package/dist/embedder/embedding-snapshot.d.ts.map +1 -0
  52. package/dist/embedder/embedding-snapshot.js +413 -0
  53. package/dist/embedder/embedding-snapshot.js.map +1 -0
  54. package/dist/embedder/index.d.ts +36 -5
  55. package/dist/embedder/index.d.ts.map +1 -1
  56. package/dist/embedder/index.js +346 -23
  57. package/dist/embedder/index.js.map +1 -1
  58. package/dist/embedder/remote.d.ts +16 -2
  59. package/dist/embedder/remote.d.ts.map +1 -1
  60. package/dist/embedder/remote.js +48 -11
  61. package/dist/embedder/remote.js.map +1 -1
  62. package/dist/embedder/sentence-transformers-config.d.ts +24 -0
  63. package/dist/embedder/sentence-transformers-config.d.ts.map +1 -0
  64. package/dist/embedder/sentence-transformers-config.js +93 -0
  65. package/dist/embedder/sentence-transformers-config.js.map +1 -0
  66. package/dist/features/sync.js +1 -1
  67. package/dist/features/sync.js.map +1 -1
  68. package/dist/ingest/compute.d.ts +15 -7
  69. package/dist/ingest/compute.d.ts.map +1 -1
  70. package/dist/ingest/compute.js +74 -14
  71. package/dist/ingest/compute.js.map +1 -1
  72. package/dist/ingest/file.d.ts +3 -3
  73. package/dist/ingest/file.d.ts.map +1 -1
  74. package/dist/ingest/file.js +0 -5
  75. package/dist/ingest/file.js.map +1 -1
  76. package/dist/ingest/visual.d.ts +6 -2
  77. package/dist/ingest/visual.d.ts.map +1 -1
  78. package/dist/ingest/visual.js +20 -4
  79. package/dist/ingest/visual.js.map +1 -1
  80. package/dist/parser/docx-parser.d.ts +2 -0
  81. package/dist/parser/docx-parser.d.ts.map +1 -1
  82. package/dist/parser/docx-parser.js +12 -3
  83. package/dist/parser/docx-parser.js.map +1 -1
  84. package/dist/parser/index.d.ts +11 -1
  85. package/dist/parser/index.d.ts.map +1 -1
  86. package/dist/parser/index.js +27 -11
  87. package/dist/parser/index.js.map +1 -1
  88. package/dist/parser/pdf-extract.d.ts +2 -0
  89. package/dist/parser/pdf-extract.d.ts.map +1 -1
  90. package/dist/parser/pdf-extract.js +3 -0
  91. package/dist/parser/pdf-extract.js.map +1 -1
  92. package/dist/parser/pdf-filter.d.ts +2 -9
  93. package/dist/parser/pdf-filter.d.ts.map +1 -1
  94. package/dist/parser/pdf-filter.js +110 -144
  95. package/dist/parser/pdf-filter.js.map +1 -1
  96. package/dist/parser/pdf-headings.d.ts +6 -0
  97. package/dist/parser/pdf-headings.d.ts.map +1 -0
  98. package/dist/parser/pdf-headings.js +166 -0
  99. package/dist/parser/pdf-headings.js.map +1 -0
  100. package/dist/parser/text-source-map.d.ts +3 -0
  101. package/dist/parser/text-source-map.d.ts.map +1 -0
  102. package/dist/parser/text-source-map.js +33 -0
  103. package/dist/parser/text-source-map.js.map +1 -0
  104. package/dist/pdf-visual/detector.js +3 -3
  105. package/dist/pdf-visual/detector.js.map +1 -1
  106. package/dist/rerank/command.d.ts +10 -7
  107. package/dist/rerank/command.d.ts.map +1 -1
  108. package/dist/rerank/command.js +51 -10
  109. package/dist/rerank/command.js.map +1 -1
  110. package/dist/rerank/index.d.ts +3 -3
  111. package/dist/rerank/index.d.ts.map +1 -1
  112. package/dist/rerank/index.js +3 -3
  113. package/dist/rerank/index.js.map +1 -1
  114. package/dist/server/index.d.ts +4 -1
  115. package/dist/server/index.d.ts.map +1 -1
  116. package/dist/server/index.js +114 -79
  117. package/dist/server/index.js.map +1 -1
  118. package/dist/server/list-scanner.d.ts +2 -1
  119. package/dist/server/list-scanner.d.ts.map +1 -1
  120. package/dist/server/list-scanner.js +2 -2
  121. package/dist/server/list-scanner.js.map +1 -1
  122. package/dist/server/tool-definitions.js +2 -2
  123. package/dist/server/tool-definitions.js.map +1 -1
  124. package/dist/server/types.d.ts +9 -0
  125. package/dist/server/types.d.ts.map +1 -1
  126. package/dist/server-main.d.ts +2 -2
  127. package/dist/server-main.d.ts.map +1 -1
  128. package/dist/server-main.js +22 -20
  129. package/dist/server-main.js.map +1 -1
  130. package/dist/utils/base-dirs.d.ts +9 -10
  131. package/dist/utils/base-dirs.d.ts.map +1 -1
  132. package/dist/utils/base-dirs.js +28 -30
  133. package/dist/utils/base-dirs.js.map +1 -1
  134. package/dist/utils/scan.d.ts +25 -5
  135. package/dist/utils/scan.d.ts.map +1 -1
  136. package/dist/utils/scan.js +40 -10
  137. package/dist/utils/scan.js.map +1 -1
  138. package/dist/utils/source-context.d.ts +29 -0
  139. package/dist/utils/source-context.d.ts.map +1 -0
  140. package/dist/utils/source-context.js +86 -0
  141. package/dist/utils/source-context.js.map +1 -0
  142. package/dist/utils/sync-path-key.d.ts +1 -1
  143. package/dist/utils/sync-path-key.d.ts.map +1 -1
  144. package/dist/utils/sync-path-key.js +1 -1
  145. package/dist/utils/sync-path-key.js.map +1 -1
  146. package/dist/vectordb/index.d.ts +4 -2
  147. package/dist/vectordb/index.d.ts.map +1 -1
  148. package/dist/vectordb/index.js +30 -7
  149. package/dist/vectordb/index.js.map +1 -1
  150. package/dist/vectordb/relocate.d.ts +18 -0
  151. package/dist/vectordb/relocate.d.ts.map +1 -0
  152. package/dist/vectordb/relocate.js +179 -0
  153. package/dist/vectordb/relocate.js.map +1 -0
  154. package/dist/vectordb/types.d.ts +10 -23
  155. package/dist/vectordb/types.d.ts.map +1 -1
  156. package/dist/vectordb/types.js +14 -23
  157. package/dist/vectordb/types.js.map +1 -1
  158. package/package.json +14 -14
@@ -0,0 +1,166 @@
1
+ const normalize = (text) => text.normalize('NFKC').toLowerCase().replace(/\s+/g, '');
2
+ /** Match headings after the existing filter has joined lines or removed page furniture. */
3
+ function searchableText(text) {
4
+ let value = '';
5
+ const offsets = [];
6
+ for (let i = 0; i < text.length; i++) {
7
+ const normalized = normalize(text[i] ?? '');
8
+ value += normalized;
9
+ offsets.push(...Array(normalized.length).fill(i));
10
+ }
11
+ return { value, offsets };
12
+ }
13
+ function locate(text, title) {
14
+ const needle = normalize(title);
15
+ if (!needle) {
16
+ return undefined;
17
+ }
18
+ const index = text.value.indexOf(needle);
19
+ // Repeated text cannot identify the source line reliably; omit it.
20
+ return index < 0 || text.value.indexOf(needle, index + 1) >= 0 ? undefined : text.offsets[index];
21
+ }
22
+ /** Combine fragments from one native line without merging adjacent columns. */
23
+ function pageLines(page) {
24
+ const lines = [];
25
+ for (const item of page.items) {
26
+ const last = lines.at(-1);
27
+ const hasNativeLine = last !== undefined &&
28
+ last.blockOrdinal !== undefined &&
29
+ last.lineOrdinal !== undefined &&
30
+ item.blockOrdinal !== undefined &&
31
+ item.lineOrdinal !== undefined;
32
+ const sameNativeLine = last !== undefined &&
33
+ hasNativeLine &&
34
+ last.blockOrdinal === item.blockOrdinal &&
35
+ last.lineOrdinal === item.lineOrdinal;
36
+ const adjacentUnnumberedFragment = last !== undefined &&
37
+ !hasNativeLine &&
38
+ Math.abs(last.y - item.y) < 1 &&
39
+ Math.abs(last.fontSize - item.fontSize) < 0.5 &&
40
+ item.x >= last.x &&
41
+ item.x - last.x <= Math.max(1, item.fontSize * 2.5);
42
+ if (last && (sameNativeLine || adjacentUnnumberedFragment)) {
43
+ last.text += ` ${item.text}`;
44
+ last.origins.push(item);
45
+ }
46
+ else {
47
+ lines.push({ ...item, origins: [item] });
48
+ }
49
+ }
50
+ return lines;
51
+ }
52
+ /** Match the surviving source fragments, not unrelated mentions elsewhere on the page. */
53
+ function locateLine(layout, line) {
54
+ const fragments = layout.textFragments.filter((fragment) => line.origins.some((origin) => origin.blockOrdinal !== undefined &&
55
+ origin.lineOrdinal !== undefined &&
56
+ origin.blockOrdinal === fragment.blockOrdinal &&
57
+ origin.lineOrdinal === fragment.lineOrdinal));
58
+ if (fragments.length) {
59
+ const start = Math.min(...fragments.map((fragment) => fragment.pageTextStart));
60
+ const end = Math.max(...fragments.map((fragment) => fragment.pageTextEnd));
61
+ const source = searchableText(layout.text.slice(start, end));
62
+ return source.value.startsWith(normalize(line.text)) && source.offsets[0] !== undefined
63
+ ? start + source.offsets[0]
64
+ : undefined;
65
+ }
66
+ if (layout.textFragments.length &&
67
+ line.origins.every((origin) => origin.blockOrdinal !== undefined && origin.lineOrdinal !== undefined)) {
68
+ return undefined;
69
+ }
70
+ // Without fragment provenance, accept only a unique complete line.
71
+ let offset = 0;
72
+ const matches = [];
73
+ for (const text of layout.text.split('\n')) {
74
+ if (normalize(text) === normalize(line.text)) {
75
+ matches.push(offset + text.length - text.trimStart().length);
76
+ }
77
+ offset += text.length + 1;
78
+ }
79
+ return matches.length === 1 ? matches[0] : undefined;
80
+ }
81
+ function fontHeading(line, bodySize) {
82
+ const text = line.text.trim().replace(/\s+/g, ' ');
83
+ const numbered = /^(\d+(?:\.\d+)*)(?:[.)]?\s+)\S/.exec(text.normalize('NFKC'));
84
+ const bold = /bold|heavy|black|demi/i.test(`${line.fontName ?? ''} ${line.fontWeight ?? ''}`);
85
+ const stepNumber = /^\d+[.)]\s/.test(text.normalize('NFKC'));
86
+ const size = Math.round(line.fontSize * 2) / 2;
87
+ const box = line.bbox;
88
+ if (box && box[3] - box[1] > line.fontSize * 2 && box[2] - box[0] < line.fontSize * 2) {
89
+ return undefined;
90
+ }
91
+ if (!numbered && text.length > 70) {
92
+ return undefined;
93
+ }
94
+ if (text.length < 3 ||
95
+ text.length > 120 ||
96
+ text.split(/\s+/).length > 16 ||
97
+ /[.!?。;;:]$/.test(text)) {
98
+ return undefined;
99
+ }
100
+ if (/^(?:figure|fig\.|table)\s+\d/i.test(text) || /^\W*\d[\d.]*\W*$/.test(text)) {
101
+ return undefined;
102
+ }
103
+ if (!(size > bodySize * 1.12 || (bold && numbered && !stepNumber))) {
104
+ return undefined;
105
+ }
106
+ const level = numbered ? (numbered[1]?.split('.').length ?? 1) : 1;
107
+ return { text, level };
108
+ }
109
+ function flattenOutline(items, level = 1) {
110
+ return items.flatMap((item) => [{ item, level }, ...flattenOutline(item.down ?? [], level + 1)]);
111
+ }
112
+ /** Use located outline entries alone; fall back to font inference if none can be located. */
113
+ function preferOutline(doc, texts, result, lines) {
114
+ let outline;
115
+ try {
116
+ outline = doc.loadOutline() ?? [];
117
+ }
118
+ catch {
119
+ return result;
120
+ }
121
+ const located = result.map(() => []);
122
+ for (const { item, level } of flattenOutline(outline)) {
123
+ const title = item.title?.trim();
124
+ const page = item.page;
125
+ if (!title || page === undefined || !texts[page]) {
126
+ continue;
127
+ }
128
+ const anchors = lines[page];
129
+ if (!anchors) {
130
+ continue;
131
+ }
132
+ const existing = anchors.filter((anchor) => {
133
+ const withoutNumber = anchor.text.normalize('NFKC').replace(/^\d+(?:\.\d+)*[.)]?\s+/, '');
134
+ return (normalize(anchor.text) === normalize(title) || normalize(withoutNumber) === normalize(title));
135
+ });
136
+ const offset = existing.length === 1 ? existing[0]?.offset : locate(texts[page], title);
137
+ if (offset === undefined) {
138
+ continue;
139
+ }
140
+ located[page]?.push({ offset, level, text: title });
141
+ }
142
+ return located.some((anchors) => anchors.length) ? located : result;
143
+ }
144
+ /** Best-effort structure from data already extracted by MuPDF; no OCR or extra model calls. */
145
+ export function pdfHeadings(doc, pages, layouts) {
146
+ const weights = new Map();
147
+ for (const page of pages) {
148
+ for (const item of page.items) {
149
+ const size = Math.round(item.fontSize * 2) / 2;
150
+ weights.set(size, (weights.get(size) ?? 0) + item.text.trim().length);
151
+ }
152
+ }
153
+ const bodySize = [...weights].sort((a, b) => b[1] - a[1])[0]?.[0] ?? 12;
154
+ const texts = layouts.map((layout) => searchableText(layout.text));
155
+ const lines = pages.map((page, index) => pageLines(page).flatMap((line) => {
156
+ const layout = layouts[index];
157
+ const offset = layout ? locateLine(layout, line) : undefined;
158
+ return offset === undefined ? [] : [{ ...line, offset }];
159
+ }));
160
+ const result = lines.map((page) => page.flatMap((line) => {
161
+ const heading = fontHeading(line, bodySize);
162
+ return heading ? [{ ...heading, offset: line.offset }] : [];
163
+ }));
164
+ return preferOutline(doc, texts, result, lines).map((anchors) => anchors.sort((a, b) => a.offset - b.offset));
165
+ }
166
+ //# sourceMappingURL=pdf-headings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-headings.js","sourceRoot":"","sources":["../../src/parser/pdf-headings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SourceMap } from '../utils/source-context.js';
2
+ export declare function textSourceMap(text: string, markdown: boolean): SourceMap;
3
+ //# sourceMappingURL=text-source-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-source-map.d.ts","sourceRoot":"","sources":["../../src/parser/text-source-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,4BAA4B,CAAA;AA+B1E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,CAQxE"}
@@ -0,0 +1,33 @@
1
+ /** Markdown headings outside fenced code and YAML frontmatter. */
2
+ function markdownHeadings(text) {
3
+ // Replace excluded blocks with spaces to retain exact source offsets.
4
+ const prose = text
5
+ .replace(/^---\r?\n(?:[^\n]*\n)*?(?:---|\.\.\.)[ \t]*(?:\r?\n|$)/, (match) => match.replace(/[^\n]/g, ' '))
6
+ .replace(/^ {0,3}(`{3,}|~{3,})[^\n]*\n[\s\S]*?(?:^ {0,3}\1[~`]*[ \t]*\r?$|(?![\s\S]))/gm, (match) => match.replace(/[^\n]/g, ' '));
7
+ const headings = [];
8
+ const pattern = /^ {0,3}(#{1,6})(?:[\t ]+|$)(.*)$|^([^\n]+)\r?\n {0,3}(=+|-+)[ \t]*\r?$/gm;
9
+ for (const match of prose.matchAll(pattern)) {
10
+ const atx = match[1];
11
+ const title = atx ? (match[2] ?? '').replace(/\s+#+\s*$/, '').trim() : (match[3] ?? '').trim();
12
+ const setextLevel = match[4]?.startsWith('=') ? 1 : 2;
13
+ const blockSyntax = /^(?:>|[-+*]\s|\d+[.)]\s|[-*_]+$)/.test(title);
14
+ if (title && !/^ {4}/.test(match[0]) && (atx || !blockSyntax)) {
15
+ headings.push({
16
+ offset: match.index,
17
+ level: atx ? atx.length : setextLevel,
18
+ text: title,
19
+ });
20
+ }
21
+ }
22
+ return headings;
23
+ }
24
+ export function textSourceMap(text, markdown) {
25
+ const lineStarts = [0];
26
+ for (let i = 0; i < text.length; i++) {
27
+ if (text[i] === '\n') {
28
+ lineStarts.push(i + 1);
29
+ }
30
+ }
31
+ return { headings: markdown ? markdownHeadings(text) : [], lineStarts };
32
+ }
33
+ //# sourceMappingURL=text-source-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-source-map.js","sourceRoot":"","sources":["../../src/parser/text-source-map.ts"],"names":[],"mappings":"AAEA,kEAAkE;AAClE,SAAS,gBAAgB,CAAC,IAAY;IACpC,sEAAsE;IACtE,MAAM,KAAK,GAAG,IAAI;SACf,OAAO,CAAC,wDAAwD,EAAE,CAAC,KAAK,EAAE,EAAE,CAC3E,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAC7B;SACA,OAAO,CACN,+EAA+E,EAC/E,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CACxC,CAAA;IACH,MAAM,QAAQ,GAAoB,EAAE,CAAA;IACpC,MAAM,OAAO,GAAG,0EAA0E,CAAA;IAC1F,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACpB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QAC9F,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,MAAM,WAAW,GAAG,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClE,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAE,KAAK,CAAC,KAAK;gBACnB,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW;gBACrC,IAAI,EAAE,KAAK;aACZ,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,QAAiB;IAC3D,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAA;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAA;AACzE,CAAC"}
@@ -176,9 +176,9 @@ function isWithinGap(left, right, gap) {
176
176
  */
177
177
  function growCluster(seed, rects, remaining, gap) {
178
178
  const indices = [seed];
179
- for (let cursor = 0; cursor < indices.length; cursor += 1) {
180
- const currentIndex = indices[cursor];
181
- const current = currentIndex === undefined ? undefined : rects[currentIndex];
179
+ // The array iterator re-reads the length, so indices pushed below are visited too.
180
+ for (const currentIndex of indices) {
181
+ const current = rects[currentIndex];
182
182
  if (current === undefined) {
183
183
  continue;
184
184
  }
@@ -1 +1 @@
1
- {"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/pdf-visual/detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/pdf-visual/detector.ts"],"names":[],"mappings":"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"}
@@ -2,20 +2,23 @@
2
2
  export interface RerankCommand {
3
3
  /** Program to spawn. Must name a directly executable file, not a shim. */
4
4
  executable: string;
5
- /** Arguments configured by the operator, before the server's own flags. */
5
+ /** Argument templates configured by the operator. */
6
6
  args: string[];
7
7
  }
8
8
  /**
9
- * Splits the configured command on whitespace. Quoting and other shell syntax
10
- * are deliberately not interpreted: the command is spawned without a shell, so
11
- * a quote this parser stripped would not mean what the operator expects.
9
+ * Tokenizes the command with a small, platform-independent quoting grammar.
10
+ * Whitespace separates tokens outside matching single or double quotes; quote
11
+ * characters group text and are removed. Everything else, including
12
+ * backslashes and shell metacharacters, stays literal.
12
13
  *
13
- * Returns undefined when the string carries no token.
14
+ * Returns undefined when the string carries no executable or has an unmatched
15
+ * quote.
14
16
  */
15
17
  export declare function parseRerankCommand(command: string): RerankCommand | undefined;
16
18
  /**
17
- * Appends the server's flags after the configured arguments. Each value is its
18
- * own element, so query text is never read as command syntax.
19
+ * Replaces runtime placeholders independently in each configured argument.
20
+ * `replace` scans only the original template, so placeholder-shaped query text
21
+ * is not interpreted recursively.
19
22
  */
20
23
  export declare function buildRerankArgv(command: RerankCommand, query: string, top: number): string[];
21
24
  //# sourceMappingURL=command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/rerank/command.ts"],"names":[],"mappings":"AAEA,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAA;IAClB,2EAA2E;IAC3E,IAAI,EAAE,MAAM,EAAE,CAAA;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAG7E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5F"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/rerank/command.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAA;IAClB,qDAAqD;IACrD,IAAI,EAAE,MAAM,EAAE,CAAA;CACf;AAeD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CA0C7E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAM5F"}
@@ -1,20 +1,61 @@
1
- // Parsing of the configured rerank command into an argv vector.
1
+ function consumeQuotedCharacter(character, quote, current) {
2
+ if (character === quote) {
3
+ return { current, quote: undefined };
4
+ }
5
+ return { current: current + character, quote };
6
+ }
2
7
  /**
3
- * Splits the configured command on whitespace. Quoting and other shell syntax
4
- * are deliberately not interpreted: the command is spawned without a shell, so
5
- * a quote this parser stripped would not mean what the operator expects.
8
+ * Tokenizes the command with a small, platform-independent quoting grammar.
9
+ * Whitespace separates tokens outside matching single or double quotes; quote
10
+ * characters group text and are removed. Everything else, including
11
+ * backslashes and shell metacharacters, stays literal.
6
12
  *
7
- * Returns undefined when the string carries no token.
13
+ * Returns undefined when the string carries no executable or has an unmatched
14
+ * quote.
8
15
  */
9
16
  export function parseRerankCommand(command) {
10
- const [executable, ...args] = command.split(/\s+/).filter((token) => token.length > 0);
11
- return executable === undefined ? undefined : { executable, args };
17
+ const tokens = [];
18
+ let current = '';
19
+ let tokenStarted = false;
20
+ let quote;
21
+ for (const character of command) {
22
+ if (quote !== undefined) {
23
+ const consumed = consumeQuotedCharacter(character, quote, current);
24
+ current = consumed.current;
25
+ quote = consumed.quote;
26
+ continue;
27
+ }
28
+ if (character === "'" || character === '"') {
29
+ quote = character;
30
+ tokenStarted = true;
31
+ continue;
32
+ }
33
+ if (/\s/u.test(character)) {
34
+ if (tokenStarted) {
35
+ tokens.push(current);
36
+ current = '';
37
+ tokenStarted = false;
38
+ }
39
+ continue;
40
+ }
41
+ current += character;
42
+ tokenStarted = true;
43
+ }
44
+ if (quote !== undefined) {
45
+ return undefined;
46
+ }
47
+ if (tokenStarted) {
48
+ tokens.push(current);
49
+ }
50
+ const [executable, ...args] = tokens;
51
+ return executable === undefined || executable.length === 0 ? undefined : { executable, args };
12
52
  }
13
53
  /**
14
- * Appends the server's flags after the configured arguments. Each value is its
15
- * own element, so query text is never read as command syntax.
54
+ * Replaces runtime placeholders independently in each configured argument.
55
+ * `replace` scans only the original template, so placeholder-shaped query text
56
+ * is not interpreted recursively.
16
57
  */
17
58
  export function buildRerankArgv(command, query, top) {
18
- return [...command.args, '--query', query, '--top', String(top)];
59
+ return command.args.map((argument) => argument.replace(/\{(?:query|top)\}/g, (placeholder) => placeholder === '{query}' ? query : String(top)));
19
60
  }
20
61
  //# sourceMappingURL=command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/rerank/command.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAUhE;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACtF,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;AACpE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,OAAsB,EAAE,KAAa,EAAE,GAAW;IAChF,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AAClE,CAAC"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/rerank/command.ts"],"names":[],"mappings":"AAUA,SAAS,sBAAsB,CAC7B,SAAiB,EACjB,KAAkB,EAClB,OAAe;IAEf,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;IACtC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,CAAA;AAChD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,IAAI,KAA8B,CAAA;IAElC,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;YAClE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;YAC1B,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;YACtB,SAAQ;QACV,CAAC;QAED,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAC3C,KAAK,GAAG,SAAS,CAAA;YACjB,YAAY,GAAG,IAAI,CAAA;YACnB,SAAQ;QACV,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACpB,OAAO,GAAG,EAAE,CAAA;gBACZ,YAAY,GAAG,KAAK,CAAA;YACtB,CAAC;YACD,SAAQ;QACV,CAAC;QAED,OAAO,IAAI,SAAS,CAAA;QACpB,YAAY,GAAG,IAAI,CAAA;IACrB,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAA;IACpC,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;AAC/F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,OAAsB,EAAE,KAAa,EAAE,GAAW;IAChF,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,WAAW,EAAE,EAAE,CACrD,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAChD,CACF,CAAA;AACH,CAAC"}
@@ -4,11 +4,11 @@ export type { RerankResult } from './response.js';
4
4
  export interface RerankRequest {
5
5
  /** Search results in their pre-rerank order. Returned as-is on failure. */
6
6
  candidates: RerankResult[];
7
- /** Query text, passed to the command as its own argv element. */
7
+ /** Query text, substituted for `{query}` in configured argument templates. */
8
8
  query: string;
9
- /** Result count the caller wants, passed through as `--top`. */
9
+ /** Result count the caller wants, substituted for `{top}`. */
10
10
  top: number;
11
- /** Configured command, parsed as a whitespace-separated argv vector. */
11
+ /** Configured executable and argument template. */
12
12
  command: string;
13
13
  /** Per-call budget. The spawned process is killed when it elapses. */
14
14
  timeoutMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rerank/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,eAAe,CAAA;AAEzE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,UAAU,EAAE,YAAY,EAAE,CAAA;IAC1B,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAA;IACb,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAA;IACX,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAA;IACf,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAA;CAClB;AA2FD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAmBtF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rerank/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,eAAe,CAAA;AAEzE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,UAAU,EAAE,YAAY,EAAE,CAAA;IAC1B,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAA;IACX,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAA;IACf,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAA;CAClB;AA2FD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAmBtF"}
@@ -38,8 +38,8 @@ function runRerankCommand(executable, argv, payload, timeoutMs) {
38
38
  };
39
39
  let child;
40
40
  try {
41
- // No shell on any platform: the query travels as its own argv element and
42
- // nothing can splice it back into a command string. `stderr` is ignored
41
+ // No shell on any platform: rendered arguments go straight to spawn and
42
+ // nothing can splice them back into a command string. `stderr` is ignored
43
43
  // because the child is untrusted and could otherwise write document text
44
44
  // into this server's log stream.
45
45
  child = spawn(executable, argv, { stdio: ['pipe', 'pipe', 'ignore'] });
@@ -92,7 +92,7 @@ export async function rerankCandidates(request) {
92
92
  const { candidates, query, top, command, timeoutMs } = request;
93
93
  const parsed = parseRerankCommand(command);
94
94
  if (parsed === undefined) {
95
- return fallback(candidates, 'the configured command is empty');
95
+ return fallback(candidates, 'the configured command is empty or has invalid quoting');
96
96
  }
97
97
  const run = await runRerankCommand(parsed.executable, buildRerankArgv(parsed, query, top), buildRerankPayload(candidates), timeoutMs);
98
98
  if (!run.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rerank/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rerank/index.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ export declare class RAGServer {
24
24
  /** Legacy single-root accessor for `rawBaseDirs`. Derived from `rawBaseDirs[0]`. */
25
25
  private readonly rawBaseDir;
26
26
  private readonly cacheDir;
27
- private readonly excludePaths;
27
+ private readonly scanExclusion;
28
28
  private readonly configWarnings;
29
29
  /**
30
30
  * When non-null the server is in degraded mode: `status` stays callable so the
@@ -65,6 +65,8 @@ export declare class RAGServer {
65
65
  * error in a diagnostic block, so recovery does not need stderr.
66
66
  */
67
67
  private assertConfigOk;
68
+ /** Finish the embedder config (title/heading prefixes) and pick local vs remote. */
69
+ private buildEmbedder;
68
70
  /** Every handler funnels through here, so the warning shape lives in one place. */
69
71
  private withWarnings;
70
72
  /**
@@ -111,6 +113,7 @@ export declare class RAGServer {
111
113
  * fails is reported as its own error, because the prior data may now be gone.
112
114
  */
113
115
  private rollbackIngest;
116
+ private prepareIngestSource;
114
117
  private ingestFile;
115
118
  /**
116
119
  * Saves raw content under raw-data and re-enters `handleIngestFile`. HTML is
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}