@dynamik-dev/refdocs 0.5.2 → 0.6.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 (41) hide show
  1. package/README.md +33 -7
  2. package/dist/src/add.d.ts +0 -9
  3. package/dist/src/add.d.ts.map +1 -1
  4. package/dist/src/add.js +9 -55
  5. package/dist/src/add.js.map +1 -1
  6. package/dist/src/chunker.d.ts.map +1 -1
  7. package/dist/src/chunker.js +23 -3
  8. package/dist/src/chunker.js.map +1 -1
  9. package/dist/src/config.d.ts +3 -4
  10. package/dist/src/config.d.ts.map +1 -1
  11. package/dist/src/config.js +19 -16
  12. package/dist/src/config.js.map +1 -1
  13. package/dist/src/index.js +65 -94
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/indexer.d.ts +11 -1
  16. package/dist/src/indexer.d.ts.map +1 -1
  17. package/dist/src/indexer.js +129 -7
  18. package/dist/src/indexer.js.map +1 -1
  19. package/dist/src/search.d.ts +15 -2
  20. package/dist/src/search.d.ts.map +1 -1
  21. package/dist/src/search.js +59 -20
  22. package/dist/src/search.js.map +1 -1
  23. package/dist/src/types.d.ts +5 -9
  24. package/dist/src/types.d.ts.map +1 -1
  25. package/dist/tests/chunker.test.js +33 -12
  26. package/dist/tests/chunker.test.js.map +1 -1
  27. package/dist/tests/global.test.js +16 -26
  28. package/dist/tests/global.test.js.map +1 -1
  29. package/dist/tests/indexer.test.js +162 -12
  30. package/dist/tests/indexer.test.js.map +1 -1
  31. package/dist/tests/search.test.js +103 -12
  32. package/dist/tests/search.test.js.map +1 -1
  33. package/package.json +2 -8
  34. package/dist/src/crawl.d.ts +0 -25
  35. package/dist/src/crawl.d.ts.map +0 -1
  36. package/dist/src/crawl.js +0 -226
  37. package/dist/src/crawl.js.map +0 -1
  38. package/dist/tests/crawl.test.d.ts +0 -2
  39. package/dist/tests/crawl.test.d.ts.map +0 -1
  40. package/dist/tests/crawl.test.js +0 -343
  41. package/dist/tests/crawl.test.js.map +0 -1
package/dist/src/index.js CHANGED
@@ -1,17 +1,19 @@
1
1
  #!/usr/bin/env node
2
- import { Command } from "commander";
2
+ import { Command, InvalidArgumentError } from "commander";
3
3
  import { join } from "node:path";
4
4
  import { existsSync } from "node:fs";
5
+ import { createRequire } from "node:module";
5
6
  import { loadConfig, configExists, initConfig, loadGlobalConfig, initGlobalConfig, getGlobalConfigDir } from "./config.js";
6
- import { buildIndex, loadPersistedIndex } from "./indexer.js";
7
- import { search, mergeSearchResults } from "./search.js";
8
- import { addFromGitHub, addFromFileUrl, addFromCrawl, addLocalPath, removePath, updateSources } from "./add.js";
9
- import { isGitHubUrl, isTextFileUrl } from "./crawl.js";
7
+ import { buildAndPersistIndex, loadPersistedIndex } from "./indexer.js";
8
+ import { searchAllIndexes } from "./search.js";
9
+ import { addFromGitHub, addLocalPath, removePath, updateSources } from "./add.js";
10
+ const require = createRequire(import.meta.url);
11
+ const { version } = require("../package.json");
10
12
  const program = new Command();
11
13
  program
12
14
  .name("refdocs")
13
15
  .description("Local CLI tool for indexing and searching markdown documentation")
14
- .version("0.5.1");
16
+ .version(version);
15
17
  program
16
18
  .command("init")
17
19
  .description("Create a .refdocs.json config file with defaults")
@@ -36,6 +38,7 @@ program
36
38
  .command("index")
37
39
  .description("Index all markdown files in configured paths")
38
40
  .option("-g, --global", "index the global config")
41
+ .option("--full", "force a full rebuild (skip incremental)")
39
42
  .action((opts) => {
40
43
  try {
41
44
  if (opts.global) {
@@ -44,17 +47,13 @@ program
44
47
  console.error("No global config found. Run `refdocs init --global` first.");
45
48
  process.exit(1);
46
49
  }
47
- const summary = buildIndex(globalResult.config, globalResult.configDir);
48
- console.log(`[global] Indexed ${summary.filesIndexed} files → ${summary.chunksCreated} chunks`);
49
- console.log(`Index size: ${(summary.indexSizeBytes / 1024).toFixed(1)} KB`);
50
- console.log(`Done in ${summary.elapsedMs}ms`);
50
+ const summary = buildAndPersistIndex(globalResult.config, globalResult.configDir, { force: opts.full });
51
+ printIndexSummary(summary, "[global] ");
51
52
  }
52
53
  else {
53
54
  const { config, configDir } = loadConfig();
54
- const summary = buildIndex(config, configDir);
55
- console.log(`Indexed ${summary.filesIndexed} files → ${summary.chunksCreated} chunks`);
56
- console.log(`Index size: ${(summary.indexSizeBytes / 1024).toFixed(1)} KB`);
57
- console.log(`Done in ${summary.elapsedMs}ms`);
55
+ const summary = buildAndPersistIndex(config, configDir, { force: opts.full });
56
+ printIndexSummary(summary, "");
58
57
  }
59
58
  }
60
59
  catch (err) {
@@ -65,50 +64,23 @@ program
65
64
  program
66
65
  .command("search <query>")
67
66
  .description("Fuzzy search the index and return top chunks")
68
- .option("-n, --results <count>", "number of results", "3")
67
+ .option("-n, --results <count>", "number of results (1-10)", (value) => {
68
+ const n = parseInt(value, 10);
69
+ if (isNaN(n) || n < 1 || n > 10) {
70
+ throw new InvalidArgumentError(`Invalid value "${value}". Must be a number between 1 and 10.`);
71
+ }
72
+ return n;
73
+ }, 3)
69
74
  .option("-f, --file <pattern>", "filter results to files matching glob")
70
75
  .option("--json", "output as JSON")
71
76
  .option("--raw", "output chunk body only, no metadata")
72
77
  .action((query, opts) => {
73
78
  try {
74
- const maxResults = Math.min(Math.max(1, parseInt(opts.results, 10) || 3), 10);
75
- let localResults = [];
76
- let hasLocalIndex = false;
77
- let localError = null;
78
- try {
79
- const { config, configDir } = loadConfig();
80
- const indexPath = join(configDir, config.index);
81
- const { index } = loadPersistedIndex(indexPath, config);
82
- hasLocalIndex = true;
83
- localResults = search(index, query, { maxResults, fileFilter: opts.file });
84
- }
85
- catch (err) {
86
- localError = err;
87
- }
88
- let globalResults = [];
89
- let hasGlobalIndex = false;
90
- const globalConfig = loadGlobalConfig();
91
- if (globalConfig) {
92
- const globalIndexPath = join(globalConfig.configDir, globalConfig.config.index);
93
- if (existsSync(globalIndexPath)) {
94
- try {
95
- const { index: globalIndex } = loadPersistedIndex(globalIndexPath, globalConfig.config);
96
- hasGlobalIndex = true;
97
- globalResults = search(globalIndex, query, { maxResults, fileFilter: opts.file });
98
- globalResults = globalResults.map((r) => ({
99
- ...r,
100
- file: `[global] ${r.file}`,
101
- }));
102
- }
103
- catch {
104
- // Global index exists but failed to load, skip
105
- }
106
- }
107
- }
108
- if (!hasLocalIndex && !hasGlobalIndex) {
109
- throw localError ?? new Error("Index not found. Run `refdocs index` first.");
110
- }
111
- const results = mergeSearchResults(localResults, globalResults, maxResults);
79
+ const sources = resolveIndexSources();
80
+ const results = searchAllIndexes(sources, query, {
81
+ maxResults: opts.results,
82
+ fileFilter: opts.file,
83
+ });
112
84
  if (results.length === 0) {
113
85
  console.log("No results found.");
114
86
  return;
@@ -205,14 +177,11 @@ program
205
177
  });
206
178
  program
207
179
  .command("add <source>")
208
- .description("Add docs from a local path, GitHub URL, file URL, or crawled website")
180
+ .description("Add docs from a local path or GitHub URL")
209
181
  .option("--path <dir>", "override local storage directory")
210
182
  .option("--branch <branch>", "override branch detection from URL")
211
183
  .option("--no-index", "skip auto re-indexing after download")
212
184
  .option("-g, --global", "store docs in global ~/.refdocs/ directory")
213
- .option("--crawl", "crawl a website and convert pages to markdown")
214
- .option("--max-pages <count>", "max pages to crawl (default: 200)")
215
- .option("--depth <levels>", "max crawl depth (default: 3)")
216
185
  .action(async (source, opts) => {
217
186
  try {
218
187
  const isUrl = source.startsWith("http://") || source.startsWith("https://");
@@ -241,19 +210,7 @@ program
241
210
  ({ config, configDir } = loadConfig());
242
211
  }
243
212
  const label = opts.global ? "[global] " : "";
244
- if (isUrl && opts.crawl) {
245
- // Crawl mode: spider the site and convert to markdown
246
- const maxPages = opts.maxPages ? parseInt(opts.maxPages, 10) : undefined;
247
- const depth = opts.depth ? parseInt(opts.depth, 10) : undefined;
248
- console.log(`Crawling ${source}...`);
249
- const result = await addFromCrawl(source, { path: opts.path, maxPages, depth }, configDir, config);
250
- console.log(`${label}Converted ${result.filesWritten} pages → ${result.localPath}/`);
251
- if (opts.index && result.filesWritten > 0) {
252
- reindex(opts.global, label);
253
- }
254
- }
255
- else if (isUrl && isGitHubUrl(source)) {
256
- // GitHub mode: download tarball
213
+ if (isUrl) {
257
214
  const result = await addFromGitHub(source, { path: opts.path, branch: opts.branch }, configDir, config);
258
215
  console.log(`${label}Downloaded ${result.filesWritten} markdown files → ${result.localPath}/`);
259
216
  if (result.source.type === "github") {
@@ -263,25 +220,7 @@ program
263
220
  reindex(opts.global, label);
264
221
  }
265
222
  }
266
- else if (isUrl && isTextFileUrl(source)) {
267
- // Single file URL mode (.md or .txt)
268
- const result = await addFromFileUrl(source, { path: opts.path }, configDir, config);
269
- console.log(`${label}Downloaded 1 file → ${result.localPath}`);
270
- if (opts.index && result.filesWritten > 0) {
271
- reindex(opts.global, label);
272
- }
273
- }
274
- else if (isUrl) {
275
- // Single page crawl: fetch HTML and convert to markdown
276
- console.log(`Crawling ${source}...`);
277
- const result = await addFromCrawl(source, { path: opts.path, maxPages: 1, depth: 0 }, configDir, config);
278
- console.log(`${label}Converted ${result.filesWritten} page → ${result.localPath}/`);
279
- if (opts.index && result.filesWritten > 0) {
280
- reindex(opts.global, label);
281
- }
282
- }
283
223
  else {
284
- // Local path mode
285
224
  const result = addLocalPath(source, configDir, config);
286
225
  console.log(`Added ${result.localPath} to paths`);
287
226
  if (opts.index) {
@@ -371,18 +310,26 @@ program
371
310
  process.exit(1);
372
311
  }
373
312
  });
313
+ function printIndexSummary(summary, label) {
314
+ console.log(`${label}Indexed ${summary.filesIndexed} files → ${summary.chunksCreated} chunks`);
315
+ if (summary.unchanged !== undefined) {
316
+ console.log(`${label}(${summary.unchanged} unchanged, ${summary.changed} changed, ${summary.added} added, ${summary.removed} removed)`);
317
+ }
318
+ console.log(`Index size: ${(summary.indexSizeBytes / 1024).toFixed(1)} KB`);
319
+ console.log(`Done in ${summary.elapsedMs}ms`);
320
+ }
374
321
  function reindex(global, label) {
375
322
  if (global) {
376
323
  const freshGlobal = loadGlobalConfig();
377
324
  if (freshGlobal) {
378
- const summary = buildIndex(freshGlobal.config, freshGlobal.configDir);
379
- console.log(`${label}Indexed ${summary.filesIndexed} files → ${summary.chunksCreated} chunks`);
325
+ const summary = buildAndPersistIndex(freshGlobal.config, freshGlobal.configDir);
326
+ printIndexSummary(summary, label);
380
327
  }
381
328
  }
382
329
  else {
383
330
  const { config: freshConfig, configDir: freshDir } = loadConfig();
384
- const summary = buildIndex(freshConfig, freshDir);
385
- console.log(`Indexed ${summary.filesIndexed} files → ${summary.chunksCreated} chunks`);
331
+ const summary = buildAndPersistIndex(freshConfig, freshDir);
332
+ printIndexSummary(summary, "");
386
333
  }
387
334
  }
388
335
  function formatSourceDescription(source) {
@@ -391,10 +338,34 @@ function formatSourceDescription(source) {
391
338
  return `${source.owner}/${source.repo}`;
392
339
  case "file":
393
340
  return source.url;
394
- case "crawl":
395
- return source.url;
396
341
  }
397
342
  }
343
+ function resolveIndexSources() {
344
+ const sources = [];
345
+ try {
346
+ const { config, configDir } = loadConfig();
347
+ const indexPath = join(configDir, config.index);
348
+ const { index, chunkMap } = loadPersistedIndex(indexPath, config);
349
+ sources.push({ label: "", index, chunkMap });
350
+ }
351
+ catch {
352
+ // Local index not available
353
+ }
354
+ const globalConfig = loadGlobalConfig();
355
+ if (globalConfig) {
356
+ const globalIndexPath = join(globalConfig.configDir, globalConfig.config.index);
357
+ if (existsSync(globalIndexPath)) {
358
+ try {
359
+ const { index, chunkMap } = loadPersistedIndex(globalIndexPath, globalConfig.config);
360
+ sources.push({ label: "[global] ", index, chunkMap });
361
+ }
362
+ catch {
363
+ // Global index failed to load
364
+ }
365
+ }
366
+ }
367
+ return sources;
368
+ }
398
369
  function formatResults(results) {
399
370
  results.forEach((r, i) => {
400
371
  console.log(`# [${i + 1}] ${r.file}:${r.lines[0]}-${r.lines[1]}`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,19 @@
1
1
  import type { Chunk, RefdocsConfig, IndexSummary } from "./types.js";
2
2
  import type MiniSearch from "minisearch";
3
3
  export declare function findMarkdownFiles(dirs: string[], baseDir: string): string[];
4
- export declare function buildIndex(config: RefdocsConfig, configDir: string): IndexSummary;
4
+ export declare function hashFileContent(content: string): string;
5
+ export declare function hashConfig(config: RefdocsConfig): string;
6
+ export interface BuildIndexResult {
7
+ summary: IndexSummary;
8
+ serialized: string;
9
+ }
10
+ export declare function buildIndex(config: RefdocsConfig, configDir: string): BuildIndexResult;
11
+ export declare function buildAndPersistIndex(config: RefdocsConfig, configDir: string, options?: {
12
+ force?: boolean;
13
+ }): IndexSummary;
5
14
  export declare function loadPersistedIndex(indexPath: string, config: RefdocsConfig): {
6
15
  index: MiniSearch<Chunk>;
7
16
  chunks: Chunk[];
17
+ chunkMap: Map<string, Chunk>;
8
18
  };
9
19
  //# sourceMappingURL=indexer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/indexer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGrE,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;AAEzC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAsB3E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CA4BjF;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,GACpB;IAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAA;CAAE,CAM/C"}
1
+ {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/indexer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGrE,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;AAEzC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAsB3E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAOxD;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAiCrF;AAmGD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5B,YAAY,CA0Bd;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,GACpB;IAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAAE,CAM7E"}
@@ -1,5 +1,6 @@
1
1
  import { readFileSync, writeFileSync, existsSync, readdirSync, statSync } from "node:fs";
2
2
  import { join, relative } from "node:path";
3
+ import { createHash } from "node:crypto";
3
4
  import { chunkMarkdown } from "./chunker.js";
4
5
  import { createSearchIndex, indexChunks, serializeIndex, loadIndex as loadSearchIndex } from "./search.js";
5
6
  export function findMarkdownFiles(dirs, baseDir) {
@@ -24,12 +25,25 @@ export function findMarkdownFiles(dirs, baseDir) {
24
25
  }
25
26
  return [...new Set(files)].sort();
26
27
  }
28
+ export function hashFileContent(content) {
29
+ return createHash("sha256").update(content).digest("hex");
30
+ }
31
+ export function hashConfig(config) {
32
+ const relevant = {
33
+ chunkMaxTokens: config.chunkMaxTokens,
34
+ chunkMinTokens: config.chunkMinTokens,
35
+ boostFields: config.boostFields,
36
+ };
37
+ return createHash("sha256").update(JSON.stringify(relevant)).digest("hex");
38
+ }
27
39
  export function buildIndex(config, configDir) {
28
40
  const start = Date.now();
29
41
  const files = findMarkdownFiles(config.paths, configDir);
30
42
  const allChunks = [];
43
+ const fileHashes = {};
31
44
  for (const file of files) {
32
45
  const content = readFileSync(join(configDir, file), "utf-8");
46
+ fileHashes[file] = hashFileContent(content);
33
47
  const chunks = chunkMarkdown(content, file, {
34
48
  maxTokens: config.chunkMaxTokens,
35
49
  minTokens: config.chunkMinTokens,
@@ -38,16 +52,124 @@ export function buildIndex(config, configDir) {
38
52
  }
39
53
  const index = createSearchIndex(config);
40
54
  indexChunks(index, allChunks);
41
- const serialized = serializeIndex(index, allChunks);
42
- const indexPath = join(configDir, config.index);
43
- writeFileSync(indexPath, serialized, "utf-8");
55
+ const serialized = serializeIndex(index, allChunks, {
56
+ fileHashes,
57
+ configHash: hashConfig(config),
58
+ });
44
59
  return {
45
- filesIndexed: files.length,
46
- chunksCreated: allChunks.length,
47
- indexSizeBytes: Buffer.byteLength(serialized, "utf-8"),
48
- elapsedMs: Date.now() - start,
60
+ summary: {
61
+ filesIndexed: files.length,
62
+ chunksCreated: allChunks.length,
63
+ indexSizeBytes: Buffer.byteLength(serialized, "utf-8"),
64
+ elapsedMs: Date.now() - start,
65
+ },
66
+ serialized,
49
67
  };
50
68
  }
69
+ function buildIncrementalIndex(config, configDir, existingIndex, existingChunks, oldFileHashes) {
70
+ const start = Date.now();
71
+ const files = findMarkdownFiles(config.paths, configDir);
72
+ const currentFiles = new Set(files);
73
+ const newFileHashes = {};
74
+ // Hash all current files
75
+ const fileContents = new Map();
76
+ for (const file of files) {
77
+ const content = readFileSync(join(configDir, file), "utf-8");
78
+ newFileHashes[file] = hashFileContent(content);
79
+ fileContents.set(file, content);
80
+ }
81
+ // Classify files
82
+ const unchangedFiles = new Set();
83
+ const changedFiles = new Set();
84
+ const addedFiles = new Set();
85
+ const deletedFiles = new Set();
86
+ for (const file of files) {
87
+ if (!(file in oldFileHashes)) {
88
+ addedFiles.add(file);
89
+ }
90
+ else if (oldFileHashes[file] !== newFileHashes[file]) {
91
+ changedFiles.add(file);
92
+ }
93
+ else {
94
+ unchangedFiles.add(file);
95
+ }
96
+ }
97
+ for (const file of Object.keys(oldFileHashes)) {
98
+ if (!currentFiles.has(file)) {
99
+ deletedFiles.add(file);
100
+ }
101
+ }
102
+ // Discard chunks for changed + deleted files
103
+ const filesToRemove = new Set([...changedFiles, ...deletedFiles]);
104
+ const idsToDiscard = [];
105
+ const keptChunks = [];
106
+ for (const chunk of existingChunks) {
107
+ if (filesToRemove.has(chunk.file)) {
108
+ idsToDiscard.push(chunk.id);
109
+ }
110
+ else {
111
+ keptChunks.push(chunk);
112
+ }
113
+ }
114
+ if (idsToDiscard.length > 0) {
115
+ existingIndex.discardAll(idsToDiscard);
116
+ }
117
+ // Chunk new + changed files
118
+ const newChunks = [];
119
+ const filesToChunk = [...changedFiles, ...addedFiles];
120
+ for (const file of filesToChunk) {
121
+ const content = fileContents.get(file);
122
+ const chunks = chunkMarkdown(content, file, {
123
+ maxTokens: config.chunkMaxTokens,
124
+ minTokens: config.chunkMinTokens,
125
+ });
126
+ newChunks.push(...chunks);
127
+ }
128
+ if (newChunks.length > 0) {
129
+ existingIndex.addAll(newChunks);
130
+ }
131
+ const allChunks = [...keptChunks, ...newChunks];
132
+ const serialized = serializeIndex(existingIndex, allChunks, {
133
+ fileHashes: newFileHashes,
134
+ configHash: hashConfig(config),
135
+ });
136
+ return {
137
+ summary: {
138
+ filesIndexed: files.length,
139
+ chunksCreated: allChunks.length,
140
+ indexSizeBytes: Buffer.byteLength(serialized, "utf-8"),
141
+ elapsedMs: Date.now() - start,
142
+ unchanged: unchangedFiles.size,
143
+ added: addedFiles.size,
144
+ changed: changedFiles.size,
145
+ removed: deletedFiles.size,
146
+ },
147
+ serialized,
148
+ };
149
+ }
150
+ export function buildAndPersistIndex(config, configDir, options) {
151
+ const indexPath = join(configDir, config.index);
152
+ const force = options?.force ?? false;
153
+ // Try incremental build if not forced and index exists
154
+ if (!force && existsSync(indexPath)) {
155
+ try {
156
+ const json = readFileSync(indexPath, "utf-8");
157
+ const { index, chunks, fileHashes, configHash } = loadSearchIndex(json, config);
158
+ // Config change means we need a full rebuild
159
+ if (configHash === hashConfig(config)) {
160
+ const { summary, serialized } = buildIncrementalIndex(config, configDir, index, chunks, fileHashes);
161
+ writeFileSync(indexPath, serialized, "utf-8");
162
+ return summary;
163
+ }
164
+ }
165
+ catch {
166
+ // Version mismatch, corrupted index, etc. — fall through to full rebuild
167
+ }
168
+ }
169
+ const { summary, serialized } = buildIndex(config, configDir);
170
+ writeFileSync(indexPath, serialized, "utf-8");
171
+ return summary;
172
+ }
51
173
  export function loadPersistedIndex(indexPath, config) {
52
174
  if (!existsSync(indexPath)) {
53
175
  throw new Error("Index not found. Run `refdocs index` first.");
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/indexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/indexer.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,25 @@
1
1
  import MiniSearch from "minisearch";
2
2
  import type { Chunk, RefdocsConfig, SearchOptions, SearchResult } from "./types.js";
3
3
  export declare function createSearchIndex(config: RefdocsConfig): MiniSearch<Chunk>;
4
+ export declare function buildChunkMap(chunks: Chunk[]): Map<string, Chunk>;
4
5
  export declare function indexChunks(index: MiniSearch<Chunk>, chunks: Chunk[]): void;
5
- export declare function serializeIndex(index: MiniSearch<Chunk>, chunks: Chunk[]): string;
6
+ export declare function serializeIndex(index: MiniSearch<Chunk>, chunks: Chunk[], options?: {
7
+ fileHashes?: Record<string, string>;
8
+ configHash?: string;
9
+ }): string;
6
10
  export declare function loadIndex(json: string, config: RefdocsConfig): {
7
11
  index: MiniSearch<Chunk>;
8
12
  chunks: Chunk[];
13
+ chunkMap: Map<string, Chunk>;
14
+ fileHashes: Record<string, string>;
15
+ configHash: string;
9
16
  };
10
- export declare function search(index: MiniSearch<Chunk>, query: string, options: SearchOptions): SearchResult[];
17
+ export declare function search(index: MiniSearch<Chunk>, chunkMap: Map<string, Chunk>, query: string, options: SearchOptions): SearchResult[];
18
+ export interface IndexSource {
19
+ label: string;
20
+ index: MiniSearch<Chunk>;
21
+ chunkMap: Map<string, Chunk>;
22
+ }
23
+ export declare function searchAllIndexes(sources: IndexSource[], query: string, options: SearchOptions): SearchResult[];
11
24
  export declare function mergeSearchResults(local: SearchResult[], global: SearchResult[], maxResults: number): SearchResult[];
12
25
  //# sourceMappingURL=search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/search.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAWpF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAU1E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAE3E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAQhF;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,GACpB;IAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAA;CAAE,CAoB/C;AAED,wBAAgB,MAAM,CACpB,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,aAAa,GACrB,YAAY,EAAE,CAqBhB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,EAAE,EACrB,MAAM,EAAE,YAAY,EAAE,EACtB,UAAU,EAAE,MAAM,GACjB,YAAY,EAAE,CAIhB"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/search.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAapF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAS1E;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAMjE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAE3E;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EACxB,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACrE,MAAM,CAUR;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,GACpB;IACD,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;CACpB,CA0BA;AAED,wBAAgB,MAAM,CACpB,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EACxB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAC5B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,aAAa,GACrB,YAAY,EAAE,CA8BhB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC9B;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,aAAa,GACrB,YAAY,EAAE,CAkBhB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,EAAE,EACrB,MAAM,EAAE,YAAY,EAAE,EACtB,UAAU,EAAE,MAAM,GACjB,YAAY,EAAE,CAIhB"}