appium-mcp 1.78.0 → 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.
Files changed (26) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/scripts/simple-index-documentation.js +1 -1
  3. package/dist/tools/documentation/markdown-header-splitter.d.ts +32 -0
  4. package/dist/tools/documentation/markdown-header-splitter.d.ts.map +1 -0
  5. package/dist/tools/documentation/markdown-header-splitter.js +180 -0
  6. package/dist/tools/documentation/markdown-header-splitter.js.map +1 -0
  7. package/dist/tools/documentation/sentence-transformers-embeddings.d.ts.map +1 -1
  8. package/dist/tools/documentation/sentence-transformers-embeddings.js +10 -15
  9. package/dist/tools/documentation/sentence-transformers-embeddings.js.map +1 -1
  10. package/dist/tools/documentation/simple-pdf-indexer.d.ts +4 -3
  11. package/dist/tools/documentation/simple-pdf-indexer.d.ts.map +1 -1
  12. package/dist/tools/documentation/simple-pdf-indexer.js +35 -21
  13. package/dist/tools/documentation/simple-pdf-indexer.js.map +1 -1
  14. package/dist/tools/documentation/uploads/documents.json +1 -1
  15. package/dist/tools/documentation/uploads/embeddings-Xenova-bge-small-en-v1.5.json +1 -1
  16. package/dist/tools/session/select-device.js +1 -1
  17. package/dist/tools/session/select-device.js.map +1 -1
  18. package/package.json +1 -1
  19. package/server.json +2 -2
  20. package/src/resources/submodules.zip +0 -0
  21. package/src/scripts/simple-index-documentation.ts +1 -1
  22. package/src/tools/documentation/markdown-header-splitter.ts +209 -0
  23. package/src/tools/documentation/sentence-transformers-embeddings.ts +12 -20
  24. package/src/tools/documentation/simple-pdf-indexer.ts +36 -23
  25. package/src/tools/documentation/uploads/documents.json +1 -1
  26. package/src/tools/session/select-device.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
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
+
7
+ ## [1.78.1](https://github.com/appium/appium-mcp/compare/v1.78.0...v1.78.1) (2026-05-27)
8
+
9
+ ### Bug Fixes
10
+
11
+ * **select-device:** instruct to use real device preparation tool ([#368](https://github.com/appium/appium-mcp/issues/368)) ([45e489f](https://github.com/appium/appium-mcp/commit/45e489f03799a457248ddda379d6bf5989c839fc))
12
+
1
13
  ## [1.78.0](https://github.com/appium/appium-mcp/compare/v1.77.0...v1.78.0) (2026-05-26)
2
14
 
3
15
  ### Features
@@ -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 = 1000; // Default chunk size
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;IA0C1D;;OAEG;YACW,sBAAsB;IAoBpC;;OAEG;YACW,eAAe;CAyB9B"}
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
- // Process texts in batches to avoid memory issues
64
- const batchSize = 10;
65
- for (let i = 0; i < texts.length; i += batchSize) {
66
- const batch = texts.slice(i, i + batchSize);
67
- for (const text of batch) {
68
- const result = await this.model(text, {
69
- pooling: 'mean',
70
- normalize: true,
71
- });
72
- const embedding = Array.from(result.data);
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":"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"}
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
- * A simplified implementation for indexing Markdown documents into an in-memory vector store
5
- * using LangChain's RecursiveCharacterTextSplitter and MemoryVectorStore.
6
- * The vector store is persisted to a file for use across different script executions.
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;;;;;;GAMG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAqF3E;;;;;;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,CAwCnB;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,CAuGnB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,MAAW,GAChB,OAAO,CAAC,QAAQ,EAAE,CAAC,CA6CrB"}
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
- * A simplified implementation for indexing Markdown documents into an in-memory vector store
5
- * using LangChain's RecursiveCharacterTextSplitter and MemoryVectorStore.
6
- * The vector store is persisted to a file for use across different script executions.
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(['appium-skills']);
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 = 1000, chunkOverlap = 200) {
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
- // Create text splitter
85
- const textSplitter = new RecursiveCharacterTextSplitter({
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 = 1000, chunkOverlap = 200) {
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 = 1000, chunkOverlap = 200) {
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
- // Create text splitter
209
- const textSplitter = new RecursiveCharacterTextSplitter({
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 = 1000; // Default chunk size
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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"}