@jcode.labs/ragmir 2.9.3 → 2.11.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 (82) hide show
  1. package/README.md +16 -4
  2. package/dist/access-log.d.ts +9 -1
  3. package/dist/access-log.d.ts.map +1 -1
  4. package/dist/access-log.js +82 -3
  5. package/dist/access-log.js.map +1 -1
  6. package/dist/chunk-stats.d.ts +8 -0
  7. package/dist/chunk-stats.d.ts.map +1 -0
  8. package/dist/chunk-stats.js +31 -0
  9. package/dist/chunk-stats.js.map +1 -0
  10. package/dist/chunking.d.ts +1 -0
  11. package/dist/chunking.d.ts.map +1 -1
  12. package/dist/chunking.js +58 -31
  13. package/dist/chunking.js.map +1 -1
  14. package/dist/cli.js +104 -5
  15. package/dist/cli.js.map +1 -1
  16. package/dist/config.d.ts.map +1 -1
  17. package/dist/config.js +16 -0
  18. package/dist/config.js.map +1 -1
  19. package/dist/context-resources.d.ts +4 -0
  20. package/dist/context-resources.d.ts.map +1 -0
  21. package/dist/context-resources.js +87 -0
  22. package/dist/context-resources.js.map +1 -0
  23. package/dist/defaults.d.ts.map +1 -1
  24. package/dist/defaults.js +1 -0
  25. package/dist/defaults.js.map +1 -1
  26. package/dist/document-structure.d.ts +13 -0
  27. package/dist/document-structure.d.ts.map +1 -0
  28. package/dist/document-structure.js +331 -0
  29. package/dist/document-structure.js.map +1 -0
  30. package/dist/evaluate.d.ts.map +1 -1
  31. package/dist/evaluate.js +8 -0
  32. package/dist/evaluate.js.map +1 -1
  33. package/dist/index-diagnostics.d.ts +1 -1
  34. package/dist/index-diagnostics.js +1 -1
  35. package/dist/index-policy.js +1 -1
  36. package/dist/index.d.ts +5 -2
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +4 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/ingest.d.ts.map +1 -1
  41. package/dist/ingest.js +10 -3
  42. package/dist/ingest.js.map +1 -1
  43. package/dist/knowledge-bases.d.ts +4 -0
  44. package/dist/knowledge-bases.d.ts.map +1 -0
  45. package/dist/knowledge-bases.js +113 -0
  46. package/dist/knowledge-bases.js.map +1 -0
  47. package/dist/mcp-output.d.ts +60 -0
  48. package/dist/mcp-output.d.ts.map +1 -0
  49. package/dist/mcp-output.js +270 -0
  50. package/dist/mcp-output.js.map +1 -0
  51. package/dist/mcp.d.ts +3 -1
  52. package/dist/mcp.d.ts.map +1 -1
  53. package/dist/mcp.js +136 -18
  54. package/dist/mcp.js.map +1 -1
  55. package/dist/preview.d.ts +3 -0
  56. package/dist/preview.d.ts.map +1 -0
  57. package/dist/preview.js +115 -0
  58. package/dist/preview.js.map +1 -0
  59. package/dist/query.d.ts +2 -1
  60. package/dist/query.d.ts.map +1 -1
  61. package/dist/query.js +201 -28
  62. package/dist/query.js.map +1 -1
  63. package/dist/research.d.ts.map +1 -1
  64. package/dist/research.js +5 -0
  65. package/dist/research.js.map +1 -1
  66. package/dist/security.d.ts.map +1 -1
  67. package/dist/security.js +1 -0
  68. package/dist/security.js.map +1 -1
  69. package/dist/setup.js +1 -1
  70. package/dist/skill.d.ts.map +1 -1
  71. package/dist/skill.js +46 -4
  72. package/dist/skill.js.map +1 -1
  73. package/dist/store.js +2 -2
  74. package/dist/store.js.map +1 -1
  75. package/dist/types.d.ts +171 -0
  76. package/dist/types.d.ts.map +1 -1
  77. package/dist/version.d.ts +1 -1
  78. package/dist/version.d.ts.map +1 -1
  79. package/dist/version.js +1 -1
  80. package/dist/version.js.map +1 -1
  81. package/package.json +3 -3
  82. package/skills/ragmir/SKILL.md +34 -0
@@ -0,0 +1,115 @@
1
+ import { summarizeChunkStats } from "./chunk-stats.js";
2
+ import { chunkDocument } from "./chunking.js";
3
+ import { loadConfig } from "./config.js";
4
+ import { inventorySourceFiles } from "./files.js";
5
+ import { parseFile } from "./parsing.js";
6
+ import { redactText, totalRedactions } from "./redaction.js";
7
+ const DEFAULT_MAX_FILES = 5;
8
+ const DEFAULT_MAX_CHUNKS_PER_FILE = 5;
9
+ const MAX_PREVIEW_FILES = 25;
10
+ const MAX_PREVIEW_CHUNKS_PER_FILE = 50;
11
+ export async function previewChunks(options = {}) {
12
+ const config = await loadConfig(String(options.cwd ?? process.cwd()));
13
+ const inventory = await inventorySourceFiles(config);
14
+ const requestedPaths = normalizePathPrefixes(options.paths);
15
+ const maxFiles = boundedPositiveInteger(options.maxFiles, DEFAULT_MAX_FILES, MAX_PREVIEW_FILES, "maxFiles");
16
+ const maxChunksPerFile = boundedPositiveInteger(options.maxChunksPerFile, DEFAULT_MAX_CHUNKS_PER_FILE, MAX_PREVIEW_CHUNKS_PER_FILE, "maxChunksPerFile");
17
+ const matchingFiles = inventory.supportedFiles
18
+ .filter((file) => requestedPaths.length === 0 || matchesAnyPath(file, requestedPaths))
19
+ .sort((left, right) => left.relativePath.localeCompare(right.relativePath));
20
+ const selectedFiles = matchingFiles.slice(0, maxFiles);
21
+ const unmatchedPaths = requestedPaths.filter((prefix) => !inventory.supportedFiles.some((file) => matchesPath(file.relativePath, prefix)));
22
+ const previews = await Promise.all(selectedFiles.map((file) => previewFile(file, config, maxChunksPerFile)));
23
+ const files = [];
24
+ const errors = [];
25
+ for (const preview of previews) {
26
+ if ("error" in preview) {
27
+ errors.push(preview.error);
28
+ }
29
+ else {
30
+ files.push(preview.file);
31
+ }
32
+ }
33
+ return {
34
+ chunkSize: config.chunkSize,
35
+ chunkOverlap: config.chunkOverlap,
36
+ requestedPaths,
37
+ unmatchedPaths,
38
+ matchedFiles: matchingFiles.length,
39
+ omittedFiles: Math.max(0, matchingFiles.length - selectedFiles.length),
40
+ files,
41
+ errors,
42
+ };
43
+ }
44
+ async function previewFile(file, config, maxChunksPerFile) {
45
+ try {
46
+ const parsed = await parseFile(file, config);
47
+ const redacted = redactText(parsed.text, config);
48
+ const chunks = chunkDocument({ ...parsed, text: redacted.text }, config.chunkSize, config.chunkOverlap);
49
+ return {
50
+ file: {
51
+ source: file.source,
52
+ relativePath: file.relativePath,
53
+ extension: file.extension,
54
+ bytes: file.bytes,
55
+ parsedChars: redacted.text.length,
56
+ redactions: totalRedactions(redacted.counts),
57
+ chunkStats: summarizeChunkStats(chunks),
58
+ chunks: chunks.slice(0, maxChunksPerFile).map(previewChunk),
59
+ omittedChunks: Math.max(0, chunks.length - maxChunksPerFile),
60
+ },
61
+ };
62
+ }
63
+ catch (error) {
64
+ return {
65
+ error: {
66
+ path: file.relativePath,
67
+ message: error instanceof Error ? error.message : String(error),
68
+ },
69
+ };
70
+ }
71
+ }
72
+ function previewChunk(chunk) {
73
+ return {
74
+ chunkIndex: chunk.chunkIndex,
75
+ contextPath: chunk.contextPath,
76
+ citation: citationForChunk(chunk),
77
+ text: chunk.text,
78
+ charStart: chunk.charStart,
79
+ charEnd: chunk.charEnd,
80
+ lineStart: chunk.lineStart,
81
+ lineEnd: chunk.lineEnd,
82
+ pageStart: chunk.pageStart ?? null,
83
+ pageEnd: chunk.pageEnd ?? null,
84
+ };
85
+ }
86
+ function citationForChunk(chunk) {
87
+ const pageSegment = chunk.pageStart === undefined
88
+ ? ""
89
+ : `:p${chunk.pageStart}${chunk.pageEnd !== undefined && chunk.pageEnd !== chunk.pageStart ? `-p${chunk.pageEnd}` : ""}`;
90
+ return `${chunk.relativePath}${pageSegment}:L${chunk.lineStart}-L${chunk.lineEnd}#${chunk.chunkIndex}`;
91
+ }
92
+ function matchesAnyPath(file, prefixes) {
93
+ return prefixes.some((prefix) => matchesPath(file.relativePath, prefix));
94
+ }
95
+ function matchesPath(relativePath, prefix) {
96
+ return relativePath === prefix || relativePath.startsWith(`${prefix}/`);
97
+ }
98
+ function normalizePathPrefixes(prefixes) {
99
+ return [
100
+ ...new Set((prefixes ?? [])
101
+ .map((prefix) => prefix.trim().replaceAll("\\", "/").replace(/^\.\//u, ""))
102
+ .map((prefix) => prefix.replace(/\/+$/u, ""))
103
+ .filter(Boolean)),
104
+ ];
105
+ }
106
+ function boundedPositiveInteger(value, fallback, maximum, name) {
107
+ if (value === undefined) {
108
+ return fallback;
109
+ }
110
+ if (!Number.isInteger(value) || value <= 0) {
111
+ throw new Error(`${name} must be a positive integer.`);
112
+ }
113
+ return Math.min(value, maximum);
114
+ }
115
+ //# sourceMappingURL=preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"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"}
package/dist/query.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import type { AskResult, RetrievalProfile, SearchOptions, SearchResult } from "./types.js";
1
+ import type { AskResult, ExpandCitationOptions, ExpandedCitation, RetrievalProfile, SearchOptions, SearchResult } from "./types.js";
2
2
  export declare function search(query: string, options?: SearchOptions): Promise<SearchResult[]>;
3
3
  export declare function vectorCandidateLimit(topK: number, profile?: RetrievalProfile): number;
4
4
  export declare function ask(query: string, options?: SearchOptions): Promise<AskResult>;
5
+ export declare function expandCitation(citation: string, options?: ExpandCitationOptions): Promise<ExpandedCitation>;
5
6
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAEhB,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAA;AAkEnB,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA2DhG;AAwFD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAA6B,GAAG,MAAM,CAGjG;AAED,wBAAsB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,CAyBxF"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAEhB,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAA;AA4EnB,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAsFhG;AA2HD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAA6B,GAAG,MAAM,CAGjG;AAED,wBAAsB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,CAyBxF;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,gBAAgB,CAAC,CA4D3B"}
package/dist/query.js CHANGED
@@ -28,10 +28,14 @@ const RRF_LEXICAL_WEIGHT = 1;
28
28
  const BM25_K1 = 1.2;
29
29
  const BM25_B = 0.75;
30
30
  const MAX_CONTEXT_RADIUS = 3;
31
+ const MIN_FUZZY_TOKEN_LENGTH = 7;
32
+ const MIN_TRIGRAM_DICE_SIMILARITY = 0.5;
31
33
  const SEARCH_COLUMNS = [
32
34
  "source",
33
35
  "relativePath",
34
36
  "chunkIndex",
37
+ "contextPath",
38
+ "searchText",
35
39
  "text",
36
40
  "charStart",
37
41
  "charEnd",
@@ -48,44 +52,66 @@ export async function search(query, options = {}) {
48
52
  if (!table) {
49
53
  return [];
50
54
  }
55
+ await assertIndexFreshness(config);
51
56
  const sanitized = sanitizeRetrievalQuery(query);
52
57
  const queryTokens = tokenize(sanitized.query);
53
58
  if (!sanitized.query || queryTokens.length === 0) {
54
59
  return [];
55
60
  }
56
61
  const topK = options.topK ?? config.topK;
57
- const pathPredicate = sourcePathPredicate(options.includePaths, options.excludePaths);
62
+ const retrievalPredicate = searchPredicate(options.includePaths, options.excludePaths, options.contextPaths);
58
63
  const [vector, textRows] = await Promise.all([
59
64
  embedText(sanitized.query, config),
60
- lexicalCandidateRows(table, sanitized.query, config.hybridTextScanLimit, pathPredicate),
65
+ lexicalCandidateRows(table, sanitized.query, config.hybridTextScanLimit, retrievalPredicate),
61
66
  ]);
62
67
  await assertVectorIndexCompatibility(config, vector.length);
63
68
  const vectorQuery = table.vectorSearch(vector).select(VECTOR_SEARCH_COLUMNS);
64
- const vectorRows = (await (pathPredicate ? vectorQuery.where(pathPredicate) : vectorQuery)
69
+ const vectorRows = (await (retrievalPredicate
70
+ ? vectorQuery.where(retrievalPredicate)
71
+ : vectorQuery)
65
72
  .limit(vectorCandidateLimit(topK, config.retrievalProfile))
66
73
  .toArray());
67
74
  const rankedRows = rankHybridRows(sanitized.query, vectorRows, textRows);
68
75
  const relevantRows = config.embeddingProvider === "local-hash"
69
- ? rankedRows.filter((ranked) => hasLexicalOverlap(queryTokens, ranked.row.text))
76
+ ? rankedRows.filter((ranked) => hasLexicalOverlap(queryTokens, ranked.row.searchText))
70
77
  : rankedRows;
71
78
  const rows = diversifyRows(relevantRows, topK, config.retrievalProfile);
72
79
  const defaultContextRadius = config.retrievalProfile === "quality" ? 1 : 0;
73
80
  const contextByRow = await contextChunksByRow(table, rows, options.contextRadius ?? defaultContextRadius);
74
- const results = rows.map((row) => ({
75
- source: row.row.source,
76
- relativePath: row.row.relativePath,
77
- chunkIndex: row.row.chunkIndex,
78
- citation: citationForRow(row.row),
79
- text: row.row.text,
80
- distance: typeof row.row._distance === "number" ? row.row._distance : null,
81
- charStart: nullableNumber(row.row.charStart),
82
- charEnd: nullableNumber(row.row.charEnd),
83
- lineStart: nullableNumber(row.row.lineStart),
84
- lineEnd: nullableNumber(row.row.lineEnd),
85
- pageStart: nullablePageNumber(row.row.pageStart),
86
- pageEnd: nullablePageNumber(row.row.pageEnd),
87
- context: contextByRow.get(rowKey(row.row)) ?? [],
88
- }));
81
+ const results = rows.map((row) => {
82
+ const vectorDistance = typeof row.row._distance === "number" ? row.row._distance : null;
83
+ return {
84
+ source: row.row.source,
85
+ relativePath: row.row.relativePath,
86
+ chunkIndex: row.row.chunkIndex,
87
+ contextPath: row.row.contextPath,
88
+ citation: citationForRow(row.row),
89
+ text: row.row.text,
90
+ distance: vectorDistance,
91
+ charStart: nullableNumber(row.row.charStart),
92
+ charEnd: nullableNumber(row.row.charEnd),
93
+ lineStart: nullableNumber(row.row.lineStart),
94
+ lineEnd: nullableNumber(row.row.lineEnd),
95
+ pageStart: nullablePageNumber(row.row.pageStart),
96
+ pageEnd: nullablePageNumber(row.row.pageEnd),
97
+ context: contextByRow.get(rowKey(row.row)) ?? [],
98
+ ...(options.explain
99
+ ? {
100
+ score: {
101
+ fusion: "rrf",
102
+ combinedScore: row.combinedScore,
103
+ vectorContribution: row.vectorScore,
104
+ lexicalContribution: row.lexicalScore,
105
+ vectorRank: row.vectorRank,
106
+ lexicalRank: row.lexicalRank,
107
+ vectorDistance,
108
+ lexicalBackendScore: row.lexicalBackendScore,
109
+ matchedTerms: row.matchedTerms,
110
+ },
111
+ }
112
+ : {}),
113
+ };
114
+ });
89
115
  await recordAccess(config, {
90
116
  action: "search",
91
117
  query: sanitized.query,
@@ -98,7 +124,7 @@ function diversifyRows(rows, topK, profile) {
98
124
  const uniqueRows = [];
99
125
  const textIndexes = new Map();
100
126
  for (const row of rows) {
101
- const textKey = row.row.text.replace(/\s+/gu, " ").trim().toLowerCase();
127
+ const textKey = `${row.row.contextPath}\0${row.row.text.replace(/\s+/gu, " ").trim().toLowerCase()}`;
102
128
  const existingIndex = textIndexes.get(textKey);
103
129
  if (existingIndex === undefined) {
104
130
  textIndexes.set(textKey, uniqueRows.length);
@@ -149,10 +175,39 @@ function preferCanonicalPath(candidate, current) {
149
175
  }
150
176
  function hasLexicalOverlap(queryTokens, text) {
151
177
  const textTokens = tokenize(text);
152
- return queryTokens.some((queryToken) => textTokens.some((textToken) => queryToken === textToken ||
153
- (queryToken.length >= 4 &&
154
- textToken.length >= 4 &&
155
- sharedPrefixLength(queryToken, textToken) >= 4)));
178
+ return queryTokens.some((queryToken) => textTokens.some((textToken) => tokensAreLexicallyRelated(queryToken, textToken)));
179
+ }
180
+ function tokensAreLexicallyRelated(queryToken, textToken) {
181
+ if (queryToken === textToken) {
182
+ return true;
183
+ }
184
+ if (queryToken.length >= 4 &&
185
+ textToken.length >= 4 &&
186
+ sharedPrefixLength(queryToken, textToken) >= 4) {
187
+ return true;
188
+ }
189
+ if (queryToken.length < MIN_FUZZY_TOKEN_LENGTH ||
190
+ textToken.length < MIN_FUZZY_TOKEN_LENGTH ||
191
+ Math.abs(queryToken.length - textToken.length) > 1 ||
192
+ !/^[a-z0-9_-]+$/u.test(queryToken) ||
193
+ !/^[a-z0-9_-]+$/u.test(textToken)) {
194
+ return false;
195
+ }
196
+ return trigramDiceSimilarity(queryToken, textToken) >= MIN_TRIGRAM_DICE_SIMILARITY;
197
+ }
198
+ function trigramDiceSimilarity(left, right) {
199
+ const leftTrigrams = tokenTrigrams(left);
200
+ const rightTrigrams = tokenTrigrams(right);
201
+ let shared = 0;
202
+ for (const trigram of leftTrigrams) {
203
+ if (rightTrigrams.has(trigram)) {
204
+ shared += 1;
205
+ }
206
+ }
207
+ return (2 * shared) / (leftTrigrams.size + rightTrigrams.size);
208
+ }
209
+ function tokenTrigrams(token) {
210
+ return new Set(Array.from({ length: token.length - 2 }, (_value, index) => token.slice(index, index + 3)));
156
211
  }
157
212
  function sharedPrefixLength(left, right) {
158
213
  const limit = Math.min(left.length, right.length);
@@ -189,6 +244,60 @@ export async function ask(query, options = {}) {
189
244
  staleWarning,
190
245
  };
191
246
  }
247
+ export async function expandCitation(citation, options = {}) {
248
+ const requestedCitation = citation.trim();
249
+ const target = parseCitationTarget(requestedCitation);
250
+ const contextRadius = normalizeContextRadius(options.contextRadius);
251
+ const config = await loadConfig(String(options.cwd ?? process.cwd()));
252
+ const table = await openRowsTable(config);
253
+ if (!table) {
254
+ return {
255
+ requestedCitation,
256
+ found: false,
257
+ relativePath: target.relativePath,
258
+ chunkIndex: target.chunkIndex,
259
+ contextRadius,
260
+ passages: [],
261
+ };
262
+ }
263
+ const manifest = await readIndexManifest(config);
264
+ if (!manifest) {
265
+ throw new Error("Index manifest is missing. Rebuild with `rgr ingest --rebuild` before expanding citations.");
266
+ }
267
+ const freshnessWarning = await getIndexFreshnessWarning(config);
268
+ if (freshnessWarning) {
269
+ throw new Error(freshnessWarning);
270
+ }
271
+ const minimumChunkIndex = Math.max(0, target.chunkIndex - contextRadius);
272
+ const maximumChunkIndex = target.chunkIndex + contextRadius;
273
+ const rows = (await table
274
+ .query()
275
+ .select(SEARCH_COLUMNS)
276
+ .where(`relativePath = ${sqlString(target.relativePath)} AND chunkIndex >= ${minimumChunkIndex} AND chunkIndex <= ${maximumChunkIndex}`)
277
+ .toArray());
278
+ const targetRow = rows.find((row) => row.chunkIndex === target.chunkIndex);
279
+ if (!targetRow) {
280
+ return {
281
+ requestedCitation,
282
+ found: false,
283
+ relativePath: target.relativePath,
284
+ chunkIndex: target.chunkIndex,
285
+ contextRadius,
286
+ passages: [],
287
+ };
288
+ }
289
+ if (citationForRow(targetRow) !== requestedCitation) {
290
+ throw new Error("Citation coordinates do not match the indexed passage.");
291
+ }
292
+ return {
293
+ requestedCitation,
294
+ found: true,
295
+ relativePath: target.relativePath,
296
+ chunkIndex: target.chunkIndex,
297
+ contextRadius,
298
+ passages: rows.sort(compareChunkRows).map(contextChunkForRow),
299
+ };
300
+ }
192
301
  function retrievalOnlyAnswer(sources) {
193
302
  const snippets = sources
194
303
  .map((source, index) => {
@@ -206,7 +315,7 @@ async function lexicalCandidateRows(table, query, limit, pathPredicate) {
206
315
  const ftsQuery = lexicalQuery(query);
207
316
  if (ftsQuery) {
208
317
  try {
209
- const searchQuery = table.search(ftsQuery, "fts", "text").select(FTS_SEARCH_COLUMNS);
318
+ const searchQuery = table.search(ftsQuery, "fts", "searchText").select(FTS_SEARCH_COLUMNS);
210
319
  return (await (pathPredicate ? searchQuery.where(pathPredicate) : searchQuery)
211
320
  .limit(limit)
212
321
  .toArray());
@@ -221,9 +330,10 @@ async function lexicalCandidateRows(table, query, limit, pathPredicate) {
221
330
  .limit(limit)
222
331
  .toArray());
223
332
  }
224
- function sourcePathPredicate(includePaths, excludePaths) {
333
+ function searchPredicate(includePaths, excludePaths, contextPaths) {
225
334
  const includes = normalizePathPrefixes(includePaths);
226
335
  const excludes = normalizePathPrefixes(excludePaths);
336
+ const contexts = normalizeContextPaths(contextPaths);
227
337
  const clauses = [];
228
338
  if (includes.length > 0) {
229
339
  clauses.push(`(${includes.map(pathPrefixPredicate).join(" OR ")})`);
@@ -231,6 +341,9 @@ function sourcePathPredicate(includePaths, excludePaths) {
231
341
  if (excludes.length > 0) {
232
342
  clauses.push(`NOT (${excludes.map(pathPrefixPredicate).join(" OR ")})`);
233
343
  }
344
+ if (contexts.length > 0) {
345
+ clauses.push(`(${contexts.map(contextPathPredicate).join(" OR ")})`);
346
+ }
234
347
  return clauses.length === 0 ? null : clauses.join(" AND ");
235
348
  }
236
349
  function normalizePathPrefixes(prefixes) {
@@ -244,6 +357,17 @@ function normalizePathPrefixes(prefixes) {
244
357
  function pathPrefixPredicate(prefix) {
245
358
  return `(relativePath = ${sqlString(prefix)} OR starts_with(relativePath, ${sqlString(`${prefix}/`)}))`;
246
359
  }
360
+ function normalizeContextPaths(contextPaths) {
361
+ return [...new Set((contextPaths ?? []).map((value) => value.trim()).filter(Boolean))];
362
+ }
363
+ function contextPathPredicate(prefix) {
364
+ return [
365
+ `contextPath = ${sqlString(prefix)}`,
366
+ `starts_with(contextPath, ${sqlString(`${prefix} > `)})`,
367
+ `starts_with(contextPath, ${sqlString(`${prefix}.`)})`,
368
+ `starts_with(contextPath, ${sqlString(`${prefix}[`)})`,
369
+ ].join(" OR ");
370
+ }
247
371
  async function contextChunksByRow(table, rows, requestedRadius) {
248
372
  const radius = Math.min(MAX_CONTEXT_RADIUS, Math.max(0, requestedRadius));
249
373
  if (radius === 0 || rows.length === 0) {
@@ -296,6 +420,7 @@ function answerText(source) {
296
420
  function contextChunkForRow(row) {
297
421
  return {
298
422
  chunkIndex: row.chunkIndex,
423
+ contextPath: row.contextPath,
299
424
  text: row.text,
300
425
  charStart: nullableNumber(row.charStart),
301
426
  charEnd: nullableNumber(row.charEnd),
@@ -341,6 +466,7 @@ function rankHybridRows(query, vectorRows, textRows) {
341
466
  lexicalRanked.forEach(([key], index) => {
342
467
  lexicalRanks.set(key, index);
343
468
  });
469
+ const lexicalScores = new Map(lexicalRanked);
344
470
  return rows
345
471
  .map((row) => {
346
472
  const key = rowKey(row);
@@ -357,7 +483,16 @@ function rankHybridRows(query, vectorRows, textRows) {
357
483
  lexicalScore = RRF_LEXICAL_WEIGHT / (RRF_K + lexicalRank);
358
484
  combinedScore += lexicalScore;
359
485
  }
360
- return { row, vectorScore, lexicalScore, combinedScore };
486
+ return {
487
+ row,
488
+ vectorScore,
489
+ lexicalScore,
490
+ combinedScore,
491
+ vectorRank: vectorRank === undefined ? null : vectorRank + 1,
492
+ lexicalRank: lexicalRank === undefined ? null : lexicalRank + 1,
493
+ lexicalBackendScore: lexicalScores.get(key) ?? null,
494
+ matchedTerms: matchedQueryTerms(queryTokens, row.searchText),
495
+ };
361
496
  })
362
497
  .filter((ranked) => ranked.combinedScore > 0)
363
498
  .sort((a, b) => {
@@ -372,6 +507,10 @@ function rankHybridRows(query, vectorRows, textRows) {
372
507
  return (a.row.relativePath.localeCompare(b.row.relativePath) || a.row.chunkIndex - b.row.chunkIndex);
373
508
  });
374
509
  }
510
+ function matchedQueryTerms(queryTokens, text) {
511
+ const textTokens = tokenize(text);
512
+ return [...new Set(queryTokens)].filter((queryToken) => textTokens.some((textToken) => tokensAreLexicallyRelated(queryToken, textToken)));
513
+ }
375
514
  function mergeRows(vectorRows, textRows) {
376
515
  const rows = new Map();
377
516
  for (const row of textRows) {
@@ -398,7 +537,7 @@ function bm25Scores(queryTokens, rows) {
398
537
  }
399
538
  const uniqueQueryTokens = [...new Set(queryTokens)];
400
539
  const documents = rows.map((row) => {
401
- const tokens = tokenize(row.text);
540
+ const tokens = tokenize(row.searchText);
402
541
  const frequencies = new Map();
403
542
  for (const token of tokens) {
404
543
  frequencies.set(token, (frequencies.get(token) ?? 0) + 1);
@@ -433,9 +572,43 @@ function rowDistance(row) {
433
572
  ? row._distance
434
573
  : Number.POSITIVE_INFINITY;
435
574
  }
575
+ async function assertIndexFreshness(config) {
576
+ const manifest = await readIndexManifest(config);
577
+ if (!manifest) {
578
+ throw new Error("Index manifest is missing. Rebuild with `rgr ingest --rebuild` before searching.");
579
+ }
580
+ const freshnessWarning = await getIndexFreshnessWarning(config);
581
+ if (freshnessWarning) {
582
+ throw new Error(freshnessWarning);
583
+ }
584
+ }
436
585
  function rowKey(row) {
437
586
  return `${row.relativePath}\0${row.chunkIndex}`;
438
587
  }
588
+ function parseCitationTarget(citation) {
589
+ const match = /#(\d+)$/u.exec(citation);
590
+ const chunkIndexText = match?.[1];
591
+ if (!match || chunkIndexText === undefined) {
592
+ throw new Error("Citation must end with a Ragmir chunk suffix such as `#3`.");
593
+ }
594
+ const chunkIndex = Number.parseInt(chunkIndexText, 10);
595
+ let relativePath = citation.slice(0, match.index);
596
+ relativePath = relativePath.replace(/:L\d+-L\d+$/u, "");
597
+ relativePath = relativePath.replace(/:p\d+(?:-p\d+)?$/u, "");
598
+ if (!relativePath) {
599
+ throw new Error("Citation must include a source path before its chunk suffix.");
600
+ }
601
+ return { relativePath, chunkIndex };
602
+ }
603
+ function normalizeContextRadius(contextRadius) {
604
+ if (contextRadius === undefined) {
605
+ return 0;
606
+ }
607
+ if (!Number.isInteger(contextRadius) || contextRadius < 0) {
608
+ throw new Error("contextRadius must be a non-negative integer.");
609
+ }
610
+ return Math.min(contextRadius, MAX_CONTEXT_RADIUS);
611
+ }
439
612
  function citationForRow(row) {
440
613
  const lineStart = nullableNumber(row.lineStart);
441
614
  const lineEnd = nullableNumber(row.lineEnd);
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../src/research.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAEV,mBAAmB,EAEnB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAA;AAwDnB,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAmFzB;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,EAAE,EACvB,SAAS,SAAyB,GACjC,mBAAmB,EAAE,CAavB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG;IAChG,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACtE,CAiBA"}
1
+ {"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../src/research.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAEV,mBAAmB,EAEnB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAA;AAwDnB,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAoFzB;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,EAAE,EACvB,SAAS,SAAyB,GACjC,mBAAmB,EAAE,CAevB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG;IAChG,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACtE,CAkBA"}
package/dist/research.js CHANGED
@@ -83,6 +83,7 @@ export async function research(query, options = {}) {
83
83
  topK: perQueryTopK,
84
84
  ...(options.includePaths ? { includePaths: options.includePaths } : {}),
85
85
  ...(options.excludePaths ? { excludePaths: options.excludePaths } : {}),
86
+ ...(options.contextPaths ? { contextPaths: options.contextPaths } : {}),
86
87
  }),
87
88
  })));
88
89
  const evidence = mergeEvidence(searchResults).slice(0, topK);
@@ -146,6 +147,7 @@ export function compactSearchResults(results, maxLength = COMPACT_SNIPPET_LENGTH
146
147
  source: result.source,
147
148
  relativePath: result.relativePath,
148
149
  chunkIndex: result.chunkIndex,
150
+ contextPath: result.contextPath,
149
151
  citation: result.citation,
150
152
  snippet: compactText(result.text, maxLength),
151
153
  distance: result.distance,
@@ -153,6 +155,7 @@ export function compactSearchResults(results, maxLength = COMPACT_SNIPPET_LENGTH
153
155
  lineEnd: result.lineEnd,
154
156
  pageStart: result.pageStart,
155
157
  pageEnd: result.pageEnd,
158
+ ...(result.score === undefined ? {} : { score: result.score }),
156
159
  }));
157
160
  }
158
161
  export function compactResearchReport(report) {
@@ -162,6 +165,7 @@ export function compactResearchReport(report) {
162
165
  source: evidence.source,
163
166
  relativePath: evidence.relativePath,
164
167
  chunkIndex: evidence.chunkIndex,
168
+ contextPath: evidence.contextPath,
165
169
  citation: evidence.citation,
166
170
  snippet: compactText(evidence.text),
167
171
  distance: evidence.distance,
@@ -198,6 +202,7 @@ function mergeEvidence(searchResults) {
198
202
  source: result.source,
199
203
  relativePath: result.relativePath,
200
204
  chunkIndex: result.chunkIndex,
205
+ contextPath: result.contextPath,
201
206
  citation: result.citation,
202
207
  text: result.text,
203
208
  distance: result.distance,