sxng-cli 1.2.3 → 1.2.4
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 +89 -15
- package/dist/claims/deterministic-checks.d.ts +3 -2
- package/dist/claims/deterministic-checks.d.ts.map +1 -1
- package/dist/claims/deterministic-checks.js +7 -10
- package/dist/claims/deterministic-checks.js.map +1 -1
- package/dist/claims/policy.js +5 -5
- package/dist/claims/policy.js.map +1 -1
- package/dist/claims/types.d.ts +2 -2
- package/dist/commands/doc-index.d.ts.map +1 -1
- package/dist/commands/doc-index.js +28 -29
- package/dist/commands/doc-index.js.map +1 -1
- package/dist/commands/doc-search.d.ts.map +1 -1
- package/dist/commands/doc-search.js +1 -0
- package/dist/commands/doc-search.js.map +1 -1
- package/dist/commands/evidence.d.ts.map +1 -1
- package/dist/commands/evidence.js +9 -5
- package/dist/commands/evidence.js.map +1 -1
- package/dist/commands/extract.d.ts.map +1 -1
- package/dist/commands/extract.js +9 -21
- package/dist/commands/extract.js.map +1 -1
- package/dist/commands/graph-add.d.ts.map +1 -1
- package/dist/commands/graph-add.js +13 -3
- package/dist/commands/graph-add.js.map +1 -1
- package/dist/commands/results-add.d.ts +1 -0
- package/dist/commands/results-add.d.ts.map +1 -1
- package/dist/commands/results-add.js +6 -2
- package/dist/commands/results-add.js.map +1 -1
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +2 -4
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +5 -0
- package/dist/commands/session.js.map +1 -1
- package/dist/deep/dedupe.d.ts +9 -4
- package/dist/deep/dedupe.d.ts.map +1 -1
- package/dist/deep/dedupe.js +54 -11
- package/dist/deep/dedupe.js.map +1 -1
- package/dist/deep/graph-preprocess.d.ts +5 -0
- package/dist/deep/graph-preprocess.d.ts.map +1 -1
- package/dist/deep/graph-preprocess.js +6 -0
- package/dist/deep/graph-preprocess.js.map +1 -1
- package/dist/deep/graph.d.ts +1 -1
- package/dist/deep/graph.d.ts.map +1 -1
- package/dist/deep/graph.js +8 -4
- package/dist/deep/graph.js.map +1 -1
- package/dist/deep/index.d.ts +1 -1
- package/dist/deep/index.d.ts.map +1 -1
- package/dist/deep/index.js +1 -1
- package/dist/deep/index.js.map +1 -1
- package/dist/deep/iteration-data.d.ts.map +1 -1
- package/dist/deep/iteration-data.js +2 -2
- package/dist/deep/iteration-data.js.map +1 -1
- package/dist/deep/local-doc/indexer.d.ts +16 -1
- package/dist/deep/local-doc/indexer.d.ts.map +1 -1
- package/dist/deep/local-doc/indexer.js +305 -22
- package/dist/deep/local-doc/indexer.js.map +1 -1
- package/dist/deep/local-doc/scanner.d.ts +6 -6
- package/dist/deep/local-doc/scanner.d.ts.map +1 -1
- package/dist/deep/local-doc/scanner.js +123 -128
- package/dist/deep/local-doc/scanner.js.map +1 -1
- package/dist/deep/local-doc/searcher.d.ts +1 -0
- package/dist/deep/local-doc/searcher.d.ts.map +1 -1
- package/dist/deep/local-doc/searcher.js +25 -7
- package/dist/deep/local-doc/searcher.js.map +1 -1
- package/dist/deep/local-doc/types.d.ts +21 -0
- package/dist/deep/local-doc/types.d.ts.map +1 -1
- package/dist/deep/local-doc/types.js.map +1 -1
- package/dist/deep/quality-assess.d.ts +6 -4
- package/dist/deep/quality-assess.d.ts.map +1 -1
- package/dist/deep/quality-assess.js +37 -29
- package/dist/deep/quality-assess.js.map +1 -1
- package/dist/deep/session.d.ts +8 -2
- package/dist/deep/session.d.ts.map +1 -1
- package/dist/deep/session.js +57 -33
- package/dist/deep/session.js.map +1 -1
- package/dist/runCli.d.ts.map +1 -1
- package/dist/runCli.js +47 -17
- package/dist/runCli.js.map +1 -1
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +3 -35
- package/dist/service.js.map +1 -1
- package/package.json +1 -1
package/dist/deep/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/deep/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAA+B,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAa,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/deep/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAA+B,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAa,MAAM,aAAa,CAAC;AAC/G,OAAO,EAAE,gBAAgB,EAAoB,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAkC,MAAM,YAAY,CAAC;AACjM,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAiB,MAAM,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iteration-data.d.ts","sourceRoot":"","sources":["../../src/deep/iteration-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"iteration-data.d.ts","sourceRoot":"","sources":["../../src/deep/iteration-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAA6B,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAyC,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAA0B,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAwB,MAAM,uBAAuB,CAAC;AAIjG,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,mBAAmB,CAAC;IACjC,QAAQ,EAAE,gBAAgB,CAAC;CAC9B;AAID;;4EAE4E;AAC5E,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,EACpD,cAAc,EAAE,aAAa,EAAE,EAC/B,OAAO,CAAC,EAAE;IACN,iBAAiB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5C,GACF,eAAe,CAwBjB;AAED;gFACgF;AAChF,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,EACpD,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACnC,gBAAgB,CAalB"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* Agent can call getSessionAnalysis() to get a comprehensive snapshot
|
|
12
12
|
* of the session state for decision-making.
|
|
13
13
|
*/
|
|
14
|
-
import {
|
|
14
|
+
import { assessLatestResultQuality } from './quality-assess.js';
|
|
15
15
|
import { generateQuerySuggestions } from './query-suggest.js';
|
|
16
16
|
import { getStrategyInfo } from './search-strategy.js';
|
|
17
17
|
import { analyzeRecoveryOptions } from './recovery-analysis.js';
|
|
@@ -22,7 +22,7 @@ import { checkQueryRedundancy } from './query-redundancy.js';
|
|
|
22
22
|
* and recovery analysis into a single output for Agent decision-making. */
|
|
23
23
|
export function getSessionAnalysis(graph, sessionResults, options) {
|
|
24
24
|
// Quality assessment
|
|
25
|
-
const quality =
|
|
25
|
+
const quality = assessLatestResultQuality(sessionResults, options?.qualityThresholds);
|
|
26
26
|
// Strategy info
|
|
27
27
|
const strategy = getStrategyInfo(graph, options?.strategyConfig);
|
|
28
28
|
// Query suggestions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iteration-data.js","sourceRoot":"","sources":["../../src/deep/iteration-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAmC,
|
|
1
|
+
{"version":3,"file":"iteration-data.js","sourceRoot":"","sources":["../../src/deep/iteration-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAmC,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAoC,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAgC,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAoB,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAsC,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAWjG,qEAAqE;AAErE;;4EAE4E;AAC5E,MAAM,UAAU,kBAAkB,CAC9B,KAAoD,EACpD,cAA+B,EAC/B,OAGC;IAED,qBAAqB;IACrB,MAAM,OAAO,GAAG,yBAAyB,CAAC,cAAc,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAEtF,gBAAgB;IAChB,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAEjE,oBAAoB;IACpB,MAAM,WAAW,GAAG,wBAAwB,CACxC,KAAK,EACL,cAAc,EACd,QAAQ,CAAC,YAAY,EACrB,OAAO,CACV,CAAC;IAEF,oBAAoB;IACpB,MAAM,QAAQ,GAAG,sBAAsB,CACnC,KAAK,EACL,cAAc,EACd,OAAO,EACP,OAAO,EAAE,cAAc,CAC1B,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AACxD,CAAC;AAED;gFACgF;AAChF,MAAM,UAAU,uBAAuB,CACnC,QAAgB,EAChB,KAAoD,EACpD,MAAkC;IAElC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,CAAC,WAAW,CAAC,CAAC,KAAa,EAAE,KAAqB,EAAE,EAAE;QACvD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE;QAC3C,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,IAAI,GAAG;QACjD,eAAe,EAAE,MAAM,EAAE,eAAe;QACxC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,MAAM;KACnC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -5,10 +5,25 @@
|
|
|
5
5
|
* as JSON files under .sxng/docs/<path-hash>/, and restores them
|
|
6
6
|
* on subsequent searches.
|
|
7
7
|
*/
|
|
8
|
-
import { ScannedChunk,
|
|
8
|
+
import { IndexLocation, ScannedChunk, ScannedFile } from './types.js';
|
|
9
|
+
export declare const INDEX_REFRESH_INTERVAL_MS: number;
|
|
10
|
+
/** Reserve most memory for the process and OS; Orama expands raw text in memory. */
|
|
11
|
+
export declare function calculateIndexMemoryBudget(totalBytes: number, freeBytes: number): number;
|
|
12
|
+
export declare function getIndexMemoryBudget(): number;
|
|
9
13
|
/** Generate deterministic short hash from a path */
|
|
10
14
|
export declare function getIndexPath(rootPath: string): string;
|
|
11
15
|
export declare function buildIndex(rootPath: string, chunks: ScannedChunk[]): Promise<IndexLocation>;
|
|
16
|
+
/**
|
|
17
|
+
* Build an index incrementally. Each yielded batch is released after insertion.
|
|
18
|
+
* The persisted index remains usable when the memory budget ends the scan early.
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildIndexFromBatches(rootPath: string, batches: Iterable<ScannedChunk[]>, memoryBudgetBytes?: number): Promise<IndexLocation>;
|
|
21
|
+
/** Build a complete index and record file hashes for later incremental refreshes. */
|
|
22
|
+
export declare function buildIndexFromScannedFiles(rootPath: string, files: Iterable<ScannedFile>, memoryBudgetBytes?: number, extensions?: string[]): Promise<IndexLocation>;
|
|
23
|
+
/** Refresh a complete index by Git diff when possible, otherwise by file hashes. */
|
|
24
|
+
export declare function refreshIndex(rootPath: string): Promise<IndexLocation>;
|
|
25
|
+
/** Refresh only when the index has exceeded its maximum age. */
|
|
26
|
+
export declare function refreshIndexIfStale(rootPath: string): Promise<boolean>;
|
|
12
27
|
export declare function loadIndex(rootPath: string): Promise<any>;
|
|
13
28
|
export declare function hasIndex(rootPath: string): boolean;
|
|
14
29
|
export declare function getIndexMeta(rootPath: string): IndexLocation['meta'] | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../../src/deep/local-doc/indexer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../../src/deep/local-doc/indexer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,EACL,aAAa,EAIb,YAAY,EACZ,WAAW,EACZ,MAAM,YAAY,CAAC;AAMpB,eAAO,MAAM,yBAAyB,QAA2B,CAAC;AAUlE,oFAAoF;AACpF,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAExF;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAcD,oDAAoD;AACpD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIrD;AA+HD,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EAAE,GACrB,OAAO,CAAC,aAAa,CAAC,CAqBxB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,EACjC,iBAAiB,SAAyB,GACzC,OAAO,CAAC,aAAa,CAAC,CA8CxB;AAED,qFAAqF;AACrF,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,EAC5B,iBAAiB,SAAyB,EAC1C,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,aAAa,CAAC,CAwCxB;AAoED,oFAAoF;AACpF,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA6B3E;AAED,gEAAgE;AAChE,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAK5E;AAID,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAS9D;AAID,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIlD;AAID,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAS3E"}
|
|
@@ -6,12 +6,32 @@
|
|
|
6
6
|
* on subsequent searches.
|
|
7
7
|
*/
|
|
8
8
|
import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'fs';
|
|
9
|
-
import {
|
|
9
|
+
import { execFileSync } from 'child_process';
|
|
10
|
+
import { resolve, join, relative, extname, isAbsolute, sep } from 'path';
|
|
10
11
|
import { createHash } from 'crypto';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
12
|
+
import { freemem, totalmem } from 'os';
|
|
13
|
+
import { create, insertMultiple, load, removeMultiple } from '@orama/orama';
|
|
14
|
+
import { createTokenizer } from '@orama/tokenizers/mandarin';
|
|
15
|
+
import { persist } from '@orama/plugin-data-persistence';
|
|
16
|
+
import { ORAMA_SCHEMA, } from './types.js';
|
|
17
|
+
import { scanFiles } from './scanner.js';
|
|
14
18
|
const BATCH_SIZE = 500;
|
|
19
|
+
const MAX_INDEX_MEMORY_BYTES = 256 * 1024 * 1024;
|
|
20
|
+
const TOKENIZER_VERSION = 'mandarin-lowercase-v1';
|
|
21
|
+
export const INDEX_REFRESH_INTERVAL_MS = 30 * 24 * 60 * 60 * 1000;
|
|
22
|
+
function createDocumentTokenizer() {
|
|
23
|
+
const tokenizer = createTokenizer();
|
|
24
|
+
const tokenize = tokenizer.tokenize;
|
|
25
|
+
tokenizer.tokenize = (raw, language, property, withCache) => tokenize(raw.toLowerCase(), language, property, withCache);
|
|
26
|
+
return tokenizer;
|
|
27
|
+
}
|
|
28
|
+
/** Reserve most memory for the process and OS; Orama expands raw text in memory. */
|
|
29
|
+
export function calculateIndexMemoryBudget(totalBytes, freeBytes) {
|
|
30
|
+
return Math.min(MAX_INDEX_MEMORY_BYTES, totalBytes * 0.05, freeBytes * 0.2);
|
|
31
|
+
}
|
|
32
|
+
export function getIndexMemoryBudget() {
|
|
33
|
+
return calculateIndexMemoryBudget(totalmem(), freemem());
|
|
34
|
+
}
|
|
15
35
|
// ── Path utilities ────────────────────────────────────────────────────
|
|
16
36
|
/** Get .sxng root directory (cwd-based) */
|
|
17
37
|
function getSxngRoot() {
|
|
@@ -27,47 +47,310 @@ export function getIndexPath(rootPath) {
|
|
|
27
47
|
const hash = createHash('sha256').update(abs).digest('hex').slice(0, 16);
|
|
28
48
|
return join(getDocsDir(), hash);
|
|
29
49
|
}
|
|
30
|
-
|
|
31
|
-
|
|
50
|
+
function normalizeExtensions(extensions) {
|
|
51
|
+
return (extensions ?? ['md', 'txt']).map(extension => extension.startsWith('.') ? extension.toLowerCase() : `.${extension.toLowerCase()}`);
|
|
52
|
+
}
|
|
53
|
+
function pathWithinRoot(absPath, absRoot) {
|
|
54
|
+
const fromRoot = relative(absRoot, absPath);
|
|
55
|
+
return fromRoot !== ''
|
|
56
|
+
&& !isAbsolute(fromRoot)
|
|
57
|
+
&& fromRoot !== '..'
|
|
58
|
+
&& !fromRoot.startsWith(`..${sep}`);
|
|
59
|
+
}
|
|
60
|
+
function fileMetadata(file) {
|
|
61
|
+
return { contentHash: file.contentHash, chunkIds: file.chunks.map(chunk => chunk.id) };
|
|
62
|
+
}
|
|
63
|
+
function runGit(rootPath, args) {
|
|
64
|
+
try {
|
|
65
|
+
return execFileSync('git', ['-C', rootPath, ...args], {
|
|
66
|
+
encoding: 'utf-8',
|
|
67
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
68
|
+
}).trim();
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function getGitState(rootPath, baseHead, extensions) {
|
|
32
75
|
const absRoot = resolve(rootPath);
|
|
76
|
+
const gitRoot = runGit(absRoot, ['rev-parse', '--show-toplevel']);
|
|
77
|
+
const head = runGit(absRoot, ['rev-parse', 'HEAD']);
|
|
78
|
+
if (!gitRoot || !head)
|
|
79
|
+
return null;
|
|
80
|
+
const allowedExtensions = new Set(normalizeExtensions(extensions));
|
|
81
|
+
const pathspec = relative(gitRoot, absRoot).replace(/\\/g, '/');
|
|
82
|
+
const scope = pathspec ? ['--', pathspec] : [];
|
|
83
|
+
const toRootRelativePath = (gitPath) => {
|
|
84
|
+
const absPath = resolve(gitRoot, gitPath);
|
|
85
|
+
if (!pathWithinRoot(absPath, absRoot) || !allowedExtensions.has(extname(absPath).toLowerCase())) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
return relative(absRoot, absPath).replace(/\\/g, '/');
|
|
89
|
+
};
|
|
90
|
+
const untrackedOutput = runGit(gitRoot, ['ls-files', '--others', '--exclude-standard', ...scope]);
|
|
91
|
+
if (untrackedOutput === null)
|
|
92
|
+
return null;
|
|
93
|
+
const hasUntrackedIndexableFiles = untrackedOutput.split(/\r?\n/)
|
|
94
|
+
.filter(Boolean)
|
|
95
|
+
.some(path => toRootRelativePath(path) !== null);
|
|
96
|
+
const listChangedFiles = (base) => {
|
|
97
|
+
const output = runGit(gitRoot, [
|
|
98
|
+
'diff', '--no-renames', '--name-only', '--diff-filter=ACMRD', base, ...scope,
|
|
99
|
+
]);
|
|
100
|
+
if (output === null)
|
|
101
|
+
return null;
|
|
102
|
+
return output.split(/\r?\n/)
|
|
103
|
+
.filter(Boolean)
|
|
104
|
+
.map(toRootRelativePath)
|
|
105
|
+
.filter((path) => path !== null);
|
|
106
|
+
};
|
|
107
|
+
const changedFiles = listChangedFiles(baseHead ?? 'HEAD');
|
|
108
|
+
const uncommittedFiles = baseHead ? listChangedFiles('HEAD') : changedFiles;
|
|
109
|
+
if (changedFiles === null || uncommittedFiles === null)
|
|
110
|
+
return null;
|
|
111
|
+
return {
|
|
112
|
+
head,
|
|
113
|
+
changedFiles,
|
|
114
|
+
hasUncommittedTrackedIndexableChanges: uncommittedFiles.length > 0,
|
|
115
|
+
hasUntrackedIndexableFiles,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
async function insertChunks(db, chunks) {
|
|
119
|
+
for (let offset = 0; offset < chunks.length; offset += BATCH_SIZE) {
|
|
120
|
+
await insertMultiple(db, chunks.slice(offset, offset + BATCH_SIZE));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function createMeta(absRoot, source, partial, memoryBudgetBytes) {
|
|
124
|
+
const files = source ? Object.keys(source.files).length : 0;
|
|
125
|
+
const chunks = source
|
|
126
|
+
? Object.values(source.files).reduce((total, file) => total + file.chunkIds.length, 0)
|
|
127
|
+
: 0;
|
|
128
|
+
return {
|
|
129
|
+
rootPath: absRoot,
|
|
130
|
+
files,
|
|
131
|
+
chunks,
|
|
132
|
+
indexedAt: Date.now(),
|
|
133
|
+
partial,
|
|
134
|
+
memoryBudgetBytes,
|
|
135
|
+
tokenizer: TOKENIZER_VERSION,
|
|
136
|
+
source,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
async function persistIndex(rootPath, db, meta) {
|
|
33
140
|
const indexPath = getIndexPath(rootPath);
|
|
34
|
-
// Ensure directory exists
|
|
35
141
|
mkdirSync(indexPath, { recursive: true });
|
|
36
|
-
|
|
37
|
-
|
|
142
|
+
const json = await persist(db, 'json');
|
|
143
|
+
writeFileSync(join(indexPath, 'index.json'), json, 'utf-8');
|
|
144
|
+
writeFileSync(join(indexPath, 'meta.json'), JSON.stringify(meta, null, 2), 'utf-8');
|
|
145
|
+
return { indexPath, meta };
|
|
146
|
+
}
|
|
147
|
+
// ── Index building ────────────────────────────────────────────────────
|
|
148
|
+
export async function buildIndex(rootPath, chunks) {
|
|
149
|
+
const absRoot = resolve(rootPath);
|
|
38
150
|
const db = await create({
|
|
39
151
|
schema: ORAMA_SCHEMA,
|
|
152
|
+
components: { tokenizer: createDocumentTokenizer() },
|
|
40
153
|
});
|
|
41
154
|
if (chunks.length > 0) {
|
|
42
|
-
|
|
43
|
-
for (let i = 0; i < chunks.length; i += BATCH_SIZE) {
|
|
44
|
-
const batch = chunks.slice(i, i + BATCH_SIZE);
|
|
45
|
-
await insertMultiple(db, batch);
|
|
46
|
-
}
|
|
155
|
+
await insertChunks(db, chunks);
|
|
47
156
|
}
|
|
48
|
-
// Persist to JSON
|
|
49
|
-
const json = await persist(db, 'json');
|
|
50
|
-
writeFileSync(join(indexPath, 'index.json'), json, 'utf-8');
|
|
51
|
-
// Write meta
|
|
52
157
|
const meta = {
|
|
53
158
|
rootPath: absRoot,
|
|
54
159
|
files: new Set(chunks.map(c => c.filePath)).size,
|
|
55
160
|
chunks: chunks.length,
|
|
56
161
|
indexedAt: Date.now(),
|
|
162
|
+
partial: false,
|
|
163
|
+
memoryBudgetBytes: getIndexMemoryBudget(),
|
|
164
|
+
tokenizer: TOKENIZER_VERSION,
|
|
57
165
|
};
|
|
58
|
-
|
|
59
|
-
|
|
166
|
+
return persistIndex(rootPath, db, meta);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Build an index incrementally. Each yielded batch is released after insertion.
|
|
170
|
+
* The persisted index remains usable when the memory budget ends the scan early.
|
|
171
|
+
*/
|
|
172
|
+
export async function buildIndexFromBatches(rootPath, batches, memoryBudgetBytes = getIndexMemoryBudget()) {
|
|
173
|
+
const absRoot = resolve(rootPath);
|
|
174
|
+
const initialHeapBytes = process.memoryUsage().heapUsed;
|
|
175
|
+
const db = await create({
|
|
176
|
+
schema: ORAMA_SCHEMA,
|
|
177
|
+
components: { tokenizer: createDocumentTokenizer() },
|
|
178
|
+
});
|
|
179
|
+
let files = 0;
|
|
180
|
+
let chunks = 0;
|
|
181
|
+
let partial = false;
|
|
182
|
+
for (const batch of batches) {
|
|
183
|
+
const batchBytes = batch.reduce((total, item) => total + Buffer.byteLength(item.content, 'utf-8'), 0);
|
|
184
|
+
const heapUsed = process.memoryUsage().heapUsed - initialHeapBytes;
|
|
185
|
+
if (heapUsed >= memoryBudgetBytes || heapUsed + batchBytes * 4 > memoryBudgetBytes) {
|
|
186
|
+
partial = true;
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
await insertChunks(db, batch);
|
|
190
|
+
files++;
|
|
191
|
+
chunks += batch.length;
|
|
192
|
+
}
|
|
193
|
+
if (chunks === 0) {
|
|
194
|
+
if (partial) {
|
|
195
|
+
throw Object.assign(new Error(`Index memory budget (${memoryBudgetBytes} bytes) is too small to index any files in ${absRoot}`), { code: 'MEMORY_LIMIT_REACHED' });
|
|
196
|
+
}
|
|
197
|
+
throw Object.assign(new Error(`No indexable files found in ${absRoot}`), { code: 'NO_INDEXABLE_FILES' });
|
|
198
|
+
}
|
|
199
|
+
const meta = {
|
|
200
|
+
rootPath: absRoot,
|
|
201
|
+
files,
|
|
202
|
+
chunks,
|
|
203
|
+
indexedAt: Date.now(),
|
|
204
|
+
partial,
|
|
205
|
+
memoryBudgetBytes,
|
|
206
|
+
tokenizer: TOKENIZER_VERSION,
|
|
207
|
+
};
|
|
208
|
+
return persistIndex(rootPath, db, meta);
|
|
209
|
+
}
|
|
210
|
+
/** Build a complete index and record file hashes for later incremental refreshes. */
|
|
211
|
+
export async function buildIndexFromScannedFiles(rootPath, files, memoryBudgetBytes = getIndexMemoryBudget(), extensions) {
|
|
212
|
+
const absRoot = resolve(rootPath);
|
|
213
|
+
const db = await create({
|
|
214
|
+
schema: ORAMA_SCHEMA,
|
|
215
|
+
components: { tokenizer: createDocumentTokenizer() },
|
|
216
|
+
});
|
|
217
|
+
const source = {
|
|
218
|
+
files: {},
|
|
219
|
+
extensions: normalizeExtensions(extensions),
|
|
220
|
+
};
|
|
221
|
+
const initialHeapBytes = process.memoryUsage().heapUsed;
|
|
222
|
+
let partial = false;
|
|
223
|
+
for (const file of files) {
|
|
224
|
+
const fileBytes = file.chunks.reduce((total, chunk) => total + Buffer.byteLength(chunk.content, 'utf-8'), 0);
|
|
225
|
+
const heapUsed = process.memoryUsage().heapUsed - initialHeapBytes;
|
|
226
|
+
if (heapUsed >= memoryBudgetBytes || heapUsed + fileBytes * 4 > memoryBudgetBytes) {
|
|
227
|
+
partial = true;
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
await insertChunks(db, file.chunks);
|
|
231
|
+
source.files[file.filePath] = fileMetadata(file);
|
|
232
|
+
}
|
|
233
|
+
if (Object.keys(source.files).length === 0) {
|
|
234
|
+
if (partial) {
|
|
235
|
+
throw Object.assign(new Error(`Index memory budget (${memoryBudgetBytes} bytes) is too small to index any files in ${absRoot}`), { code: 'MEMORY_LIMIT_REACHED' });
|
|
236
|
+
}
|
|
237
|
+
throw Object.assign(new Error(`No indexable files found in ${absRoot}`), { code: 'NO_INDEXABLE_FILES' });
|
|
238
|
+
}
|
|
239
|
+
const git = getGitState(absRoot, undefined, source.extensions);
|
|
240
|
+
if (git && !git.hasUncommittedTrackedIndexableChanges && !git.hasUntrackedIndexableFiles) {
|
|
241
|
+
source.git = { head: git.head };
|
|
242
|
+
}
|
|
243
|
+
return persistIndex(rootPath, db, createMeta(absRoot, source, partial, memoryBudgetBytes));
|
|
244
|
+
}
|
|
245
|
+
async function replaceFile(db, source, file) {
|
|
246
|
+
const previous = source.files[file.filePath];
|
|
247
|
+
if (previous?.contentHash === file.contentHash)
|
|
248
|
+
return;
|
|
249
|
+
if (previous?.chunkIds.length)
|
|
250
|
+
await removeMultiple(db, previous.chunkIds, BATCH_SIZE);
|
|
251
|
+
await insertChunks(db, file.chunks);
|
|
252
|
+
source.files[file.filePath] = fileMetadata(file);
|
|
253
|
+
}
|
|
254
|
+
async function removeFile(db, source, filePath) {
|
|
255
|
+
const previous = source.files[filePath];
|
|
256
|
+
if (!previous)
|
|
257
|
+
return;
|
|
258
|
+
if (previous.chunkIds.length)
|
|
259
|
+
await removeMultiple(db, previous.chunkIds, BATCH_SIZE);
|
|
260
|
+
delete source.files[filePath];
|
|
261
|
+
}
|
|
262
|
+
function exceedsMemoryBudget(file, initialHeapBytes, memoryBudgetBytes) {
|
|
263
|
+
const fileBytes = file.chunks.reduce((total, chunk) => total + Buffer.byteLength(chunk.content, 'utf-8'), 0);
|
|
264
|
+
const heapUsed = process.memoryUsage().heapUsed - initialHeapBytes;
|
|
265
|
+
return heapUsed >= memoryBudgetBytes || heapUsed + fileBytes * 4 > memoryBudgetBytes;
|
|
266
|
+
}
|
|
267
|
+
async function refreshWithHashes(rootPath, db, source, memoryBudgetBytes) {
|
|
268
|
+
const initialHeapBytes = process.memoryUsage().heapUsed;
|
|
269
|
+
const seen = new Set();
|
|
270
|
+
for (const file of scanFiles(rootPath, {
|
|
271
|
+
extensions: source.extensions,
|
|
272
|
+
maxFileSize: Math.min(10 * 1024 * 1024, Math.floor(memoryBudgetBytes / 8)),
|
|
273
|
+
})) {
|
|
274
|
+
if (exceedsMemoryBudget(file, initialHeapBytes, memoryBudgetBytes))
|
|
275
|
+
return true;
|
|
276
|
+
seen.add(file.filePath);
|
|
277
|
+
await replaceFile(db, source, file);
|
|
278
|
+
}
|
|
279
|
+
for (const filePath of Object.keys(source.files)) {
|
|
280
|
+
if (!seen.has(filePath))
|
|
281
|
+
await removeFile(db, source, filePath);
|
|
282
|
+
}
|
|
283
|
+
return false;
|
|
284
|
+
}
|
|
285
|
+
async function refreshWithGit(rootPath, db, source, changedFiles, memoryBudgetBytes) {
|
|
286
|
+
const initialHeapBytes = process.memoryUsage().heapUsed;
|
|
287
|
+
const pending = new Set(changedFiles);
|
|
288
|
+
for (const file of scanFiles(rootPath, { extensions: source.extensions }, pending)) {
|
|
289
|
+
if (exceedsMemoryBudget(file, initialHeapBytes, memoryBudgetBytes))
|
|
290
|
+
return true;
|
|
291
|
+
pending.delete(file.filePath);
|
|
292
|
+
await replaceFile(db, source, file);
|
|
293
|
+
}
|
|
294
|
+
for (const filePath of pending)
|
|
295
|
+
await removeFile(db, source, filePath);
|
|
296
|
+
return false;
|
|
297
|
+
}
|
|
298
|
+
/** Refresh a complete index by Git diff when possible, otherwise by file hashes. */
|
|
299
|
+
export async function refreshIndex(rootPath) {
|
|
300
|
+
const absRoot = resolve(rootPath);
|
|
301
|
+
const previous = getIndexMeta(absRoot);
|
|
302
|
+
const source = previous?.source;
|
|
303
|
+
if (!previous || previous.partial || !source) {
|
|
304
|
+
return buildIndexFromScannedFiles(absRoot, scanFiles(absRoot));
|
|
305
|
+
}
|
|
306
|
+
const memoryBudgetBytes = getIndexMemoryBudget();
|
|
307
|
+
const db = await loadIndex(absRoot);
|
|
308
|
+
const git = getGitState(absRoot, source.git?.head, source.extensions);
|
|
309
|
+
let partial = false;
|
|
310
|
+
if (git && source.git
|
|
311
|
+
&& !git.hasUncommittedTrackedIndexableChanges
|
|
312
|
+
&& !git.hasUntrackedIndexableFiles) {
|
|
313
|
+
partial = await refreshWithGit(absRoot, db, source, git.changedFiles, memoryBudgetBytes);
|
|
314
|
+
if (!partial)
|
|
315
|
+
source.git = { head: git.head };
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
partial = await refreshWithHashes(absRoot, db, source, memoryBudgetBytes);
|
|
319
|
+
if (!partial) {
|
|
320
|
+
const currentGit = getGitState(absRoot, undefined, source.extensions);
|
|
321
|
+
if (currentGit && !currentGit.hasUncommittedTrackedIndexableChanges && !currentGit.hasUntrackedIndexableFiles) {
|
|
322
|
+
source.git = { head: currentGit.head };
|
|
323
|
+
}
|
|
324
|
+
else
|
|
325
|
+
delete source.git;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
return persistIndex(absRoot, db, createMeta(absRoot, source, partial, memoryBudgetBytes));
|
|
329
|
+
}
|
|
330
|
+
/** Refresh only when the index has exceeded its maximum age. */
|
|
331
|
+
export async function refreshIndexIfStale(rootPath) {
|
|
332
|
+
const meta = getIndexMeta(rootPath);
|
|
333
|
+
if (!meta || Date.now() - meta.indexedAt < INDEX_REFRESH_INTERVAL_MS)
|
|
334
|
+
return false;
|
|
335
|
+
await refreshIndex(rootPath);
|
|
336
|
+
return true;
|
|
60
337
|
}
|
|
61
338
|
// ── Index loading ─────────────────────────────────────────────────────
|
|
62
339
|
export async function loadIndex(rootPath) {
|
|
63
340
|
const indexPath = getIndexPath(rootPath);
|
|
64
341
|
const data = readFileSync(join(indexPath, 'index.json'), 'utf-8');
|
|
65
|
-
|
|
342
|
+
const db = await create({
|
|
343
|
+
schema: ORAMA_SCHEMA,
|
|
344
|
+
components: { tokenizer: createDocumentTokenizer() },
|
|
345
|
+
});
|
|
346
|
+
load(db, JSON.parse(data));
|
|
347
|
+
return db;
|
|
66
348
|
}
|
|
67
349
|
// ── Index detection ───────────────────────────────────────────────────
|
|
68
350
|
export function hasIndex(rootPath) {
|
|
69
351
|
const indexPath = getIndexPath(rootPath);
|
|
70
|
-
return existsSync(join(indexPath, 'index.json'))
|
|
352
|
+
return existsSync(join(indexPath, 'index.json'))
|
|
353
|
+
&& getIndexMeta(rootPath)?.tokenizer === TOKENIZER_VERSION;
|
|
71
354
|
}
|
|
72
355
|
// ── Index metadata ────────────────────────────────────────────────────
|
|
73
356
|
export function getIndexMeta(rootPath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../../src/deep/local-doc/indexer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../../src/deep/local-doc/indexer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAIL,YAAY,GAGb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,sBAAsB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AACjD,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AAClD,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAElE,SAAS,uBAAuB;IAC9B,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IACpC,SAAS,CAAC,QAAQ,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAC1D,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,0BAA0B,CAAC,UAAkB,EAAE,SAAiB;IAC9E,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,UAAU,GAAG,IAAI,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,0BAA0B,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,yEAAyE;AAEzE,2CAA2C;AAC3C,SAAS,WAAW;IAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,+BAA+B;AAC/B,SAAS,UAAU;IACjB,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzE,OAAO,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAqB;IAChD,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CACnD,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,CACpF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,OAAe;IACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,QAAQ,KAAK,EAAE;WACjB,CAAC,UAAU,CAAC,QAAQ,CAAC;WACrB,QAAQ,KAAK,IAAI;WACjB,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,YAAY,CAAC,IAAiB;IACrC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AACzF,CAAC;AAED,SAAS,MAAM,CAAC,QAAgB,EAAE,IAAc;IAC9C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE;YACpD,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AASD,SAAS,WAAW,CAAC,QAAgB,EAAE,QAAiB,EAAE,UAAqB;IAC7E,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAiB,EAAE;QAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAChG,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;IAClG,IAAI,eAAe,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,0BAA0B,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC;SAC9D,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;IAEnD,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAmB,EAAE;QACzD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE;YAC7B,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,qBAAqB,EAAE,IAAI,EAAE,GAAG,KAAK;SAC7E,CAAC,CAAC;QACH,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACjC,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;aACzB,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,kBAAkB,CAAC;aACvB,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,gBAAgB,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAC5E,IAAI,YAAY,KAAK,IAAI,IAAI,gBAAgB,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEpE,OAAO;QACL,IAAI;QACJ,YAAY;QACZ,qCAAqC,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC;QAClE,0BAA0B;KAC3B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,EAAO,EAAE,MAAsB;IACzD,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,UAAU,EAAE,CAAC;QAClE,MAAM,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,OAAe,EACf,MAAuC,EACvC,OAAgB,EAChB,iBAAyB;IAEzB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM;QACnB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC,CAAC;IACN,OAAO;QACL,QAAQ,EAAE,OAAO;QACjB,KAAK;QACL,MAAM;QACN,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,OAAO;QACP,iBAAiB;QACjB,SAAS,EAAE,iBAAiB;QAC5B,MAAM;KACP,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,QAAgB,EAChB,EAAO,EACP,IAA2B;IAE3B,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,EAAE,MAAM,CAAW,CAAC;IACjD,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5D,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACpF,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,yEAAyE;AAEzE,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAgB,EAChB,MAAsB;IAEtB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC;QACtB,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,EAAE;KACrD,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,IAAI,GAA0B;QAClC,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;QAChD,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,OAAO,EAAE,KAAK;QACd,iBAAiB,EAAE,oBAAoB,EAAE;QACzC,SAAS,EAAE,iBAAiB;KAC7B,CAAC;IACF,OAAO,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAgB,EAChB,OAAiC,EACjC,iBAAiB,GAAG,oBAAoB,EAAE;IAE1C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;IACxD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC;QACtB,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,EAAE;KACrD,CAAC,CAAC;IACH,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAC9C,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,GAAG,gBAAgB,CAAC;QAEnE,IAAI,QAAQ,IAAI,iBAAiB,IAAI,QAAQ,GAAG,UAAU,GAAG,CAAC,GAAG,iBAAiB,EAAE,CAAC;YACnF,OAAO,GAAG,IAAI,CAAC;YACf,MAAM;QACR,CAAC;QAED,MAAM,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9B,KAAK,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACjB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CAAC,wBAAwB,iBAAiB,8CAA8C,OAAO,EAAE,CAAC,EAC3G,EAAE,IAAI,EAAE,sBAAsB,EAAE,CACjC,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED,MAAM,IAAI,GAA0B;QAClC,QAAQ,EAAE,OAAO;QACjB,KAAK;QACL,MAAM;QACN,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,OAAO;QACP,iBAAiB;QACjB,SAAS,EAAE,iBAAiB;KAC7B,CAAC;IACF,OAAO,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAAgB,EAChB,KAA4B,EAC5B,iBAAiB,GAAG,oBAAoB,EAAE,EAC1C,UAAqB;IAErB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC;QACtB,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,EAAE;KACrD,CAAC,CAAC;IACH,MAAM,MAAM,GAAwB;QAClC,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,mBAAmB,CAAC,UAAU,CAAC;KAC5C,CAAC;IACF,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;IACxD,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACpD,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,GAAG,gBAAgB,CAAC;QACnE,IAAI,QAAQ,IAAI,iBAAiB,IAAI,QAAQ,GAAG,SAAS,GAAG,CAAC,GAAG,iBAAiB,EAAE,CAAC;YAClF,OAAO,GAAG,IAAI,CAAC;YACf,MAAM;QACR,CAAC;QACD,MAAM,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CAAC,wBAAwB,iBAAiB,8CAA8C,OAAO,EAAE,CAAC,EAC3G,EAAE,IAAI,EAAE,sBAAsB,EAAE,CACjC,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/D,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,qCAAqC,IAAI,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC;QACzF,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,EAAO,EAAE,MAA2B,EAAE,IAAiB;IAChF,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC,WAAW;QAAE,OAAO;IACvD,IAAI,QAAQ,EAAE,QAAQ,CAAC,MAAM;QAAE,MAAM,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvF,MAAM,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,EAAO,EAAE,MAA2B,EAAE,QAAgB;IAC9E,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM;QAAE,MAAM,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtF,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAiB,EACjB,gBAAwB,EACxB,iBAAyB;IAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACpD,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,GAAG,gBAAgB,CAAC;IACnE,OAAO,QAAQ,IAAI,iBAAiB,IAAI,QAAQ,GAAG,SAAS,GAAG,CAAC,GAAG,iBAAiB,CAAC;AACvF,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,QAAgB,EAChB,EAAO,EACP,MAA2B,EAC3B,iBAAyB;IAEzB,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,QAAQ,EAAE;QACrC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;KAC3E,CAAC,EAAE,CAAC;QACH,IAAI,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;YAAE,OAAO,IAAI,CAAC;QAChF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxB,MAAM,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,QAAgB,EAChB,EAAO,EACP,MAA2B,EAC3B,YAAsB,EACtB,iBAAyB;IAEzB,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;IACxD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;QACnF,IAAI,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;YAAE,OAAO,IAAI,CAAC;QAChF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,OAAO;QAAE,MAAM,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,CAAC;IAChC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;IACjD,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACtE,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG;WAChB,CAAC,GAAG,CAAC,qCAAqC;WAC1C,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC;QACrC,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QACzF,IAAI,CAAC,OAAO;YAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACtE,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,qCAAqC,IAAI,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC;gBAC9G,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;YACzC,CAAC;;gBACI,OAAO,MAAM,CAAC,GAAG,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,gEAAgE;AAChE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACxD,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,yBAAyB;QAAE,OAAO,KAAK,CAAC;IACnF,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yEAAyE;AAEzE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB;IAC9C,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC;QACtB,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,EAAE;KACrD,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,yEAAyE;AAEzE,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACvC,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;WAC3C,YAAY,CAAC,QAAQ,CAAC,EAAE,SAAS,KAAK,iBAAiB,CAAC;AAC/D,CAAC;AAED,yEAAyE;AAEzE,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Scanner
|
|
3
|
-
*
|
|
4
|
-
* Scans a directory for documents, parses YAML frontmatter,
|
|
5
|
-
* and splits content into chunks using chunk-smart (markdown)
|
|
6
|
-
* or paragraph splitting (plain text).
|
|
2
|
+
* Scanner - file scanning and structure-aware chunking.
|
|
7
3
|
*/
|
|
8
|
-
import { ScannedChunk, ScannerOptions } from './types.js';
|
|
4
|
+
import { ScannedChunk, ScannedFile, ScannerOptions } from './types.js';
|
|
5
|
+
/** Yield one file at a time, with a hash for incremental change detection. */
|
|
6
|
+
export declare function scanFiles(rootPath: string, options?: ScannerOptions, filePaths?: Iterable<string>): Generator<ScannedFile>;
|
|
7
|
+
/** Yield one file batch at a time so callers can index and release them. */
|
|
8
|
+
export declare function scanBatches(rootPath: string, options?: ScannerOptions): Generator<ScannedChunk[]>;
|
|
9
9
|
export declare function scan(rootPath: string, options?: ScannerOptions): ScannedChunk[];
|
|
10
10
|
//# sourceMappingURL=scanner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../src/deep/local-doc/scanner.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../src/deep/local-doc/scanner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA8JvE,8EAA8E;AAC9E,wBAAiB,SAAS,CACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,cAAc,EACxB,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC3B,SAAS,CAAC,WAAW,CAAC,CAYxB;AAED,4EAA4E;AAC5E,wBAAiB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC,CAIlG;AAED,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,YAAY,EAAE,CAI/E"}
|