@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.
- package/README.md +16 -4
- package/dist/access-log.d.ts +9 -1
- package/dist/access-log.d.ts.map +1 -1
- package/dist/access-log.js +82 -3
- package/dist/access-log.js.map +1 -1
- package/dist/chunk-stats.d.ts +8 -0
- package/dist/chunk-stats.d.ts.map +1 -0
- package/dist/chunk-stats.js +31 -0
- package/dist/chunk-stats.js.map +1 -0
- package/dist/chunking.d.ts +1 -0
- package/dist/chunking.d.ts.map +1 -1
- package/dist/chunking.js +58 -31
- package/dist/chunking.js.map +1 -1
- package/dist/cli.js +104 -5
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +16 -0
- package/dist/config.js.map +1 -1
- package/dist/context-resources.d.ts +4 -0
- package/dist/context-resources.d.ts.map +1 -0
- package/dist/context-resources.js +87 -0
- package/dist/context-resources.js.map +1 -0
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +1 -0
- package/dist/defaults.js.map +1 -1
- package/dist/document-structure.d.ts +13 -0
- package/dist/document-structure.d.ts.map +1 -0
- package/dist/document-structure.js +331 -0
- package/dist/document-structure.js.map +1 -0
- package/dist/evaluate.d.ts.map +1 -1
- package/dist/evaluate.js +8 -0
- package/dist/evaluate.js.map +1 -1
- package/dist/index-diagnostics.d.ts +1 -1
- package/dist/index-diagnostics.js +1 -1
- package/dist/index-policy.js +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/ingest.d.ts.map +1 -1
- package/dist/ingest.js +10 -3
- package/dist/ingest.js.map +1 -1
- package/dist/knowledge-bases.d.ts +4 -0
- package/dist/knowledge-bases.d.ts.map +1 -0
- package/dist/knowledge-bases.js +113 -0
- package/dist/knowledge-bases.js.map +1 -0
- package/dist/mcp-output.d.ts +60 -0
- package/dist/mcp-output.d.ts.map +1 -0
- package/dist/mcp-output.js +270 -0
- package/dist/mcp-output.js.map +1 -0
- package/dist/mcp.d.ts +3 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +136 -18
- package/dist/mcp.js.map +1 -1
- package/dist/preview.d.ts +3 -0
- package/dist/preview.d.ts.map +1 -0
- package/dist/preview.js +115 -0
- package/dist/preview.js.map +1 -0
- package/dist/query.d.ts +2 -1
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +201 -28
- package/dist/query.js.map +1 -1
- package/dist/research.d.ts.map +1 -1
- package/dist/research.js +5 -0
- package/dist/research.js.map +1 -1
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +1 -0
- package/dist/security.js.map +1 -1
- package/dist/setup.js +1 -1
- package/dist/skill.d.ts.map +1 -1
- package/dist/skill.js +46 -4
- package/dist/skill.js.map +1 -1
- package/dist/store.js +2 -2
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +171 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +3 -3
- package/skills/ragmir/SKILL.md +34 -0
package/dist/preview.js
ADDED
|
@@ -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
|
package/dist/query.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
|
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,
|
|
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 (
|
|
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.
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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", "
|
|
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
|
|
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 {
|
|
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.
|
|
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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAiCpC,MAAM,uBAAuB,GAGzB;IACF,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE;IAC3D,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE;IAC/D,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE;IAC/D,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE;CAC9D,CAAA;AACD;;;;;;;;;GASG;AACH,MAAM,KAAK,GAAG,EAAE,CAAA;AAChB,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAC3B,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAC5B,MAAM,OAAO,GAAG,GAAG,CAAA;AACnB,MAAM,MAAM,GAAG,IAAI,CAAA;AACnB,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAC5B,MAAM,cAAc,GAAG;IACrB,QAAQ;IACR,cAAc;IACd,YAAY;IACZ,MAAM;IACN,WAAW;IACX,SAAS;IACT,WAAW;IACX,SAAS;IACT,WAAW;IACX,SAAS;CACV,CAAA;AACD,MAAM,qBAAqB,GAAG,CAAC,GAAG,cAAc,EAAE,WAAW,CAAC,CAAA;AAC9D,MAAM,kBAAkB,GAAG,CAAC,GAAG,cAAc,EAAE,QAAQ,CAAC,CAAA;AAExD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAa,EAAE,UAAyB,EAAE;IACrE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACrE,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAA;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC7C,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAA;IACxC,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACrF,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3C,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;QAClC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,mBAAmB,EAAE,aAAa,CAAC;KACxF,CAAC,CAAA;IACF,MAAM,8BAA8B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAC3D,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAC5E,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;SACvF,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;SAC1D,OAAO,EAAE,CAAgB,CAAA;IAC5B,MAAM,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;IACxE,MAAM,YAAY,GAChB,MAAM,CAAC,iBAAiB,KAAK,YAAY;QACvC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChF,CAAC,CAAC,UAAU,CAAA;IAChB,MAAM,IAAI,GAAG,aAAa,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACvE,MAAM,oBAAoB,GAAG,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1E,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC3C,KAAK,EACL,IAAI,EACJ,OAAO,CAAC,aAAa,IAAI,oBAAoB,CAC9C,CAAA;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM;QACtB,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY;QAClC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU;QAC9B,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;QACjC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QAC1E,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;QAC5C,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QACxC,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;QAC5C,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QACxC,SAAS,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;QAChD,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QAC5C,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;KACjD,CAAC,CAAC,CAAA;IACH,MAAM,YAAY,CAAC,MAAM,EAAE;QACzB,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,IAAI;QACJ,WAAW,EAAE,OAAO,CAAC,MAAM;KAC5B,CAAC,CAAA;IACF,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,IAAiB,EAAE,IAAY,EAAE,OAAyB;IAC/E,MAAM,UAAU,GAAgB,EAAE,CAAA;IAClC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAA;IAE7C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QACvE,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;YAC3C,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACpB,SAAQ;QACV,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;QAC1C,IAAI,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACrF,UAAU,CAAC,aAAa,CAAC,GAAG,GAAG,CAAA;QACjC,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAgB,EAAE,CAAA;IAChC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC3C,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAA;IAE9E,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7E,SAAQ;QACV,CAAC;QACD,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAC5D,IAAI,WAAW,IAAI,kBAAkB,EAAE,CAAC;YACtC,SAAQ;QACV,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAClB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,GAAG,CAAC,CAAC,CAAA;QACpD,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YAC5B,MAAK;QACP,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAe,EAAE,KAAgB;IAC3D,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IACE,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;QAClC,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QAChC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QACnC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EACjC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAA;AACzE,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,OAAe;IAC7D,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;IAClD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;IAC9C,OAAO,CACL,cAAc,GAAG,YAAY;QAC7B,CAAC,cAAc,KAAK,YAAY,IAAI,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CACvE,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAqB,EAAE,IAAY;IAC5D,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IACjC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CACrC,UAAU,CAAC,IAAI,CACb,CAAC,SAAS,EAAE,EAAE,CACZ,UAAU,KAAK,SAAS;QACxB,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC;YACrB,SAAS,CAAC,MAAM,IAAI,CAAC;YACrB,kBAAkB,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CACpD,CACF,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,KAAa;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACjD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,OAAO,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,KAAK,IAAI,CAAC,CAAA;IACZ,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,UAA4B,UAAU;IACvF,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAA;IAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,KAAa,EAAE,UAAyB,EAAE;IAClE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACrE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC5C,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAE3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,MAAM,EAAE,kFAAkF;YAC1F,OAAO;YACP,YAAY;SACb,CAAA;IACH,CAAC;IAED,MAAM,YAAY,CAAC,MAAM,EAAE;QACzB,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC,KAAK;QAC1C,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI;QACjC,WAAW,EAAE,OAAO,CAAC,MAAM;KAC5B,CAAC,CAAA;IAEF,OAAO;QACL,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC;QACpC,OAAO;QACP,YAAY;KACb,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAuB;IAClD,MAAM,QAAQ,GAAG,OAAO;SACrB,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QAC5D,OAAO,IAAI,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAA;IACrD,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAA;IAEf,OAAO;QACL,sGAAsG;QACtG,EAAE;QACF,QAAQ;KACT,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,KAAgB,EAChB,KAAa,EACb,KAAa,EACb,aAA4B;IAE5B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IACpC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;YACpF,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;iBAC3E,KAAK,CAAC,KAAK,CAAC;iBACZ,OAAO,EAAE,CAAgB,CAAA;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;YAC1E,2DAA2D;QAC7D,CAAC;IACH,CAAC;IACD,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAC1D,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;SAC/E,KAAK,CAAC,KAAK,CAAC;SACZ,OAAO,EAAE,CAAgB,CAAA;AAC9B,CAAC;AAED,SAAS,mBAAmB,CAC1B,YAAkC,EAClC,YAAkC;IAElC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAA;IACpD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAA;IACpD,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACrE,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,QAAQ,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACzE,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC5D,CAAC;AAED,SAAS,qBAAqB,CAAC,QAA8B;IAC3D,OAAO;QACL,GAAG,IAAI,GAAG,CACR,CAAC,QAAQ,IAAI,EAAE,CAAC;aACb,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;aAC1E,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;aAC5C,MAAM,CAAC,OAAO,CAAC,CACnB;KACF,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc;IACzC,OAAO,mBAAmB,SAAS,CAAC,MAAM,CAAC,iCAAiC,SAAS,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,CAAA;AACzG,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,KAAgB,EAChB,IAAiB,EACjB,eAAuB;IAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAA;IACzE,IAAI,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,GAAG,EAAE,CAAA;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,CAAA;QACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,GAAG,MAAM,CAAA;QACxC,OAAO,mBAAmB,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,sBAAsB,QAAQ,sBAAsB,QAAQ,GAAG,CAAA;IACtH,CAAC,CAAC,CAAA;IACF,MAAM,cAAc,GAAG,CAAC,MAAM,KAAK;SAChC,KAAK,EAAE;SACP,MAAM,CAAC,cAAc,CAAC;SACtB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B,OAAO,EAAE,CAAgB,CAAA;IAC5B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAgC,CAAA;IACxD,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,CAAA;QACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,GAAG,MAAM,CAAA;QACxC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CACvC,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,YAAY,KAAK,GAAG,CAAC,YAAY;YAC3C,SAAS,CAAC,UAAU,IAAI,QAAQ;YAChC,SAAS,CAAC,UAAU,IAAI,QAAQ,CACnC,CAAA;QACD,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAA;IACvF,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC3C,MAA8C,EAC9C,eAAuB;IAEvB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;IACH,CAAC;IACD,MAAM,gBAAgB,GAAG,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAC/D,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACnC,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,IAAI,QAAQ,CAAC,eAAe,KAAK,eAAe,EAAE,CAAC;QAC3F,MAAM,IAAI,KAAK,CACb,6BAA6B,QAAQ,CAAC,eAAe,sCAAsC,eAAe,0CAA0C,CACrJ,CAAA;IACH,CAAC;IACD,IACE,QAAQ,CAAC,oBAAoB,KAAK,SAAS;QAC3C,QAAQ,CAAC,oBAAoB,KAAK,sBAAsB,EACxD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,mCAAmC,QAAQ,CAAC,oBAAoB,uBAAuB,sBAAsB,0CAA0C,CACxJ,CAAA;IACH,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAAoB;IACtC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AACxF,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAc;IACxC,OAAO;QACL,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;QACxC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QACpC,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;QACxC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QACpC,SAAS,EAAE,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;QAC5C,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC;QACxC,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC;KAC9B,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,cAAc,CACrB,KAAa,EACb,UAAuB,EACvB,QAAqB;IAErB,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAE5C,kFAAkF;IAClF,MAAM,YAAY,GAAG,CAAC,GAAG,UAAU,CAAC;SACjC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;SAClD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IAClD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC7C,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAClC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,2EAA2E;IAC3E,sDAAsD;IACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAA;IACxE,MAAM,aAAa,GACjB,OAAO,CAAC,MAAM,GAAG,CAAC;QAChB,CAAC,CAAC,OAAO;aACJ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;aACjD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;aACzC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;aAChC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACpC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC9C,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE;QACrC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACvB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,aAAa,GAAG,CAAC,CAAA;QACrB,IAAI,WAAW,GAAG,CAAC,CAAA;QACnB,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,WAAW,GAAG,iBAAiB,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,CAAA;YACtD,aAAa,IAAI,WAAW,CAAA;QAC9B,CAAC;QACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,YAAY,GAAG,kBAAkB,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,CAAA;YACzD,aAAa,IAAI,YAAY,CAAA;QAC/B,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,CAAA;IAC1D,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC;SAC5C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAA;QACpD,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC7D,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YAC1D,OAAO,aAAa,CAAA;QACtB,CAAC;QACD,OAAO,CACL,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAC5F,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAS,SAAS,CAAC,UAAuB,EAAE,QAAqB;IAC/D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAA;IACzC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IAC5B,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;YAC1B,SAAQ;QACV,CAAC;QACD,MAAM,MAAM,GAAc,EAAE,GAAG,QAAQ,EAAE,GAAG,GAAG,EAAE,CAAA;QACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;QACjC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;AAC3B,CAAC;AAED,SAAS,UAAU,CAAC,WAAqB,EAAE,IAAiB;IAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IACxC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAA;QAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC3D,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;IACrC,CAAC,CAAC,CAAA;IACF,MAAM,aAAa,GACjB,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAA;IAC9F,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAA;IAErD,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACtC,mBAAmB,CAAC,GAAG,CACrB,KAAK,EACL,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CACvE,CAAA;IACH,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACtD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;gBACpB,SAAQ;YACV,CAAC;YACD,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC7D,MAAM,wBAAwB,GAAG,IAAI,CAAC,GAAG,CACvC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,iBAAiB,GAAG,GAAG,CAAC,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAC7E,CAAA;YACD,MAAM,WAAW,GACf,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAA;YACxF,KAAK,IAAI,wBAAwB,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAA;QACjF,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,WAAW,CAAC,GAAc;IACjC,OAAO,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC;QAC5D,CAAC,CAAC,GAAG,CAAC,SAAS;QACf,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAA;AAC9B,CAAC;AAED,SAAS,MAAM,CAAC,GAAc;IAC5B,OAAO,GAAG,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,UAAU,EAAE,CAAA;AACjD,CAAC;AAED,SAAS,cAAc,CAAC,GAAc;IACpC,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACnD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC/C,MAAM,WAAW,GACf,SAAS,KAAK,IAAI;QAChB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,KAAK,SAAS,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IACxF,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC3C,OAAO,GAAG,GAAG,CAAC,YAAY,GAAG,WAAW,IAAI,GAAG,CAAC,UAAU,EAAE,CAAA;IAC9D,CAAC;IACD,OAAO,GAAG,GAAG,CAAC,YAAY,GAAG,WAAW,KAAK,SAAS,KAAK,OAAO,IAAI,GAAG,CAAC,UAAU,EAAE,CAAA;AACxF,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAChD,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAY,EAAE,CAAY;IAClD,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAA;AACpC,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AAC3E,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AACzF,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAA;AAC3C,CAAC"}
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/dist/research.d.ts.map
CHANGED
|
@@ -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,
|
|
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,
|