appium-mcp 1.78.1 → 1.79.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/scripts/simple-index-documentation.js +1 -1
- package/dist/tools/documentation/markdown-header-splitter.d.ts +32 -0
- package/dist/tools/documentation/markdown-header-splitter.d.ts.map +1 -0
- package/dist/tools/documentation/markdown-header-splitter.js +180 -0
- package/dist/tools/documentation/markdown-header-splitter.js.map +1 -0
- package/dist/tools/documentation/sentence-transformers-embeddings.d.ts.map +1 -1
- package/dist/tools/documentation/sentence-transformers-embeddings.js +10 -15
- package/dist/tools/documentation/sentence-transformers-embeddings.js.map +1 -1
- package/dist/tools/documentation/simple-pdf-indexer.d.ts +4 -3
- package/dist/tools/documentation/simple-pdf-indexer.d.ts.map +1 -1
- package/dist/tools/documentation/simple-pdf-indexer.js +35 -21
- package/dist/tools/documentation/simple-pdf-indexer.js.map +1 -1
- package/dist/tools/documentation/uploads/documents.json +1 -1
- package/dist/tools/documentation/uploads/embeddings-Xenova-bge-small-en-v1.5.json +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/resources/submodules.zip +0 -0
- package/src/scripts/simple-index-documentation.ts +1 -1
- package/src/tools/documentation/markdown-header-splitter.ts +209 -0
- package/src/tools/documentation/sentence-transformers-embeddings.ts +12 -20
- package/src/tools/documentation/simple-pdf-indexer.ts +36 -23
- package/src/tools/documentation/uploads/documents.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## [1.79.0](https://github.com/appium/appium-mcp/compare/v1.78.1...v1.79.0) (2026-05-27)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* **rag:** implement header-aware hybrid splitter for Markdown documents ([#367](https://github.com/appium/appium-mcp/issues/367)) ([ea34007](https://github.com/appium/appium-mcp/commit/ea34007442d8528b36e46d56f75d14d950a7f137))
|
|
6
|
+
|
|
1
7
|
## [1.78.1](https://github.com/appium/appium-mcp/compare/v1.78.0...v1.78.1) (2026-05-27)
|
|
2
8
|
|
|
3
9
|
### Bug Fixes
|
|
@@ -27,7 +27,7 @@ async function main() {
|
|
|
27
27
|
// Parse command line arguments
|
|
28
28
|
const args = process.argv.slice(2);
|
|
29
29
|
let markdownPath;
|
|
30
|
-
let chunkSize =
|
|
30
|
+
let chunkSize = 2500; // Default chunk size
|
|
31
31
|
let chunkOverlap = 200; // Default overlap
|
|
32
32
|
let indexSingleFile = false;
|
|
33
33
|
if (args.length > 0 && args[0]) {
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Header-aware Markdown splitter (hybrid approach).
|
|
3
|
+
*
|
|
4
|
+
* The TS `@langchain/textsplitters` package only ships `MarkdownTextSplitter`,
|
|
5
|
+
* which is `RecursiveCharacterTextSplitter` with Markdown-priority separators —
|
|
6
|
+
* it is *greedy* and merges across topical boundaries when chunks are small.
|
|
7
|
+
*
|
|
8
|
+
* For Appium's header-dense docs (2098 h2 + 2263 h3 across 178 files; 92% of
|
|
9
|
+
* h2/h3 sections fit under 1000 chars), splitting on headers first preserves
|
|
10
|
+
* topical boundaries. We then:
|
|
11
|
+
* - Coalesce short adjacent sections so embeddings aren't computed on tiny
|
|
12
|
+
* (~50-token) chunks where vector quality degrades.
|
|
13
|
+
* - Recursively split sections that exceed `chunkSize` (e.g. long capability
|
|
14
|
+
* reference tables, big code dumps).
|
|
15
|
+
* - Prepend a header breadcrumb (`# Page > ## Section > ### Subsection`) to
|
|
16
|
+
* every chunk so the embedding sees topical context even when the body
|
|
17
|
+
* is recursive-split into mid-paragraph fragments.
|
|
18
|
+
*
|
|
19
|
+
* Files with no headers (or only an h1) fall through to a single recursive
|
|
20
|
+
* split of the whole body - no different from plain RCT for those.
|
|
21
|
+
*/
|
|
22
|
+
import { Document } from '@langchain/core/documents';
|
|
23
|
+
export interface MarkdownHeaderSplitterOptions {
|
|
24
|
+
chunkSize: number;
|
|
25
|
+
chunkOverlap: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Split a single Markdown document into chunks using header-aware hybrid logic.
|
|
29
|
+
* See module docstring for the algorithm summary.
|
|
30
|
+
*/
|
|
31
|
+
export declare function splitMarkdownByHeaders(markdown: string, options: MarkdownHeaderSplitterOptions): Promise<Document[]>;
|
|
32
|
+
//# sourceMappingURL=markdown-header-splitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-header-splitter.d.ts","sourceRoot":"","sources":["../../../src/tools/documentation/markdown-header-splitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGrD,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAqGD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAyErB"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Header-aware Markdown splitter (hybrid approach).
|
|
3
|
+
*
|
|
4
|
+
* The TS `@langchain/textsplitters` package only ships `MarkdownTextSplitter`,
|
|
5
|
+
* which is `RecursiveCharacterTextSplitter` with Markdown-priority separators —
|
|
6
|
+
* it is *greedy* and merges across topical boundaries when chunks are small.
|
|
7
|
+
*
|
|
8
|
+
* For Appium's header-dense docs (2098 h2 + 2263 h3 across 178 files; 92% of
|
|
9
|
+
* h2/h3 sections fit under 1000 chars), splitting on headers first preserves
|
|
10
|
+
* topical boundaries. We then:
|
|
11
|
+
* - Coalesce short adjacent sections so embeddings aren't computed on tiny
|
|
12
|
+
* (~50-token) chunks where vector quality degrades.
|
|
13
|
+
* - Recursively split sections that exceed `chunkSize` (e.g. long capability
|
|
14
|
+
* reference tables, big code dumps).
|
|
15
|
+
* - Prepend a header breadcrumb (`# Page > ## Section > ### Subsection`) to
|
|
16
|
+
* every chunk so the embedding sees topical context even when the body
|
|
17
|
+
* is recursive-split into mid-paragraph fragments.
|
|
18
|
+
*
|
|
19
|
+
* Files with no headers (or only an h1) fall through to a single recursive
|
|
20
|
+
* split of the whole body - no different from plain RCT for those.
|
|
21
|
+
*/
|
|
22
|
+
import { Document } from '@langchain/core/documents';
|
|
23
|
+
import { RecursiveCharacterTextSplitter } from '@langchain/textsplitters';
|
|
24
|
+
const HEADER_RE = /^(#{1,6})\s+(.+?)\s*$/;
|
|
25
|
+
const FENCE_RE = /^\s{0,3}(```|~~~)/;
|
|
26
|
+
/**
|
|
27
|
+
* Parse Markdown into a flat list of sections delimited by ATX headers.
|
|
28
|
+
*
|
|
29
|
+
* - Respects fenced code blocks: `#` inside ``` ... ``` is not treated as a header.
|
|
30
|
+
* - Files without any headers produce a single section with empty headerStack.
|
|
31
|
+
* - The text before the first header (if any) is attached as a section with
|
|
32
|
+
* the file's eventual root headerStack (still empty until we see an h1).
|
|
33
|
+
*/
|
|
34
|
+
function parseSections(markdown) {
|
|
35
|
+
const lines = markdown.split('\n');
|
|
36
|
+
const sections = [];
|
|
37
|
+
let inFence = false;
|
|
38
|
+
let currentBody = [];
|
|
39
|
+
// headerStack carries the live ancestor chain — when we see h(n), we pop
|
|
40
|
+
// everything at level >= n then push the new header.
|
|
41
|
+
const headerStack = [];
|
|
42
|
+
const flush = () => {
|
|
43
|
+
if (currentBody.length === 0 && headerStack.length === 0) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
sections.push({
|
|
47
|
+
headerStack: [...headerStack],
|
|
48
|
+
body: currentBody.join('\n').trim(),
|
|
49
|
+
});
|
|
50
|
+
currentBody = [];
|
|
51
|
+
};
|
|
52
|
+
for (const line of lines) {
|
|
53
|
+
if (FENCE_RE.test(line)) {
|
|
54
|
+
inFence = !inFence;
|
|
55
|
+
currentBody.push(line);
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (inFence) {
|
|
59
|
+
currentBody.push(line);
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
const m = line.match(HEADER_RE);
|
|
63
|
+
if (m) {
|
|
64
|
+
// Flush whatever section we were in before opening a new one.
|
|
65
|
+
flush();
|
|
66
|
+
const level = m[1].length;
|
|
67
|
+
// Pop deeper-or-equal headers off the stack — siblings replace, deeper
|
|
68
|
+
// descendants are closed.
|
|
69
|
+
while (headerStack.length > 0) {
|
|
70
|
+
const top = headerStack[headerStack.length - 1];
|
|
71
|
+
const topLevel = top.match(/^(#{1,6})/)[1].length;
|
|
72
|
+
if (topLevel >= level) {
|
|
73
|
+
headerStack.pop();
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
headerStack.push(`${m[1]} ${m[2]}`);
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
currentBody.push(line);
|
|
83
|
+
}
|
|
84
|
+
flush();
|
|
85
|
+
return sections.filter((s) => s.headerStack.length > 0 || s.body.length > 0);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Build a single-line breadcrumb prefix for a chunk, e.g.
|
|
89
|
+
* "# XCUITest Driver Capabilities > ## Standard W3C > ### platformVersion"
|
|
90
|
+
* Falls back to empty string if the section has no ancestors.
|
|
91
|
+
*/
|
|
92
|
+
function breadcrumbFor(headerStack) {
|
|
93
|
+
if (headerStack.length === 0) {
|
|
94
|
+
return '';
|
|
95
|
+
}
|
|
96
|
+
return headerStack.join(' > ');
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Render a section as the text that will go into a chunk: breadcrumb on top,
|
|
100
|
+
* blank line, then body. Used both when emitting a single section as one chunk
|
|
101
|
+
* and when buffering for coalescence.
|
|
102
|
+
*/
|
|
103
|
+
function renderSection(section) {
|
|
104
|
+
const bc = breadcrumbFor(section.headerStack);
|
|
105
|
+
if (!bc) {
|
|
106
|
+
return section.body;
|
|
107
|
+
}
|
|
108
|
+
if (!section.body) {
|
|
109
|
+
return bc;
|
|
110
|
+
}
|
|
111
|
+
return `${bc}\n\n${section.body}`;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Split a single Markdown document into chunks using header-aware hybrid logic.
|
|
115
|
+
* See module docstring for the algorithm summary.
|
|
116
|
+
*/
|
|
117
|
+
export async function splitMarkdownByHeaders(markdown, options) {
|
|
118
|
+
const { chunkSize, chunkOverlap } = options;
|
|
119
|
+
const sections = parseSections(markdown);
|
|
120
|
+
// Fallback splitter for sections that exceed chunkSize on their own.
|
|
121
|
+
// Reserve some room for the breadcrumb so the final chunk text still fits.
|
|
122
|
+
const recursive = new RecursiveCharacterTextSplitter({
|
|
123
|
+
chunkSize,
|
|
124
|
+
chunkOverlap,
|
|
125
|
+
keepSeparator: true,
|
|
126
|
+
});
|
|
127
|
+
const chunks = [];
|
|
128
|
+
// `buffer` holds rendered section texts (each with its own breadcrumb) that
|
|
129
|
+
// we plan to coalesce. We flush when adding the next section would overflow.
|
|
130
|
+
const buffer = [];
|
|
131
|
+
let bufferSize = 0;
|
|
132
|
+
const flushBuffer = () => {
|
|
133
|
+
if (buffer.length === 0) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const text = buffer.map(renderSection).join('\n\n');
|
|
137
|
+
chunks.push(new Document({
|
|
138
|
+
pageContent: text,
|
|
139
|
+
metadata: {
|
|
140
|
+
headerPath: breadcrumbFor(buffer[0].headerStack),
|
|
141
|
+
sectionCount: buffer.length,
|
|
142
|
+
},
|
|
143
|
+
}));
|
|
144
|
+
buffer.length = 0;
|
|
145
|
+
bufferSize = 0;
|
|
146
|
+
};
|
|
147
|
+
for (const section of sections) {
|
|
148
|
+
const rendered = renderSection(section);
|
|
149
|
+
if (rendered.length > chunkSize) {
|
|
150
|
+
// Section is too big to live in any single chunk: flush whatever we had
|
|
151
|
+
// buffered, then recursive-split this section's body, prepending the
|
|
152
|
+
// breadcrumb to each sub-chunk so context isn't lost.
|
|
153
|
+
flushBuffer();
|
|
154
|
+
const bc = breadcrumbFor(section.headerStack);
|
|
155
|
+
const subTexts = await recursive.splitText(section.body || '');
|
|
156
|
+
for (const sub of subTexts) {
|
|
157
|
+
const text = bc ? `${bc}\n\n${sub}` : sub;
|
|
158
|
+
chunks.push(new Document({
|
|
159
|
+
pageContent: text,
|
|
160
|
+
metadata: {
|
|
161
|
+
headerPath: bc,
|
|
162
|
+
sectionCount: 1,
|
|
163
|
+
recursiveSplit: true,
|
|
164
|
+
},
|
|
165
|
+
}));
|
|
166
|
+
}
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
// Would adding this section overflow the current buffer? If so, flush.
|
|
170
|
+
// The +2 accounts for the "\n\n" join between buffered sections.
|
|
171
|
+
if (bufferSize > 0 && bufferSize + rendered.length + 2 > chunkSize) {
|
|
172
|
+
flushBuffer();
|
|
173
|
+
}
|
|
174
|
+
buffer.push(section);
|
|
175
|
+
bufferSize += rendered.length + (bufferSize > 0 ? 2 : 0);
|
|
176
|
+
}
|
|
177
|
+
flushBuffer();
|
|
178
|
+
return chunks;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=markdown-header-splitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-header-splitter.js","sourceRoot":"","sources":["../../../src/tools/documentation/markdown-header-splitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentence-transformers-embeddings.d.ts","sourceRoot":"","sources":["../../../src/tools/documentation/sentence-transformers-embeddings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,qBAAa,8BAA8B;IACzC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,YAAY,CAAa;gBAErB,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAO;IAO3E,kFAAkF;IAClF,YAAY,IAAI,MAAM;IAItB;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA4BjD;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"sentence-transformers-embeddings.d.ts","sourceRoot":"","sources":["../../../src/tools/documentation/sentence-transformers-embeddings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,qBAAa,8BAA8B;IACzC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,YAAY,CAAa;gBAErB,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAO;IAO3E,kFAAkF;IAClF,YAAY,IAAI,MAAM;IAItB;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA4BjD;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAkC1D;;OAEG;YACW,sBAAsB;IAoBpC;;OAEG;YACW,eAAe;CAyB9B"}
|
|
@@ -60,21 +60,16 @@ export class SentenceTransformersEmbeddings {
|
|
|
60
60
|
}
|
|
61
61
|
try {
|
|
62
62
|
const embeddings = [];
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
embeddings.push(embedding);
|
|
74
|
-
}
|
|
75
|
-
// Log progress for large batches
|
|
76
|
-
if (texts.length > batchSize) {
|
|
77
|
-
log.info(`Processed ${Math.min(i + batchSize, texts.length)}/${texts.length} documents`);
|
|
63
|
+
const logEvery = 50; // chunk-by-chunk progress would be too noisy
|
|
64
|
+
for (let i = 0; i < texts.length; i++) {
|
|
65
|
+
const result = await this.model(texts[i], {
|
|
66
|
+
pooling: 'mean',
|
|
67
|
+
normalize: true,
|
|
68
|
+
});
|
|
69
|
+
embeddings.push(Array.from(result.data));
|
|
70
|
+
if (texts.length > logEvery &&
|
|
71
|
+
(i + 1 === texts.length || (i + 1) % logEvery === 0)) {
|
|
72
|
+
log.info(`Processed ${i + 1}/${texts.length} documents`);
|
|
78
73
|
}
|
|
79
74
|
}
|
|
80
75
|
return embeddings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentence-transformers-embeddings.js","sourceRoot":"","sources":["../../../src/tools/documentation/sentence-transformers-embeddings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAElC;;GAEG;AACH,MAAM,OAAO,8BAA8B;IACjC,KAAK,GAAQ,IAAI,CAAC;IAClB,SAAS,CAAS;IAClB,gBAAgB,CAAS;IACzB,aAAa,GAAY,KAAK,CAAC;IAC/B,YAAY,GAAQ,IAAI,CAAC;IAEjC,YAAY,UAA6D,EAAE;QACzE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,yBAAyB,CAAC;QAChE,6DAA6D;QAC7D,+DAA+D;QAC/D,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;IACzD,CAAC;IAED,kFAAkF;IAClF,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB;gBACjC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,EAAE;gBACnC,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBACrC,OAAO,EAAE,MAAM;gBACf,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YAEH,0BAA0B;YAC1B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAa,CAAC;YACvD,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACjD,MAAM,IAAI,KAAK,CACb,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC1F,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,KAAe;QAClC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"sentence-transformers-embeddings.js","sourceRoot":"","sources":["../../../src/tools/documentation/sentence-transformers-embeddings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Simple Markdown Indexer
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Indexes Markdown documents into an in-memory vector store using a
|
|
5
|
+
* header-aware hybrid splitter and LangChain's MemoryVectorStore. The
|
|
6
|
+
* vector store is persisted to a file for use across different script
|
|
7
|
+
* executions.
|
|
7
8
|
*/
|
|
8
9
|
import { Document } from '@langchain/core/documents';
|
|
9
10
|
import { MemoryVectorStore } from '@langchain/classic/vectorstores/memory';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-pdf-indexer.d.ts","sourceRoot":"","sources":["../../../src/tools/documentation/simple-pdf-indexer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"simple-pdf-indexer.d.ts","sourceRoot":"","sources":["../../../src/tools/documentation/simple-pdf-indexer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAqG3E;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,MAAa,EACxB,YAAY,GAAE,MAAY,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAmD5B;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,EAAE,CAAC,CAyCnB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,MAAa,EACxB,YAAY,GAAE,MAAY,GACzB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAa,EACxB,YAAY,GAAE,MAAY,GACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CAmGnB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,MAAW,GAChB,OAAO,CAAC,QAAQ,EAAE,CAAC,CA6CrB"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Simple Markdown Indexer
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Indexes Markdown documents into an in-memory vector store using a
|
|
5
|
+
* header-aware hybrid splitter and LangChain's MemoryVectorStore. The
|
|
6
|
+
* vector store is persisted to a file for use across different script
|
|
7
|
+
* executions.
|
|
7
8
|
*/
|
|
8
|
-
import { RecursiveCharacterTextSplitter } from '@langchain/textsplitters';
|
|
9
9
|
import { Document } from '@langchain/core/documents';
|
|
10
10
|
import { MemoryVectorStore } from '@langchain/classic/vectorstores/memory';
|
|
11
11
|
import { fs } from '@appium/support';
|
|
12
12
|
import * as crypto from 'node:crypto';
|
|
13
13
|
import * as path from 'node:path';
|
|
14
14
|
import { fileURLToPath } from 'node:url';
|
|
15
|
+
import { splitMarkdownByHeaders } from './markdown-header-splitter.js';
|
|
15
16
|
// Initialize embeddings using sentence-transformers (no API key required)
|
|
16
17
|
import { SentenceTransformersEmbeddings } from './sentence-transformers-embeddings.js';
|
|
17
18
|
import log from '../../logger.js';
|
|
@@ -54,7 +55,21 @@ let memoryVectorStore = null;
|
|
|
54
55
|
/**
|
|
55
56
|
* Exclude certain directories from being indexed to avoid irrelevant content and reduce noise in the vector store.
|
|
56
57
|
*/
|
|
57
|
-
const EXCLUDED_MARKDOWN_DIRECTORIES = new Set([
|
|
58
|
+
const EXCLUDED_MARKDOWN_DIRECTORIES = new Set([
|
|
59
|
+
'appium-skills',
|
|
60
|
+
'ja',
|
|
61
|
+
'zh',
|
|
62
|
+
'.github',
|
|
63
|
+
'blog',
|
|
64
|
+
]);
|
|
65
|
+
/**
|
|
66
|
+
* Exclude specific filenames regardless of where they appear in the tree.
|
|
67
|
+
*
|
|
68
|
+
* CHANGELOG.md files are semantic-release templates dominated by version
|
|
69
|
+
* headers, commit hashes, and PR numbers. They have negligible instructional
|
|
70
|
+
* value.
|
|
71
|
+
*/
|
|
72
|
+
const EXCLUDED_MARKDOWN_FILENAMES = new Set(['CHANGELOG.md']);
|
|
58
73
|
/**
|
|
59
74
|
* Embeddings cache: vectors persisted alongside documents.json so the
|
|
60
75
|
* server doesn't re-embed all chunks on every cold start.
|
|
@@ -73,7 +88,7 @@ const CACHE_VERSION = 1;
|
|
|
73
88
|
* @param chunkOverlap Number of characters to overlap between chunks
|
|
74
89
|
* @returns The initialized MemoryVectorStore
|
|
75
90
|
*/
|
|
76
|
-
export async function initializeVectorStore(markdownPath, chunkSize =
|
|
91
|
+
export async function initializeVectorStore(markdownPath, chunkSize = 2500, chunkOverlap = 200) {
|
|
77
92
|
try {
|
|
78
93
|
log.info(`Initializing vector store for Markdown: ${markdownPath}`);
|
|
79
94
|
log.info(`Using chunk size: ${chunkSize}, overlap: ${chunkOverlap}`);
|
|
@@ -81,14 +96,15 @@ export async function initializeVectorStore(markdownPath, chunkSize = 1000, chun
|
|
|
81
96
|
log.info('Extracting text from Markdown...');
|
|
82
97
|
const markdownText = await extractTextFromMarkdown(markdownPath);
|
|
83
98
|
log.info(`Extracted ${markdownText.length} characters from Markdown`);
|
|
84
|
-
//
|
|
85
|
-
|
|
99
|
+
// Header-aware hybrid splitter: parses ATX headers to find topical
|
|
100
|
+
// boundaries, coalesces short sibling sections to avoid tiny embeddings,
|
|
101
|
+
// recursive-splits oversized sections, and prepends a header breadcrumb
|
|
102
|
+
// (`# Page > ## Section`) so each chunk's embedding carries its context.
|
|
103
|
+
log.info('Splitting text into chunks...');
|
|
104
|
+
const documents = await splitMarkdownByHeaders(markdownText, {
|
|
86
105
|
chunkSize,
|
|
87
106
|
chunkOverlap,
|
|
88
107
|
});
|
|
89
|
-
// Split text into documents
|
|
90
|
-
log.info('Splitting text into chunks...');
|
|
91
|
-
const documents = await textSplitter.createDocuments([markdownText]);
|
|
92
108
|
log.info(`Created ${documents.length} document chunks`);
|
|
93
109
|
// Embed once; reuse the vectors for both the in-memory store and the cache.
|
|
94
110
|
log.info('Embedding chunks...');
|
|
@@ -137,7 +153,8 @@ export async function getMarkdownFilesInDirectory(dirPath) {
|
|
|
137
153
|
await scanDirectory(filePath);
|
|
138
154
|
}
|
|
139
155
|
else if (stats.isFile() &&
|
|
140
|
-
path.extname(file).toLowerCase() === '.md'
|
|
156
|
+
path.extname(file).toLowerCase() === '.md' &&
|
|
157
|
+
!EXCLUDED_MARKDOWN_FILENAMES.has(file)) {
|
|
141
158
|
markdownFiles.push(filePath);
|
|
142
159
|
}
|
|
143
160
|
}
|
|
@@ -157,7 +174,7 @@ export async function getMarkdownFilesInDirectory(dirPath) {
|
|
|
157
174
|
* @param chunkSize Size of each chunk in characters
|
|
158
175
|
* @param chunkOverlap Number of characters to overlap between chunks
|
|
159
176
|
*/
|
|
160
|
-
export async function indexMarkdown(markdownPath, chunkSize =
|
|
177
|
+
export async function indexMarkdown(markdownPath, chunkSize = 2500, chunkOverlap = 200) {
|
|
161
178
|
try {
|
|
162
179
|
log.info('Starting Markdown indexing process...');
|
|
163
180
|
// Initialize vector store
|
|
@@ -176,7 +193,7 @@ export async function indexMarkdown(markdownPath, chunkSize = 1000, chunkOverlap
|
|
|
176
193
|
* @param chunkOverlap Number of characters to overlap between chunks
|
|
177
194
|
* @returns Array of indexed Markdown file paths
|
|
178
195
|
*/
|
|
179
|
-
export async function indexAllMarkdownFiles(dirPath, chunkSize =
|
|
196
|
+
export async function indexAllMarkdownFiles(dirPath, chunkSize = 2500, chunkOverlap = 200) {
|
|
180
197
|
try {
|
|
181
198
|
log.info(`Starting indexing of all Markdown files in directory: ${dirPath}`);
|
|
182
199
|
// Get all Markdown files in the directory
|
|
@@ -205,14 +222,12 @@ export async function indexAllMarkdownFiles(dirPath, chunkSize = 1000, chunkOver
|
|
|
205
222
|
log.info('Extracting text from Markdown...');
|
|
206
223
|
const markdownText = await extractTextFromMarkdown(markdownFile);
|
|
207
224
|
log.info(`Extracted ${markdownText.length} characters from Markdown`);
|
|
208
|
-
//
|
|
209
|
-
|
|
225
|
+
// Header-aware hybrid splitter
|
|
226
|
+
log.info('Splitting text into chunks...');
|
|
227
|
+
const documents = await splitMarkdownByHeaders(markdownText, {
|
|
210
228
|
chunkSize,
|
|
211
229
|
chunkOverlap,
|
|
212
230
|
});
|
|
213
|
-
// Split text into documents
|
|
214
|
-
log.info('Splitting text into chunks...');
|
|
215
|
-
const documents = await textSplitter.createDocuments([markdownText]);
|
|
216
231
|
log.info(`Created ${documents.length} document chunks`);
|
|
217
232
|
// Add file metadata to each document
|
|
218
233
|
const filename = path.basename(markdownFile);
|
|
@@ -220,7 +235,6 @@ export async function indexAllMarkdownFiles(dirPath, chunkSize = 1000, chunkOver
|
|
|
220
235
|
documents.forEach((doc) => {
|
|
221
236
|
doc.metadata = {
|
|
222
237
|
...doc.metadata,
|
|
223
|
-
source: markdownFile,
|
|
224
238
|
filename,
|
|
225
239
|
relativePath,
|
|
226
240
|
};
|
|
@@ -499,7 +513,7 @@ if (import.meta.url === `file://${process.argv[1]}`) {
|
|
|
499
513
|
// Parse command line arguments
|
|
500
514
|
const args = process.argv.slice(2);
|
|
501
515
|
let markdownPath;
|
|
502
|
-
let chunkSize =
|
|
516
|
+
let chunkSize = 2500; // Default chunk size
|
|
503
517
|
let chunkOverlap = 200; // Default overlap
|
|
504
518
|
let indexSingleFile = false;
|
|
505
519
|
// Get Markdown path or directory path
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-pdf-indexer.js","sourceRoot":"","sources":["../../../src/tools/documentation/simple-pdf-indexer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"simple-pdf-indexer.js","sourceRoot":"","sources":["../../../src/tools/documentation/simple-pdf-indexer.ts"],"names":[],"mappings":"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"}
|