sensemaking 0.25.1 → 0.27.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 +48 -12
- package/dist/cjs/cli/index.d.cts +3 -3
- package/dist/cjs/cli/index.d.ts +3 -3
- package/dist/cjs/cli/index.js +3 -3
- package/dist/cjs/cli/index.js.map +1 -1
- package/dist/cjs/cli/path.js +5 -29
- package/dist/cjs/cli/path.js.map +1 -1
- package/dist/cjs/cli/peek.js +43 -2
- package/dist/cjs/cli/peek.js.map +1 -1
- package/dist/cjs/cli/related.js +4 -3
- package/dist/cjs/cli/related.js.map +1 -1
- package/dist/cjs/cli/search.js +38 -6
- package/dist/cjs/cli/search.js.map +1 -1
- package/dist/cjs/commands/index.d.cts +6 -3
- package/dist/cjs/commands/index.d.ts +6 -3
- package/dist/cjs/commands/index.js +4 -0
- package/dist/cjs/commands/index.js.map +1 -1
- package/dist/cjs/commands/map.d.cts +14 -5
- package/dist/cjs/commands/map.d.ts +14 -5
- package/dist/cjs/commands/map.js +42 -35
- package/dist/cjs/commands/map.js.map +1 -1
- package/dist/cjs/commands/path.d.cts +14 -0
- package/dist/cjs/commands/path.d.ts +14 -0
- package/dist/cjs/commands/path.js +209 -0
- package/dist/cjs/commands/path.js.map +1 -0
- package/dist/cjs/commands/peek.d.cts +25 -2
- package/dist/cjs/commands/peek.d.ts +25 -2
- package/dist/cjs/commands/peek.js +131 -50
- package/dist/cjs/commands/peek.js.map +1 -1
- package/dist/cjs/commands/related.d.cts +16 -3
- package/dist/cjs/commands/related.d.ts +16 -3
- package/dist/cjs/commands/related.js +131 -98
- package/dist/cjs/commands/related.js.map +1 -1
- package/dist/cjs/commands/scope.d.cts +1 -0
- package/dist/cjs/commands/scope.d.ts +1 -0
- package/dist/cjs/commands/scope.js +149 -0
- package/dist/cjs/commands/scope.js.map +1 -1
- package/dist/cjs/commands/search.d.cts +30 -3
- package/dist/cjs/commands/search.d.ts +30 -3
- package/dist/cjs/commands/search.js +240 -73
- package/dist/cjs/commands/search.js.map +1 -1
- package/dist/cjs/commands/signals.d.cts +22 -7
- package/dist/cjs/commands/signals.d.ts +22 -7
- package/dist/cjs/commands/signals.js +77 -15
- package/dist/cjs/commands/signals.js.map +1 -1
- package/dist/cjs/commands/snapshot.d.cts +3 -0
- package/dist/cjs/commands/snapshot.d.ts +3 -0
- package/dist/cjs/commands/snapshot.js +180 -0
- package/dist/cjs/commands/snapshot.js.map +1 -0
- package/dist/cjs/config/load.js +6 -0
- package/dist/cjs/config/load.js.map +1 -1
- package/dist/cjs/embed/cohere.js +41 -16
- package/dist/cjs/embed/cohere.js.map +1 -1
- package/dist/cjs/embed/endpoint.d.cts +2 -0
- package/dist/cjs/embed/endpoint.d.ts +2 -0
- package/dist/cjs/embed/endpoint.js +30 -0
- package/dist/cjs/embed/endpoint.js.map +1 -0
- package/dist/cjs/embed/handoff.d.cts +7 -2
- package/dist/cjs/embed/handoff.d.ts +7 -2
- package/dist/cjs/embed/handoff.js +10 -0
- package/dist/cjs/embed/handoff.js.map +1 -1
- package/dist/cjs/embed/http.d.cts +18 -1
- package/dist/cjs/embed/http.d.ts +18 -1
- package/dist/cjs/embed/http.js +239 -40
- package/dist/cjs/embed/http.js.map +1 -1
- package/dist/cjs/embed/openai.js +39 -17
- package/dist/cjs/embed/openai.js.map +1 -1
- package/dist/cjs/embed/query.d.cts +9 -3
- package/dist/cjs/embed/query.d.ts +9 -3
- package/dist/cjs/embed/query.js +257 -90
- package/dist/cjs/embed/query.js.map +1 -1
- package/dist/cjs/embed/registry.d.cts +2 -2
- package/dist/cjs/embed/registry.d.ts +2 -2
- package/dist/cjs/embed/registry.js +36 -4
- package/dist/cjs/embed/registry.js.map +1 -1
- package/dist/cjs/embed/static.js +6 -2
- package/dist/cjs/embed/static.js.map +1 -1
- package/dist/cjs/embed/store.js +42 -77
- package/dist/cjs/embed/store.js.map +1 -1
- package/dist/cjs/embed/types.d.cts +5 -2
- package/dist/cjs/embed/types.d.ts +5 -2
- package/dist/cjs/embed/types.js.map +1 -1
- package/dist/cjs/features/embed.js +290 -43
- package/dist/cjs/features/embed.js.map +1 -1
- package/dist/cjs/graph/traverse.d.cts +2 -2
- package/dist/cjs/graph/traverse.d.ts +2 -2
- package/dist/cjs/graph/traverse.js +15 -5
- package/dist/cjs/graph/traverse.js.map +1 -1
- package/dist/cjs/index.d.cts +2 -2
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/output/output.d.cts +4 -36
- package/dist/cjs/output/output.d.ts +4 -36
- package/dist/cjs/output/output.js +1 -2
- package/dist/cjs/output/output.js.map +1 -1
- package/dist/cjs/scan/pool.d.cts +2 -1
- package/dist/cjs/scan/pool.d.ts +2 -1
- package/dist/cjs/scan/pool.js +116 -27
- package/dist/cjs/scan/pool.js.map +1 -1
- package/dist/cjs/scan/reparse.d.cts +1 -0
- package/dist/cjs/scan/reparse.d.ts +1 -0
- package/dist/cjs/scan/reparse.js +75 -21
- package/dist/cjs/scan/reparse.js.map +1 -1
- package/dist/cjs/store/builder.d.cts +11 -21
- package/dist/cjs/store/builder.d.ts +11 -21
- package/dist/cjs/store/builder.js +1077 -438
- package/dist/cjs/store/builder.js.map +1 -1
- package/dist/cjs/store/duckdb/connection.js +16 -2
- package/dist/cjs/store/duckdb/connection.js.map +1 -1
- package/dist/cjs/store/duckdb/open.d.cts +1 -1
- package/dist/cjs/store/duckdb/open.d.ts +1 -1
- package/dist/cjs/store/duckdb/open.js +73 -65
- package/dist/cjs/store/duckdb/open.js.map +1 -1
- package/dist/cjs/store/duckdb/reconcile.js +533 -15
- package/dist/cjs/store/duckdb/reconcile.js.map +1 -1
- package/dist/cjs/store/embed-scope.js +19 -9
- package/dist/cjs/store/embed-scope.js.map +1 -1
- package/dist/cjs/store/index.d.cts +6 -0
- package/dist/cjs/store/index.d.ts +6 -0
- package/dist/cjs/store/index.js +8 -4
- package/dist/cjs/store/index.js.map +1 -1
- package/dist/cjs/store/open.d.cts +6 -1
- package/dist/cjs/store/open.d.ts +6 -1
- package/dist/cjs/store/open.js +230 -307
- package/dist/cjs/store/open.js.map +1 -1
- package/dist/cjs/store/readiness.d.cts +5 -0
- package/dist/cjs/store/readiness.d.ts +5 -0
- package/dist/cjs/store/readiness.js +39 -0
- package/dist/cjs/store/readiness.js.map +1 -0
- package/dist/cjs/store/reconcile.d.cts +26 -1
- package/dist/cjs/store/reconcile.d.ts +26 -1
- package/dist/cjs/store/reconcile.js +670 -576
- package/dist/cjs/store/reconcile.js.map +1 -1
- package/dist/cjs/store/signature.d.cts +1 -0
- package/dist/cjs/store/signature.d.ts +1 -0
- package/dist/cjs/store/signature.js +9 -0
- package/dist/cjs/store/signature.js.map +1 -1
- package/dist/cjs/store/sqlite/open.d.cts +1 -1
- package/dist/cjs/store/sqlite/open.d.ts +1 -1
- package/dist/cjs/store/sqlite/open.js +84 -90
- package/dist/cjs/store/sqlite/open.js.map +1 -1
- package/dist/cjs/store/sqlite/reconcile.js.map +1 -1
- package/dist/cjs/store/sqlite/store.js +63 -60
- package/dist/cjs/store/sqlite/store.js.map +1 -1
- package/dist/cjs/store/sqlite/vectors.d.cts +2 -2
- package/dist/cjs/store/sqlite/vectors.d.ts +2 -2
- package/dist/cjs/store/sqlite/vectors.js +8 -4
- package/dist/cjs/store/sqlite/vectors.js.map +1 -1
- package/dist/cjs/store/stages.js.map +1 -1
- package/dist/cjs/store/turso/connection.d.cts +1 -0
- package/dist/cjs/store/turso/connection.d.ts +1 -0
- package/dist/cjs/store/turso/connection.js +319 -94
- package/dist/cjs/store/turso/connection.js.map +1 -1
- package/dist/cjs/store/turso/open.d.cts +1 -1
- package/dist/cjs/store/turso/open.d.ts +1 -1
- package/dist/cjs/store/turso/open.js +70 -74
- package/dist/cjs/store/turso/open.js.map +1 -1
- package/dist/cjs/store/turso/store.js +25 -23
- package/dist/cjs/store/turso/store.js.map +1 -1
- package/dist/cjs/store/turso/vectors.d.cts +2 -2
- package/dist/cjs/store/turso/vectors.d.ts +2 -2
- package/dist/cjs/store/turso/vectors.js +26 -16
- package/dist/cjs/store/turso/vectors.js.map +1 -1
- package/dist/cjs/store/types.d.cts +4 -1
- package/dist/cjs/store/types.d.ts +4 -1
- package/dist/cjs/store/types.js.map +1 -1
- package/dist/cjs/store/vectors.d.cts +14 -1
- package/dist/cjs/store/vectors.d.ts +14 -1
- package/dist/cjs/store/vectors.js +61 -0
- package/dist/cjs/store/vectors.js.map +1 -1
- package/dist/cjs/watch.d.cts +6 -0
- package/dist/cjs/watch.d.ts +6 -0
- package/dist/cjs/watch.js +42 -10
- package/dist/cjs/watch.js.map +1 -1
- package/dist/cjs/workers/parse.d.cts +4 -3
- package/dist/cjs/workers/parse.d.ts +4 -3
- package/dist/cjs/workers/parse.js +19 -17
- package/dist/cjs/workers/parse.js.map +1 -1
- package/dist/esm/cli/index.d.ts +3 -3
- package/dist/esm/cli/index.js +3 -3
- package/dist/esm/cli/index.js.map +1 -1
- package/dist/esm/cli/path.js +4 -10
- package/dist/esm/cli/path.js.map +1 -1
- package/dist/esm/cli/peek.js +20 -2
- package/dist/esm/cli/peek.js.map +1 -1
- package/dist/esm/cli/related.js +5 -3
- package/dist/esm/cli/related.js.map +1 -1
- package/dist/esm/cli/search.js +12 -2
- package/dist/esm/cli/search.js.map +1 -1
- package/dist/esm/commands/index.d.ts +6 -3
- package/dist/esm/commands/index.js +1 -0
- package/dist/esm/commands/index.js.map +1 -1
- package/dist/esm/commands/map.d.ts +14 -5
- package/dist/esm/commands/map.js +2 -0
- package/dist/esm/commands/map.js.map +1 -1
- package/dist/esm/commands/path.d.ts +14 -0
- package/dist/esm/commands/path.js +33 -0
- package/dist/esm/commands/path.js.map +1 -0
- package/dist/esm/commands/peek.d.ts +25 -2
- package/dist/esm/commands/peek.js +59 -19
- package/dist/esm/commands/peek.js.map +1 -1
- package/dist/esm/commands/related.d.ts +16 -3
- package/dist/esm/commands/related.js +45 -28
- package/dist/esm/commands/related.js.map +1 -1
- package/dist/esm/commands/scope.d.ts +1 -0
- package/dist/esm/commands/scope.js +58 -0
- package/dist/esm/commands/scope.js.map +1 -1
- package/dist/esm/commands/search.d.ts +30 -3
- package/dist/esm/commands/search.js +95 -20
- package/dist/esm/commands/search.js.map +1 -1
- package/dist/esm/commands/signals.d.ts +22 -7
- package/dist/esm/commands/signals.js +74 -17
- package/dist/esm/commands/signals.js.map +1 -1
- package/dist/esm/commands/snapshot.d.ts +3 -0
- package/dist/esm/commands/snapshot.js +25 -0
- package/dist/esm/commands/snapshot.js.map +1 -0
- package/dist/esm/config/load.js +6 -0
- package/dist/esm/config/load.js.map +1 -1
- package/dist/esm/embed/cohere.js +35 -10
- package/dist/esm/embed/cohere.js.map +1 -1
- package/dist/esm/embed/endpoint.d.ts +2 -0
- package/dist/esm/embed/endpoint.js +11 -0
- package/dist/esm/embed/endpoint.js.map +1 -0
- package/dist/esm/embed/handoff.d.ts +7 -2
- package/dist/esm/embed/handoff.js +7 -0
- package/dist/esm/embed/handoff.js.map +1 -1
- package/dist/esm/embed/http.d.ts +18 -1
- package/dist/esm/embed/http.js +137 -17
- package/dist/esm/embed/http.js.map +1 -1
- package/dist/esm/embed/openai.js +34 -12
- package/dist/esm/embed/openai.js.map +1 -1
- package/dist/esm/embed/query.d.ts +9 -3
- package/dist/esm/embed/query.js +98 -26
- package/dist/esm/embed/query.js.map +1 -1
- package/dist/esm/embed/registry.d.ts +2 -2
- package/dist/esm/embed/registry.js +34 -5
- package/dist/esm/embed/registry.js.map +1 -1
- package/dist/esm/embed/static.js +10 -2
- package/dist/esm/embed/static.js.map +1 -1
- package/dist/esm/embed/store.js +30 -21
- package/dist/esm/embed/store.js.map +1 -1
- package/dist/esm/embed/types.d.ts +5 -2
- package/dist/esm/embed/types.js.map +1 -1
- package/dist/esm/features/embed.js +82 -21
- package/dist/esm/features/embed.js.map +1 -1
- package/dist/esm/graph/traverse.d.ts +2 -2
- package/dist/esm/graph/traverse.js +4 -2
- package/dist/esm/graph/traverse.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/output/output.d.ts +4 -36
- package/dist/esm/output/output.js +1 -2
- package/dist/esm/output/output.js.map +1 -1
- package/dist/esm/scan/pool.d.ts +2 -1
- package/dist/esm/scan/pool.js +80 -23
- package/dist/esm/scan/pool.js.map +1 -1
- package/dist/esm/scan/reparse.d.ts +1 -0
- package/dist/esm/scan/reparse.js +40 -12
- package/dist/esm/scan/reparse.js.map +1 -1
- package/dist/esm/store/builder.d.ts +11 -21
- package/dist/esm/store/builder.js +337 -133
- package/dist/esm/store/builder.js.map +1 -1
- package/dist/esm/store/duckdb/connection.js +9 -1
- package/dist/esm/store/duckdb/connection.js.map +1 -1
- package/dist/esm/store/duckdb/open.d.ts +1 -1
- package/dist/esm/store/duckdb/open.js +13 -9
- package/dist/esm/store/duckdb/open.js.map +1 -1
- package/dist/esm/store/duckdb/reconcile.js +145 -10
- package/dist/esm/store/duckdb/reconcile.js.map +1 -1
- package/dist/esm/store/embed-scope.js +16 -6
- package/dist/esm/store/embed-scope.js.map +1 -1
- package/dist/esm/store/index.d.ts +6 -0
- package/dist/esm/store/index.js +10 -4
- package/dist/esm/store/index.js.map +1 -1
- package/dist/esm/store/open.d.ts +6 -1
- package/dist/esm/store/open.js +77 -87
- package/dist/esm/store/open.js.map +1 -1
- package/dist/esm/store/readiness.d.ts +5 -0
- package/dist/esm/store/readiness.js +11 -0
- package/dist/esm/store/readiness.js.map +1 -0
- package/dist/esm/store/reconcile.d.ts +26 -1
- package/dist/esm/store/reconcile.js +142 -120
- package/dist/esm/store/reconcile.js.map +1 -1
- package/dist/esm/store/signature.d.ts +1 -0
- package/dist/esm/store/signature.js +8 -0
- package/dist/esm/store/signature.js.map +1 -1
- package/dist/esm/store/sqlite/open.d.ts +1 -1
- package/dist/esm/store/sqlite/open.js +12 -12
- package/dist/esm/store/sqlite/open.js.map +1 -1
- package/dist/esm/store/sqlite/reconcile.js +2 -2
- package/dist/esm/store/sqlite/reconcile.js.map +1 -1
- package/dist/esm/store/sqlite/store.js +21 -18
- package/dist/esm/store/sqlite/store.js.map +1 -1
- package/dist/esm/store/sqlite/vectors.d.ts +2 -2
- package/dist/esm/store/sqlite/vectors.js +7 -5
- package/dist/esm/store/sqlite/vectors.js.map +1 -1
- package/dist/esm/store/stages.js.map +1 -1
- package/dist/esm/store/turso/connection.d.ts +1 -0
- package/dist/esm/store/turso/connection.js +97 -28
- package/dist/esm/store/turso/connection.js.map +1 -1
- package/dist/esm/store/turso/open.d.ts +1 -1
- package/dist/esm/store/turso/open.js +9 -8
- package/dist/esm/store/turso/open.js.map +1 -1
- package/dist/esm/store/turso/store.js +16 -14
- package/dist/esm/store/turso/store.js.map +1 -1
- package/dist/esm/store/turso/vectors.d.ts +2 -2
- package/dist/esm/store/turso/vectors.js +27 -17
- package/dist/esm/store/turso/vectors.js.map +1 -1
- package/dist/esm/store/types.d.ts +4 -1
- package/dist/esm/store/types.js.map +1 -1
- package/dist/esm/store/vectors.d.ts +14 -1
- package/dist/esm/store/vectors.js +55 -0
- package/dist/esm/store/vectors.js.map +1 -1
- package/dist/esm/watch.d.ts +6 -0
- package/dist/esm/watch.js +40 -14
- package/dist/esm/watch.js.map +1 -1
- package/dist/esm/workers/parse.d.ts +4 -3
- package/dist/esm/workers/parse.js +19 -17
- package/dist/esm/workers/parse.js.map +1 -1
- package/package.json +1 -1
- package/skills/sense/EXAMPLES.md +3 -3
- package/skills/sense/SKILL.md +11 -3
- package/skills/sense/references/search.md +17 -1
- package/skills/sense/references/sql.md +1 -1
- package/skills/sense/references/stores/duckdb.md +1 -1
- package/skills/sense/references/terminology.md +32 -0
- package/skills/sense-setup/SKILL.md +2 -2
- package/skills/sense-setup/references/embeddings.md +1 -1
- package/skills/sense-setup/references/store-benchmarks.md +5 -5
- package/skills/sense-setup/references/stores/duckdb.md +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ResolvedConfig } from '../config/index.js';
|
|
2
|
-
import type { Row } from '../output/output.js';
|
|
3
2
|
import type { Store } from '../store/types.js';
|
|
3
|
+
import type { SearchResultVia, SearchSignalContribution } from './signals.js';
|
|
4
|
+
export type { SearchResultVia, SearchSignalContribution } from './signals.js';
|
|
4
5
|
export declare const SNIPPET_CHAR_LIMIT_DEFAULT = 80;
|
|
5
6
|
export declare const SNIPPET_COUNT_LIMIT_DEFAULT = 1;
|
|
6
7
|
export declare function computeSnippets(text: string, terms: string[], charLimit: number, countLimit: number): {
|
|
@@ -8,8 +9,11 @@ export declare function computeSnippets(text: string, terms: string[], charLimit
|
|
|
8
9
|
offset: number;
|
|
9
10
|
};
|
|
10
11
|
export declare function lineNumberAt(text: string, offset: number): number;
|
|
12
|
+
/** Options for the root {@link search} API. */
|
|
11
13
|
export interface SearchOptions {
|
|
12
14
|
k?: number;
|
|
15
|
+
/** Collects ranking contributions for returned candidates; omitted or false preserves ordinary output. */
|
|
16
|
+
explain?: boolean;
|
|
13
17
|
where?: string;
|
|
14
18
|
preset?: string;
|
|
15
19
|
include?: string[];
|
|
@@ -17,6 +21,29 @@ export interface SearchOptions {
|
|
|
17
21
|
noExclude?: boolean;
|
|
18
22
|
snippetCharLimit?: number;
|
|
19
23
|
snippetCountLimit?: number;
|
|
24
|
+
/** Cancels supported provider I/O and stops between phases after active native work finishes. */
|
|
25
|
+
signal?: AbortSignal;
|
|
20
26
|
}
|
|
21
|
-
export
|
|
22
|
-
|
|
27
|
+
export type SearchResult = {
|
|
28
|
+
path: string;
|
|
29
|
+
title: string;
|
|
30
|
+
summary: string;
|
|
31
|
+
snippets: string[];
|
|
32
|
+
via: SearchResultVia;
|
|
33
|
+
score: number;
|
|
34
|
+
lines: string | null;
|
|
35
|
+
similarity?: number | null;
|
|
36
|
+
/** Present only with explain: true, in words/links/vectors order; contributions can differ from via labels. */
|
|
37
|
+
explanation?: SearchSignalContribution[];
|
|
38
|
+
};
|
|
39
|
+
export interface SearchHydrationRow {
|
|
40
|
+
path: string;
|
|
41
|
+
snippets?: string[];
|
|
42
|
+
lines?: string | null;
|
|
43
|
+
}
|
|
44
|
+
export declare function hydrateSearchRows(store: Store, cfg: ResolvedConfig, rows: SearchHydrationRow[], matchedPaths: Set<string>, terms: string, opts?: Pick<SearchOptions, 'snippetCharLimit' | 'snippetCountLimit'>): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Searches one committed published generation. Provider work precedes the final read transaction;
|
|
47
|
+
* cancellation waits for active native work and transaction cleanup before rejection.
|
|
48
|
+
*/
|
|
49
|
+
export declare function search(store: Store, cfg: ResolvedConfig, terms: string, opts?: SearchOptions): Promise<SearchResult[]>;
|
|
@@ -28,6 +28,7 @@ _export(exports, {
|
|
|
28
28
|
return search;
|
|
29
29
|
}
|
|
30
30
|
});
|
|
31
|
+
var _nodediagnostics_channel = require("node:diagnostics_channel");
|
|
31
32
|
var _stemmer = require("stemmer");
|
|
32
33
|
var _indexts = require("../config/index.js");
|
|
33
34
|
var _queryts = require("../embed/query.js");
|
|
@@ -38,6 +39,7 @@ var _searcherrorts = require("../output/search-error.js");
|
|
|
38
39
|
var _segmentts = require("../text/segment.js");
|
|
39
40
|
var _scopets = require("./scope.js");
|
|
40
41
|
var _signalsts = require("./signals.js");
|
|
42
|
+
var _snapshotts = require("./snapshot.js");
|
|
41
43
|
function _array_like_to_array(arr, len) {
|
|
42
44
|
if (len == null || len > arr.length) len = arr.length;
|
|
43
45
|
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
@@ -225,6 +227,7 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
225
227
|
}
|
|
226
228
|
var SNIPPET_CHAR_LIMIT_DEFAULT = 80;
|
|
227
229
|
var SNIPPET_COUNT_LIMIT_DEFAULT = 1;
|
|
230
|
+
var searchCandidatesRead = (0, _nodediagnostics_channel.channel)('sensemaking.search.candidates-read');
|
|
228
231
|
// Bare terms from an FTS5 query string: strips operators/quoting, not real terms, so the
|
|
229
232
|
// snippet scan matches what the query matched -- FTS5 operators are uppercase-only, so this is too.
|
|
230
233
|
function extractBareTerms(query) {
|
|
@@ -628,6 +631,9 @@ function lineRangeFor(store, path, line) {
|
|
|
628
631
|
})();
|
|
629
632
|
}
|
|
630
633
|
function validateSearchOptions(opts) {
|
|
634
|
+
if (opts.explain !== undefined && typeof opts.explain !== 'boolean') {
|
|
635
|
+
throw new _errorsts.SenseError('SEARCH_OPTION_INVALID', 'search option "explain" must be a boolean, got '.concat(String(opts.explain)));
|
|
636
|
+
}
|
|
631
637
|
for(var _i = 0, _iter = [
|
|
632
638
|
[
|
|
633
639
|
'k',
|
|
@@ -765,29 +771,35 @@ function hydrateSearchRows(_0, _1, _2, _3, _4) {
|
|
|
765
771
|
}
|
|
766
772
|
function search(store, cfg, terms) {
|
|
767
773
|
var opts = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
|
|
774
|
+
var _opts_signal;
|
|
775
|
+
if ((_opts_signal = opts.signal) === null || _opts_signal === void 0 ? void 0 : _opts_signal.aborted) return Promise.reject(opts.signal.reason);
|
|
768
776
|
return (0, _serialqueryts.serialQuery)(store, function() {
|
|
769
777
|
return searchIndexed(store, cfg, terms, opts);
|
|
770
778
|
});
|
|
771
779
|
}
|
|
772
|
-
function
|
|
780
|
+
function readSearchScope(store, cfg, terms, opts) {
|
|
773
781
|
return _async_to_generator(function() {
|
|
774
|
-
var
|
|
782
|
+
var signature, effective, allPaths, scopePaths, allowedPaths, err, wantsVectors, semanticEligible, _tmp;
|
|
775
783
|
return _ts_generator(this, function(_state) {
|
|
776
784
|
switch(_state.label){
|
|
777
785
|
case 0:
|
|
778
|
-
|
|
786
|
+
return [
|
|
787
|
+
4,
|
|
788
|
+
(0, _snapshotts.assertQuerySnapshot)(store, cfg)
|
|
789
|
+
];
|
|
790
|
+
case 1:
|
|
791
|
+
signature = _state.sent();
|
|
779
792
|
effective = (0, _indexts.resolveSearch)(cfg, opts);
|
|
780
|
-
k = effective.k, signals = effective.signals;
|
|
781
793
|
return [
|
|
782
794
|
4,
|
|
783
795
|
store.prepare('SELECT "path" FROM frontmatter')
|
|
784
796
|
];
|
|
785
|
-
case
|
|
797
|
+
case 2:
|
|
786
798
|
return [
|
|
787
799
|
4,
|
|
788
800
|
_state.sent().all()
|
|
789
801
|
];
|
|
790
|
-
case
|
|
802
|
+
case 3:
|
|
791
803
|
allPaths = _state.sent().map(function(r) {
|
|
792
804
|
return r.path;
|
|
793
805
|
});
|
|
@@ -795,65 +807,191 @@ function searchIndexed(store, cfg, terms, opts) {
|
|
|
795
807
|
4,
|
|
796
808
|
(0, _scopets.rawScope)(store, cfg, opts, allPaths)
|
|
797
809
|
];
|
|
798
|
-
case 3:
|
|
799
|
-
scopePaths = _state.sent();
|
|
800
|
-
scopeActive = scopePaths.size < allPaths.length;
|
|
801
|
-
_state.label = 4;
|
|
802
810
|
case 4:
|
|
811
|
+
scopePaths = _state.sent();
|
|
812
|
+
_state.label = 5;
|
|
813
|
+
case 5:
|
|
803
814
|
_state.trys.push([
|
|
804
|
-
|
|
805
|
-
|
|
815
|
+
5,
|
|
816
|
+
7,
|
|
806
817
|
,
|
|
807
|
-
|
|
818
|
+
8
|
|
808
819
|
]);
|
|
809
820
|
return [
|
|
810
821
|
4,
|
|
811
822
|
(0, _scopets.narrowByWhere)(store, scopePaths, effective.where)
|
|
812
823
|
];
|
|
813
|
-
case
|
|
824
|
+
case 6:
|
|
814
825
|
allowedPaths = _state.sent();
|
|
815
826
|
return [
|
|
816
827
|
3,
|
|
817
|
-
|
|
828
|
+
8
|
|
818
829
|
];
|
|
819
|
-
case 6:
|
|
820
|
-
err1 = _state.sent();
|
|
821
|
-
throw (0, _searcherrorts.searchError)(err1, terms, effective.where);
|
|
822
830
|
case 7:
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
wantsVectors = signals.vectors !== undefined;
|
|
831
|
+
err = _state.sent();
|
|
832
|
+
throw (0, _searcherrorts.searchError)(err, terms, effective.where);
|
|
833
|
+
case 8:
|
|
834
|
+
wantsVectors = effective.signals.vectors !== undefined;
|
|
827
835
|
if (!wantsVectors) return [
|
|
828
836
|
3,
|
|
829
|
-
|
|
837
|
+
10
|
|
830
838
|
];
|
|
831
|
-
e = (0, _indexts.embedConfig)(cfg); // validate.ts guarantees this is set whenever "vectors" is declared
|
|
832
|
-
if ((0, _storets.localModelMissing)(e)) {
|
|
833
|
-
throw new _errorsts.SenseError('EMBED_MODEL_MISSING', 'preset "'.concat(effective.presetName, '" searches with vectors, but the local model path "').concat(e.model, '" is missing ').concat(_storets.MODEL_FILENAMES, '; point embed.model at a directory containing them, or drop "vectors" from that preset\'s signals to search without them'));
|
|
834
|
-
}
|
|
835
839
|
return [
|
|
836
840
|
4,
|
|
837
841
|
(0, _queryts.ensureDocumentEmbeddings)(store, cfg, allowedPaths)
|
|
838
842
|
];
|
|
839
|
-
case 8:
|
|
840
|
-
_state.sent();
|
|
841
|
-
_state.label = 9;
|
|
842
843
|
case 9:
|
|
844
|
+
_state.sent();
|
|
845
|
+
_state.label = 10;
|
|
846
|
+
case 10:
|
|
843
847
|
_tmp = wantsVectors;
|
|
844
848
|
if (!_tmp) return [
|
|
845
849
|
3,
|
|
846
|
-
|
|
850
|
+
12
|
|
847
851
|
];
|
|
848
852
|
return [
|
|
849
853
|
4,
|
|
850
854
|
(0, _scopets.scopeHasEmbeddings)(store, cfg, allowedPaths)
|
|
851
855
|
];
|
|
852
|
-
case 10:
|
|
853
|
-
_tmp = _state.sent();
|
|
854
|
-
_state.label = 11;
|
|
855
856
|
case 11:
|
|
856
|
-
|
|
857
|
+
_tmp = _state.sent();
|
|
858
|
+
_state.label = 12;
|
|
859
|
+
case 12:
|
|
860
|
+
semanticEligible = _tmp;
|
|
861
|
+
return [
|
|
862
|
+
2,
|
|
863
|
+
{
|
|
864
|
+
signature: signature,
|
|
865
|
+
effective: effective,
|
|
866
|
+
allPaths: allPaths,
|
|
867
|
+
scopePaths: scopePaths,
|
|
868
|
+
allowedPaths: allowedPaths,
|
|
869
|
+
semanticEligible: semanticEligible
|
|
870
|
+
}
|
|
871
|
+
];
|
|
872
|
+
}
|
|
873
|
+
});
|
|
874
|
+
})();
|
|
875
|
+
}
|
|
876
|
+
function needsSemanticPreparation(result) {
|
|
877
|
+
return !Array.isArray(result);
|
|
878
|
+
}
|
|
879
|
+
function searchIndexed(store, cfg, terms, opts) {
|
|
880
|
+
return _async_to_generator(function() {
|
|
881
|
+
var _opts_signal, _opts_signal1, _opts_signal2, _opts_signal3, _opts_signal4, initial, wantsVectors, e, prepared, preparedSignature, _opts_signal5, preflight, _opts_signal6, result;
|
|
882
|
+
return _ts_generator(this, function(_state) {
|
|
883
|
+
switch(_state.label){
|
|
884
|
+
case 0:
|
|
885
|
+
validateSearchOptions(opts);
|
|
886
|
+
initial = (0, _indexts.resolveSearch)(cfg, opts);
|
|
887
|
+
(_opts_signal = opts.signal) === null || _opts_signal === void 0 ? void 0 : _opts_signal.throwIfAborted();
|
|
888
|
+
// A downloadable HF id proceeds -- getProvider fetches it lazily on consent. Only a
|
|
889
|
+
// local path with missing files errors here, since nothing will ever fetch it for itself.
|
|
890
|
+
wantsVectors = initial.signals.vectors !== undefined;
|
|
891
|
+
if (wantsVectors) {
|
|
892
|
+
e = (0, _indexts.embedConfig)(cfg); // validate.ts guarantees this is set whenever "vectors" is declared
|
|
893
|
+
if ((0, _storets.localModelMissing)(e)) {
|
|
894
|
+
throw new _errorsts.SenseError('EMBED_MODEL_MISSING', 'preset "'.concat(initial.presetName, '" searches with vectors, but the local model path "').concat(e.model, '" is missing ').concat(_storets.MODEL_FILENAMES, '; point embed.model at a directory containing them, or drop "vectors" from that preset\'s signals to search without them'));
|
|
895
|
+
}
|
|
896
|
+
}
|
|
897
|
+
if (!wantsVectors) return [
|
|
898
|
+
3,
|
|
899
|
+
3
|
|
900
|
+
];
|
|
901
|
+
return [
|
|
902
|
+
4,
|
|
903
|
+
store.transaction(function() {
|
|
904
|
+
return readSearchScope(store, cfg, terms, opts);
|
|
905
|
+
})
|
|
906
|
+
];
|
|
907
|
+
case 1:
|
|
908
|
+
preflight = _state.sent();
|
|
909
|
+
(_opts_signal5 = opts.signal) === null || _opts_signal5 === void 0 ? void 0 : _opts_signal5.throwIfAborted();
|
|
910
|
+
if (!preflight.semanticEligible) return [
|
|
911
|
+
3,
|
|
912
|
+
3
|
|
913
|
+
];
|
|
914
|
+
preparedSignature = preflight.signature;
|
|
915
|
+
return [
|
|
916
|
+
4,
|
|
917
|
+
(0, _queryts.prepareSemanticQuery)(cfg, terms, {
|
|
918
|
+
signal: opts.signal
|
|
919
|
+
})
|
|
920
|
+
];
|
|
921
|
+
case 2:
|
|
922
|
+
prepared = _state.sent();
|
|
923
|
+
(_opts_signal6 = opts.signal) === null || _opts_signal6 === void 0 ? void 0 : _opts_signal6.throwIfAborted();
|
|
924
|
+
_state.label = 3;
|
|
925
|
+
case 3:
|
|
926
|
+
(_opts_signal1 = opts.signal) === null || _opts_signal1 === void 0 ? void 0 : _opts_signal1.throwIfAborted();
|
|
927
|
+
return [
|
|
928
|
+
4,
|
|
929
|
+
store.transaction(function() {
|
|
930
|
+
return searchSnapshot(store, cfg, terms, opts, prepared, preparedSignature);
|
|
931
|
+
})
|
|
932
|
+
];
|
|
933
|
+
case 4:
|
|
934
|
+
result = _state.sent();
|
|
935
|
+
(_opts_signal2 = opts.signal) === null || _opts_signal2 === void 0 ? void 0 : _opts_signal2.throwIfAborted();
|
|
936
|
+
if (!needsSemanticPreparation(result)) return [
|
|
937
|
+
2,
|
|
938
|
+
result
|
|
939
|
+
];
|
|
940
|
+
// The scope became vector-eligible after an empty/ineligible preflight. Leave that snapshot,
|
|
941
|
+
// prepare once, then take a fresh final snapshot rather than waiting on the provider inside it.
|
|
942
|
+
preparedSignature = result.signature;
|
|
943
|
+
return [
|
|
944
|
+
4,
|
|
945
|
+
(0, _queryts.prepareSemanticQuery)(cfg, terms, {
|
|
946
|
+
signal: opts.signal
|
|
947
|
+
})
|
|
948
|
+
];
|
|
949
|
+
case 5:
|
|
950
|
+
prepared = _state.sent();
|
|
951
|
+
(_opts_signal3 = opts.signal) === null || _opts_signal3 === void 0 ? void 0 : _opts_signal3.throwIfAborted();
|
|
952
|
+
return [
|
|
953
|
+
4,
|
|
954
|
+
store.transaction(function() {
|
|
955
|
+
return searchSnapshot(store, cfg, terms, opts, prepared, preparedSignature);
|
|
956
|
+
})
|
|
957
|
+
];
|
|
958
|
+
case 6:
|
|
959
|
+
result = _state.sent();
|
|
960
|
+
(_opts_signal4 = opts.signal) === null || _opts_signal4 === void 0 ? void 0 : _opts_signal4.throwIfAborted();
|
|
961
|
+
if (needsSemanticPreparation(result)) throw new _errorsts.SenseError('INDEX_NOT_READY', 'the semantic search scope changed while its query was being prepared; retry the search against a stable published index');
|
|
962
|
+
return [
|
|
963
|
+
2,
|
|
964
|
+
result
|
|
965
|
+
];
|
|
966
|
+
}
|
|
967
|
+
});
|
|
968
|
+
})();
|
|
969
|
+
}
|
|
970
|
+
function searchSnapshot(store, cfg, terms, opts, prepared, preparedSignature) {
|
|
971
|
+
return _async_to_generator(function() {
|
|
972
|
+
var _ref, signature, effective, allPaths, scopePaths, allowedPaths, semanticEligible, k, signals, fetch, scopeActive, semanticEnabled, scope, whereJoin, whereCond, scopeCond, candidates, matchRows, hasEmptyPhrase, hasBareSyntaxOnly, syntaxError, err1, matchedPaths, chunkLines, chunkSimilarity, ref, where, similarityCol, selectStmt, rows, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, row, _ref1, _candidates_get, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, row1;
|
|
973
|
+
return _ts_generator(this, function(_state) {
|
|
974
|
+
switch(_state.label){
|
|
975
|
+
case 0:
|
|
976
|
+
return [
|
|
977
|
+
4,
|
|
978
|
+
readSearchScope(store, cfg, terms, opts)
|
|
979
|
+
];
|
|
980
|
+
case 1:
|
|
981
|
+
_ref = _state.sent(), signature = _ref.signature, effective = _ref.effective, allPaths = _ref.allPaths, scopePaths = _ref.scopePaths, allowedPaths = _ref.allowedPaths, semanticEligible = _ref.semanticEligible;
|
|
982
|
+
if (prepared !== undefined && signature !== preparedSignature) {
|
|
983
|
+
throw new _errorsts.SenseError('INDEX_NOT_READY', 'the index configuration changed while the semantic query was being prepared; retry after the current build finishes, or rebuild the index for this configuration');
|
|
984
|
+
}
|
|
985
|
+
if (semanticEligible && prepared === undefined) return [
|
|
986
|
+
2,
|
|
987
|
+
{
|
|
988
|
+
signature: signature
|
|
989
|
+
}
|
|
990
|
+
];
|
|
991
|
+
k = effective.k, signals = effective.signals;
|
|
992
|
+
fetch = Math.max(k * 3, 30);
|
|
993
|
+
scopeActive = scopePaths.size < allPaths.length;
|
|
994
|
+
semanticEnabled = semanticEligible && prepared !== undefined;
|
|
857
995
|
// --where applies inside the candidate query (a post-filter would drop matches ranked past
|
|
858
996
|
// the pool) and again on the final select, for link-derived rows.
|
|
859
997
|
scope = effective.where;
|
|
@@ -861,16 +999,16 @@ function searchIndexed(store, cfg, terms, opts) {
|
|
|
861
999
|
whereCond = scope ? "AND (".concat(scope, ")") : '';
|
|
862
1000
|
if (!scopeActive) return [
|
|
863
1001
|
3,
|
|
864
|
-
|
|
1002
|
+
3
|
|
865
1003
|
];
|
|
866
1004
|
return [
|
|
867
1005
|
4,
|
|
868
1006
|
(0, _scopets.materializeScope)(store, '_search_scope', scopePaths)
|
|
869
1007
|
];
|
|
870
|
-
case
|
|
1008
|
+
case 2:
|
|
871
1009
|
_state.sent();
|
|
872
|
-
_state.label =
|
|
873
|
-
case
|
|
1010
|
+
_state.label = 3;
|
|
1011
|
+
case 3:
|
|
874
1012
|
scopeCond = scopeActive ? 'AND content.path IN (SELECT "path" FROM _search_scope)' : '';
|
|
875
1013
|
candidates = new Map();
|
|
876
1014
|
matchRows = [];
|
|
@@ -880,32 +1018,32 @@ function searchIndexed(store, cfg, terms, opts) {
|
|
|
880
1018
|
hasBareSyntaxOnly = RegExp("[()]", "u").test(terms.replace(/"[^"]*"/g, ' '));
|
|
881
1019
|
if (!(signals.words !== undefined && terms.trim() !== '' && (RegExp("[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376-\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E-\\u066F\\u0671-\\u06D3\\u06D5\\u06E5-\\u06E6\\u06EE-\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4-\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088F\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F-\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC-\\u09DD\\u09DF-\\u09E1\\u09F0-\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F-\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32-\\u0A33\\u0A35-\\u0A36\\u0A38-\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2-\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0-\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F-\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32-\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C-\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99-\\u0B9A\\u0B9C\\u0B9E-\\u0B9F\\u0BA3-\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5C-\\u0C5D\\u0C60-\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDC-\\u0CDE\\u0CE0-\\u0CE1\\u0CF1-\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E46\\u0E81-\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065-\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE-\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C8A\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5-\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183-\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3006\\u3031-\\u3035\\u303B-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7DC\\uA7F1-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD-\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40-\\uFB41\\uFB43-\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\\u{10000}-\\u{1000B}\\u{1000D}-\\u{10026}\\u{10028}-\\u{1003A}\\u{1003C}-\\u{1003D}\\u{1003F}-\\u{1004D}\\u{10050}-\\u{1005D}\\u{10080}-\\u{100FA}\\u{10280}-\\u{1029C}\\u{102A0}-\\u{102D0}\\u{10300}-\\u{1031F}\\u{1032D}-\\u{10340}\\u{10342}-\\u{10349}\\u{10350}-\\u{10375}\\u{10380}-\\u{1039D}\\u{103A0}-\\u{103C3}\\u{103C8}-\\u{103CF}\\u{10400}-\\u{1049D}\\u{104B0}-\\u{104D3}\\u{104D8}-\\u{104FB}\\u{10500}-\\u{10527}\\u{10530}-\\u{10563}\\u{10570}-\\u{1057A}\\u{1057C}-\\u{1058A}\\u{1058C}-\\u{10592}\\u{10594}-\\u{10595}\\u{10597}-\\u{105A1}\\u{105A3}-\\u{105B1}\\u{105B3}-\\u{105B9}\\u{105BB}-\\u{105BC}\\u{105C0}-\\u{105F3}\\u{10600}-\\u{10736}\\u{10740}-\\u{10755}\\u{10760}-\\u{10767}\\u{10780}-\\u{10785}\\u{10787}-\\u{107B0}\\u{107B2}-\\u{107BA}\\u{10800}-\\u{10805}\\u{10808}\\u{1080A}-\\u{10835}\\u{10837}-\\u{10838}\\u{1083C}\\u{1083F}-\\u{10855}\\u{10860}-\\u{10876}\\u{10880}-\\u{1089E}\\u{108E0}-\\u{108F2}\\u{108F4}-\\u{108F5}\\u{10900}-\\u{10915}\\u{10920}-\\u{10939}\\u{10940}-\\u{10959}\\u{10980}-\\u{109B7}\\u{109BE}-\\u{109BF}\\u{10A00}\\u{10A10}-\\u{10A13}\\u{10A15}-\\u{10A17}\\u{10A19}-\\u{10A35}\\u{10A60}-\\u{10A7C}\\u{10A80}-\\u{10A9C}\\u{10AC0}-\\u{10AC7}\\u{10AC9}-\\u{10AE4}\\u{10B00}-\\u{10B35}\\u{10B40}-\\u{10B55}\\u{10B60}-\\u{10B72}\\u{10B80}-\\u{10B91}\\u{10C00}-\\u{10C48}\\u{10C80}-\\u{10CB2}\\u{10CC0}-\\u{10CF2}\\u{10D00}-\\u{10D23}\\u{10D4A}-\\u{10D65}\\u{10D6F}-\\u{10D85}\\u{10E80}-\\u{10EA9}\\u{10EB0}-\\u{10EB1}\\u{10EC2}-\\u{10EC7}\\u{10F00}-\\u{10F1C}\\u{10F27}\\u{10F30}-\\u{10F45}\\u{10F70}-\\u{10F81}\\u{10FB0}-\\u{10FC4}\\u{10FE0}-\\u{10FF6}\\u{11003}-\\u{11037}\\u{11071}-\\u{11072}\\u{11075}\\u{11083}-\\u{110AF}\\u{110D0}-\\u{110E8}\\u{11103}-\\u{11126}\\u{11144}\\u{11147}\\u{11150}-\\u{11172}\\u{11176}\\u{11183}-\\u{111B2}\\u{111C1}-\\u{111C4}\\u{111DA}\\u{111DC}\\u{11200}-\\u{11211}\\u{11213}-\\u{1122B}\\u{1123F}-\\u{11240}\\u{11280}-\\u{11286}\\u{11288}\\u{1128A}-\\u{1128D}\\u{1128F}-\\u{1129D}\\u{1129F}-\\u{112A8}\\u{112B0}-\\u{112DE}\\u{11305}-\\u{1130C}\\u{1130F}-\\u{11310}\\u{11313}-\\u{11328}\\u{1132A}-\\u{11330}\\u{11332}-\\u{11333}\\u{11335}-\\u{11339}\\u{1133D}\\u{11350}\\u{1135D}-\\u{11361}\\u{11380}-\\u{11389}\\u{1138B}\\u{1138E}\\u{11390}-\\u{113B5}\\u{113B7}\\u{113D1}\\u{113D3}\\u{11400}-\\u{11434}\\u{11447}-\\u{1144A}\\u{1145F}-\\u{11461}\\u{11480}-\\u{114AF}\\u{114C4}-\\u{114C5}\\u{114C7}\\u{11580}-\\u{115AE}\\u{115D8}-\\u{115DB}\\u{11600}-\\u{1162F}\\u{11644}\\u{11680}-\\u{116AA}\\u{116B8}\\u{11700}-\\u{1171A}\\u{11740}-\\u{11746}\\u{11800}-\\u{1182B}\\u{118A0}-\\u{118DF}\\u{118FF}-\\u{11906}\\u{11909}\\u{1190C}-\\u{11913}\\u{11915}-\\u{11916}\\u{11918}-\\u{1192F}\\u{1193F}\\u{11941}\\u{119A0}-\\u{119A7}\\u{119AA}-\\u{119D0}\\u{119E1}\\u{119E3}\\u{11A00}\\u{11A0B}-\\u{11A32}\\u{11A3A}\\u{11A50}\\u{11A5C}-\\u{11A89}\\u{11A9D}\\u{11AB0}-\\u{11AF8}\\u{11BC0}-\\u{11BE0}\\u{11C00}-\\u{11C08}\\u{11C0A}-\\u{11C2E}\\u{11C40}\\u{11C72}-\\u{11C8F}\\u{11D00}-\\u{11D06}\\u{11D08}-\\u{11D09}\\u{11D0B}-\\u{11D30}\\u{11D46}\\u{11D60}-\\u{11D65}\\u{11D67}-\\u{11D68}\\u{11D6A}-\\u{11D89}\\u{11D98}\\u{11DB0}-\\u{11DDB}\\u{11EE0}-\\u{11EF2}\\u{11F02}\\u{11F04}-\\u{11F10}\\u{11F12}-\\u{11F33}\\u{11FB0}\\u{12000}-\\u{12399}\\u{12480}-\\u{12543}\\u{12F90}-\\u{12FF0}\\u{13000}-\\u{1342F}\\u{13441}-\\u{13446}\\u{13460}-\\u{143FA}\\u{14400}-\\u{14646}\\u{16100}-\\u{1611D}\\u{16800}-\\u{16A38}\\u{16A40}-\\u{16A5E}\\u{16A70}-\\u{16ABE}\\u{16AD0}-\\u{16AED}\\u{16B00}-\\u{16B2F}\\u{16B40}-\\u{16B43}\\u{16B63}-\\u{16B77}\\u{16B7D}-\\u{16B8F}\\u{16D40}-\\u{16D6C}\\u{16E40}-\\u{16E7F}\\u{16EA0}-\\u{16EB8}\\u{16EBB}-\\u{16ED3}\\u{16F00}-\\u{16F4A}\\u{16F50}\\u{16F93}-\\u{16F9F}\\u{16FE0}-\\u{16FE1}\\u{16FE3}\\u{16FF2}-\\u{16FF3}\\u{17000}-\\u{18CD5}\\u{18CFF}-\\u{18D1E}\\u{18D80}-\\u{18DF2}\\u{1AFF0}-\\u{1AFF3}\\u{1AFF5}-\\u{1AFFB}\\u{1AFFD}-\\u{1AFFE}\\u{1B000}-\\u{1B122}\\u{1B132}\\u{1B150}-\\u{1B152}\\u{1B155}\\u{1B164}-\\u{1B167}\\u{1B170}-\\u{1B2FB}\\u{1BC00}-\\u{1BC6A}\\u{1BC70}-\\u{1BC7C}\\u{1BC80}-\\u{1BC88}\\u{1BC90}-\\u{1BC99}\\u{1D400}-\\u{1D454}\\u{1D456}-\\u{1D49C}\\u{1D49E}-\\u{1D49F}\\u{1D4A2}\\u{1D4A5}-\\u{1D4A6}\\u{1D4A9}-\\u{1D4AC}\\u{1D4AE}-\\u{1D4B9}\\u{1D4BB}\\u{1D4BD}-\\u{1D4C3}\\u{1D4C5}-\\u{1D505}\\u{1D507}-\\u{1D50A}\\u{1D50D}-\\u{1D514}\\u{1D516}-\\u{1D51C}\\u{1D51E}-\\u{1D539}\\u{1D53B}-\\u{1D53E}\\u{1D540}-\\u{1D544}\\u{1D546}\\u{1D54A}-\\u{1D550}\\u{1D552}-\\u{1D6A5}\\u{1D6A8}-\\u{1D6C0}\\u{1D6C2}-\\u{1D6DA}\\u{1D6DC}-\\u{1D6FA}\\u{1D6FC}-\\u{1D714}\\u{1D716}-\\u{1D734}\\u{1D736}-\\u{1D74E}\\u{1D750}-\\u{1D76E}\\u{1D770}-\\u{1D788}\\u{1D78A}-\\u{1D7A8}\\u{1D7AA}-\\u{1D7C2}\\u{1D7C4}-\\u{1D7CB}\\u{1DF00}-\\u{1DF1E}\\u{1DF25}-\\u{1DF2A}\\u{1E030}-\\u{1E06D}\\u{1E100}-\\u{1E12C}\\u{1E137}-\\u{1E13D}\\u{1E14E}\\u{1E290}-\\u{1E2AD}\\u{1E2C0}-\\u{1E2EB}\\u{1E4D0}-\\u{1E4EB}\\u{1E5D0}-\\u{1E5ED}\\u{1E5F0}\\u{1E6C0}-\\u{1E6DE}\\u{1E6E0}-\\u{1E6E2}\\u{1E6E4}-\\u{1E6E5}\\u{1E6E7}-\\u{1E6ED}\\u{1E6F0}-\\u{1E6F4}\\u{1E6FE}-\\u{1E6FF}\\u{1E7E0}-\\u{1E7E6}\\u{1E7E8}-\\u{1E7EB}\\u{1E7ED}-\\u{1E7EE}\\u{1E7F0}-\\u{1E7FE}\\u{1E800}-\\u{1E8C4}\\u{1E900}-\\u{1E943}\\u{1E94B}\\u{1EE00}-\\u{1EE03}\\u{1EE05}-\\u{1EE1F}\\u{1EE21}-\\u{1EE22}\\u{1EE24}\\u{1EE27}\\u{1EE29}-\\u{1EE32}\\u{1EE34}-\\u{1EE37}\\u{1EE39}\\u{1EE3B}\\u{1EE42}\\u{1EE47}\\u{1EE49}\\u{1EE4B}\\u{1EE4D}-\\u{1EE4F}\\u{1EE51}-\\u{1EE52}\\u{1EE54}\\u{1EE57}\\u{1EE59}\\u{1EE5B}\\u{1EE5D}\\u{1EE5F}\\u{1EE61}-\\u{1EE62}\\u{1EE64}\\u{1EE67}-\\u{1EE6A}\\u{1EE6C}-\\u{1EE72}\\u{1EE74}-\\u{1EE77}\\u{1EE79}-\\u{1EE7C}\\u{1EE7E}\\u{1EE80}-\\u{1EE89}\\u{1EE8B}-\\u{1EE9B}\\u{1EEA1}-\\u{1EEA3}\\u{1EEA5}-\\u{1EEA9}\\u{1EEAB}-\\u{1EEBB}\\u{20000}-\\u{2A6DF}\\u{2A700}-\\u{2B81D}\\u{2B820}-\\u{2CEAD}\\u{2CEB0}-\\u{2EBE0}\\u{2EBF0}-\\u{2EE5D}\\u{2F800}-\\u{2FA1D}\\u{30000}-\\u{3134A}\\u{31350}-\\u{33479}\\u0030-\\u0039\\u00B2-\\u00B3\\u00B9\\u00BC-\\u00BE\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u09F4-\\u09F9\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0B72-\\u0B77\\u0BE6-\\u0BF2\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0CE6-\\u0CEF\\u0D58-\\u0D5E\\u0D66-\\u0D78\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F33\\u1040-\\u1049\\u1090-\\u1099\\u1369-\\u137C\\u16EE-\\u16F0\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19DA\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u2182\\u2185-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3007\\u3021-\\u3029\\u3038-\\u303A\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA620-\\uA629\\uA6E6-\\uA6EF\\uA830-\\uA835\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\\u{10107}-\\u{10133}\\u{10140}-\\u{10178}\\u{1018A}-\\u{1018B}\\u{102E1}-\\u{102FB}\\u{10320}-\\u{10323}\\u{10341}\\u{1034A}\\u{103D1}-\\u{103D5}\\u{104A0}-\\u{104A9}\\u{10858}-\\u{1085F}\\u{10879}-\\u{1087F}\\u{108A7}-\\u{108AF}\\u{108FB}-\\u{108FF}\\u{10916}-\\u{1091B}\\u{109BC}-\\u{109BD}\\u{109C0}-\\u{109CF}\\u{109D2}-\\u{109FF}\\u{10A40}-\\u{10A48}\\u{10A7D}-\\u{10A7E}\\u{10A9D}-\\u{10A9F}\\u{10AEB}-\\u{10AEF}\\u{10B58}-\\u{10B5F}\\u{10B78}-\\u{10B7F}\\u{10BA9}-\\u{10BAF}\\u{10CFA}-\\u{10CFF}\\u{10D30}-\\u{10D39}\\u{10D40}-\\u{10D49}\\u{10E60}-\\u{10E7E}\\u{10F1D}-\\u{10F26}\\u{10F51}-\\u{10F54}\\u{10FC5}-\\u{10FCB}\\u{11052}-\\u{1106F}\\u{110F0}-\\u{110F9}\\u{11136}-\\u{1113F}\\u{111D0}-\\u{111D9}\\u{111E1}-\\u{111F4}\\u{112F0}-\\u{112F9}\\u{11450}-\\u{11459}\\u{114D0}-\\u{114D9}\\u{11650}-\\u{11659}\\u{116C0}-\\u{116C9}\\u{116D0}-\\u{116E3}\\u{11730}-\\u{1173B}\\u{118E0}-\\u{118F2}\\u{11950}-\\u{11959}\\u{11BF0}-\\u{11BF9}\\u{11C50}-\\u{11C6C}\\u{11D50}-\\u{11D59}\\u{11DA0}-\\u{11DA9}\\u{11DE0}-\\u{11DE9}\\u{11F50}-\\u{11F59}\\u{11FC0}-\\u{11FD4}\\u{12400}-\\u{1246E}\\u{16130}-\\u{16139}\\u{16A60}-\\u{16A69}\\u{16AC0}-\\u{16AC9}\\u{16B50}-\\u{16B59}\\u{16B5B}-\\u{16B61}\\u{16D70}-\\u{16D79}\\u{16E80}-\\u{16E96}\\u{16FF4}-\\u{16FF6}\\u{1CCF0}-\\u{1CCF9}\\u{1D2C0}-\\u{1D2D3}\\u{1D2E0}-\\u{1D2F3}\\u{1D360}-\\u{1D378}\\u{1D7CE}-\\u{1D7FF}\\u{1E140}-\\u{1E149}\\u{1E2F0}-\\u{1E2F9}\\u{1E4F0}-\\u{1E4F9}\\u{1E5F1}-\\u{1E5FA}\\u{1E8C7}-\\u{1E8CF}\\u{1E950}-\\u{1E959}\\u{1EC71}-\\u{1ECAB}\\u{1ECAD}-\\u{1ECAF}\\u{1ECB1}-\\u{1ECB4}\\u{1ED01}-\\u{1ED2D}\\u{1ED2F}-\\u{1ED3D}\\u{1F100}-\\u{1F10C}\\u{1FBF0}-\\u{1FBF9}_]", "u").test(terms) || hasBareSyntaxOnly) && !hasEmptyPhrase)) return [
|
|
882
1020
|
3,
|
|
883
|
-
|
|
1021
|
+
7
|
|
884
1022
|
];
|
|
885
1023
|
syntaxError = (0, _searcherrorts.bareTermSyntaxError)(terms);
|
|
886
1024
|
if (syntaxError) throw syntaxError;
|
|
887
|
-
_state.label =
|
|
888
|
-
case
|
|
1025
|
+
_state.label = 4;
|
|
1026
|
+
case 4:
|
|
889
1027
|
_state.trys.push([
|
|
890
|
-
|
|
891
|
-
|
|
1028
|
+
4,
|
|
1029
|
+
6,
|
|
892
1030
|
,
|
|
893
|
-
|
|
1031
|
+
7
|
|
894
1032
|
]);
|
|
895
1033
|
return [
|
|
896
1034
|
4,
|
|
897
|
-
(0, _signalsts.wordsCandidates)(store, candidates, terms, whereJoin, whereCond, scopeCond, fetch, signals.words)
|
|
1035
|
+
(0, _signalsts.wordsCandidates)(store, candidates, terms, whereJoin, whereCond, scopeCond, fetch, signals.words, opts.explain)
|
|
898
1036
|
];
|
|
899
|
-
case
|
|
1037
|
+
case 5:
|
|
900
1038
|
matchRows = _state.sent();
|
|
901
1039
|
return [
|
|
902
1040
|
3,
|
|
903
|
-
|
|
1041
|
+
7
|
|
904
1042
|
];
|
|
905
|
-
case
|
|
906
|
-
|
|
907
|
-
throw (0, _searcherrorts.searchError)(
|
|
908
|
-
case
|
|
1043
|
+
case 6:
|
|
1044
|
+
err1 = _state.sent();
|
|
1045
|
+
throw (0, _searcherrorts.searchError)(err1, terms, scope);
|
|
1046
|
+
case 7:
|
|
909
1047
|
// Every store's lexical `snippets` is NULL; the snippet text is always computed below.
|
|
910
1048
|
// Distinguish from via='link' rows, which never appear in matchRows.
|
|
911
1049
|
matchedPaths = new Set(matchRows.map(function(r) {
|
|
@@ -913,35 +1051,35 @@ function searchIndexed(store, cfg, terms, opts) {
|
|
|
913
1051
|
}));
|
|
914
1052
|
if (!(signals.links !== undefined)) return [
|
|
915
1053
|
3,
|
|
916
|
-
|
|
1054
|
+
9
|
|
917
1055
|
];
|
|
918
1056
|
return [
|
|
919
1057
|
4,
|
|
920
|
-
(0, _signalsts.linksCandidates)(store, candidates, matchRows, allPaths, allowedPaths, fetch, signals.links)
|
|
1058
|
+
(0, _signalsts.linksCandidates)(store, candidates, matchRows, allPaths, allowedPaths, fetch, signals.links, opts.explain)
|
|
921
1059
|
];
|
|
922
|
-
case
|
|
1060
|
+
case 8:
|
|
923
1061
|
_state.sent();
|
|
924
|
-
_state.label =
|
|
925
|
-
case
|
|
1062
|
+
_state.label = 9;
|
|
1063
|
+
case 9:
|
|
926
1064
|
chunkLines = new Map();
|
|
927
1065
|
chunkSimilarity = new Map();
|
|
928
|
-
if (!semanticEnabled) return [
|
|
1066
|
+
if (!(semanticEnabled && signals.vectors !== undefined && prepared !== undefined)) return [
|
|
929
1067
|
3,
|
|
930
|
-
|
|
1068
|
+
11
|
|
931
1069
|
];
|
|
932
1070
|
return [
|
|
933
1071
|
4,
|
|
934
|
-
(0, _signalsts.vectorsCandidates)(store,
|
|
1072
|
+
(0, _signalsts.vectorsCandidates)(store, prepared, candidates, fetch, allowedPaths, allPaths.length, signals.vectors, opts.explain)
|
|
935
1073
|
];
|
|
936
|
-
case
|
|
1074
|
+
case 10:
|
|
937
1075
|
ref = _state.sent(), chunkLines = ref.chunkLines, chunkSimilarity = ref.chunkSimilarity, ref;
|
|
938
|
-
_state.label =
|
|
939
|
-
case
|
|
1076
|
+
_state.label = 11;
|
|
1077
|
+
case 11:
|
|
940
1078
|
return [
|
|
941
1079
|
4,
|
|
942
1080
|
store.exec('DROP TABLE IF EXISTS _search')
|
|
943
1081
|
];
|
|
944
|
-
case
|
|
1082
|
+
case 12:
|
|
945
1083
|
_state.sent();
|
|
946
1084
|
// DOUBLE, not REAL: sqlite's REAL is an 8-byte double but duckdb's is a 4-byte float, and the
|
|
947
1085
|
// rounded score/similarity are printed at full precision in rows.
|
|
@@ -949,11 +1087,11 @@ function searchIndexed(store, cfg, terms, opts) {
|
|
|
949
1087
|
4,
|
|
950
1088
|
store.exec('CREATE TEMP TABLE _search ("path" TEXT PRIMARY KEY, score DOUBLE, via TEXT, lines TEXT, similarity DOUBLE)')
|
|
951
1089
|
];
|
|
952
|
-
case
|
|
1090
|
+
case 13:
|
|
953
1091
|
_state.sent();
|
|
954
1092
|
if (!(candidates.size > 0)) return [
|
|
955
1093
|
3,
|
|
956
|
-
|
|
1094
|
+
15
|
|
957
1095
|
];
|
|
958
1096
|
return [
|
|
959
1097
|
4,
|
|
@@ -969,10 +1107,10 @@ function searchIndexed(store, cfg, terms, opts) {
|
|
|
969
1107
|
];
|
|
970
1108
|
}))
|
|
971
1109
|
];
|
|
972
|
-
case
|
|
1110
|
+
case 14:
|
|
973
1111
|
_state.sent();
|
|
974
|
-
_state.label =
|
|
975
|
-
case
|
|
1112
|
+
_state.label = 15;
|
|
1113
|
+
case 15:
|
|
976
1114
|
// Reapplies --where even though _search is already scope+where filtered, since the join to
|
|
977
1115
|
// frontmatter is already needed for the path column.
|
|
978
1116
|
where = scope ? "WHERE (".concat(scope, ")") : '';
|
|
@@ -981,16 +1119,21 @@ function searchIndexed(store, cfg, terms, opts) {
|
|
|
981
1119
|
similarityCol = semanticEnabled ? ', _search.similarity' : '';
|
|
982
1120
|
return [
|
|
983
1121
|
4,
|
|
984
|
-
store.prepare('SELECT f."path" AS path, content.title, content.summary, NULL AS snippets, _search.via, round(_search.score, 4) AS score, _search.lines'.concat(similarityCol, '\n FROM _search JOIN frontmatter f ON f."path" = _search."path" JOIN content ON content.path = _search."path"\n ').concat(where,
|
|
1122
|
+
store.prepare('SELECT f."path" AS path, content.title, content.summary, NULL AS snippets, _search.via, round(_search.score, 4) AS score, _search.lines'.concat(similarityCol, '\n FROM _search JOIN frontmatter f ON f."path" = _search."path" JOIN content ON content.path = _search."path"\n ').concat(where, ' ORDER BY _search.score DESC, _search."path" ASC LIMIT ?'))
|
|
985
1123
|
];
|
|
986
|
-
case
|
|
1124
|
+
case 16:
|
|
987
1125
|
selectStmt = _state.sent();
|
|
988
1126
|
return [
|
|
989
1127
|
4,
|
|
990
1128
|
selectStmt.all(k)
|
|
991
1129
|
];
|
|
992
|
-
case
|
|
1130
|
+
case 17:
|
|
993
1131
|
rows = _state.sent();
|
|
1132
|
+
if (searchCandidatesRead.hasSubscribers) searchCandidatesRead.publish({
|
|
1133
|
+
paths: rows.map(function(row) {
|
|
1134
|
+
return row.path;
|
|
1135
|
+
})
|
|
1136
|
+
});
|
|
994
1137
|
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
995
1138
|
try {
|
|
996
1139
|
for(_iterator = rows[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
@@ -1015,8 +1158,32 @@ function searchIndexed(store, cfg, terms, opts) {
|
|
|
1015
1158
|
4,
|
|
1016
1159
|
hydrateSearchRows(store, cfg, rows, matchedPaths, terms, opts)
|
|
1017
1160
|
];
|
|
1018
|
-
case
|
|
1161
|
+
case 18:
|
|
1019
1162
|
_state.sent();
|
|
1163
|
+
if (opts.explain) {
|
|
1164
|
+
;
|
|
1165
|
+
;
|
|
1166
|
+
_iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
1167
|
+
try {
|
|
1168
|
+
for(_iterator1 = rows[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
|
|
1169
|
+
row1 = _step1.value;
|
|
1170
|
+
row1.explanation = (_ref1 = (_candidates_get = candidates.get(row1.path)) === null || _candidates_get === void 0 ? void 0 : _candidates_get.explanation) !== null && _ref1 !== void 0 ? _ref1 : [];
|
|
1171
|
+
}
|
|
1172
|
+
} catch (err) {
|
|
1173
|
+
_didIteratorError1 = true;
|
|
1174
|
+
_iteratorError1 = err;
|
|
1175
|
+
} finally{
|
|
1176
|
+
try {
|
|
1177
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
1178
|
+
_iterator1.return();
|
|
1179
|
+
}
|
|
1180
|
+
} finally{
|
|
1181
|
+
if (_didIteratorError1) {
|
|
1182
|
+
throw _iteratorError1;
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1185
|
+
}
|
|
1186
|
+
}
|
|
1020
1187
|
return [
|
|
1021
1188
|
2,
|
|
1022
1189
|
rows
|