@prodisco/search-libs 0.1.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/LICENSE +21 -0
- package/README.md +379 -0
- package/dist/__tests__/extractor.test.d.ts +5 -0
- package/dist/__tests__/extractor.test.d.ts.map +1 -0
- package/dist/__tests__/extractor.test.js +452 -0
- package/dist/__tests__/extractor.test.js.map +1 -0
- package/dist/__tests__/library-indexer.test.d.ts +5 -0
- package/dist/__tests__/library-indexer.test.d.ts.map +1 -0
- package/dist/__tests__/library-indexer.test.js +611 -0
- package/dist/__tests__/library-indexer.test.js.map +1 -0
- package/dist/__tests__/schema.test.d.ts +5 -0
- package/dist/__tests__/schema.test.d.ts.map +1 -0
- package/dist/__tests__/schema.test.js +231 -0
- package/dist/__tests__/schema.test.js.map +1 -0
- package/dist/__tests__/script-parser.test.d.ts +5 -0
- package/dist/__tests__/script-parser.test.d.ts.map +1 -0
- package/dist/__tests__/script-parser.test.js +178 -0
- package/dist/__tests__/script-parser.test.js.map +1 -0
- package/dist/__tests__/search-engine.test.d.ts +5 -0
- package/dist/__tests__/search-engine.test.d.ts.map +1 -0
- package/dist/__tests__/search-engine.test.js +497 -0
- package/dist/__tests__/search-engine.test.js.map +1 -0
- package/dist/extractor/ast-parser.d.ts +48 -0
- package/dist/extractor/ast-parser.d.ts.map +1 -0
- package/dist/extractor/ast-parser.js +118 -0
- package/dist/extractor/ast-parser.js.map +1 -0
- package/dist/extractor/function-extractor.d.ts +20 -0
- package/dist/extractor/function-extractor.d.ts.map +1 -0
- package/dist/extractor/function-extractor.js +169 -0
- package/dist/extractor/function-extractor.js.map +1 -0
- package/dist/extractor/index.d.ts +22 -0
- package/dist/extractor/index.d.ts.map +1 -0
- package/dist/extractor/index.js +194 -0
- package/dist/extractor/index.js.map +1 -0
- package/dist/extractor/method-extractor.d.ts +30 -0
- package/dist/extractor/method-extractor.d.ts.map +1 -0
- package/dist/extractor/method-extractor.js +163 -0
- package/dist/extractor/method-extractor.js.map +1 -0
- package/dist/extractor/package-resolver.d.ts +77 -0
- package/dist/extractor/package-resolver.d.ts.map +1 -0
- package/dist/extractor/package-resolver.js +766 -0
- package/dist/extractor/package-resolver.js.map +1 -0
- package/dist/extractor/type-extractor.d.ts +15 -0
- package/dist/extractor/type-extractor.d.ts.map +1 -0
- package/dist/extractor/type-extractor.js +206 -0
- package/dist/extractor/type-extractor.js.map +1 -0
- package/dist/extractor/types.d.ts +116 -0
- package/dist/extractor/types.d.ts.map +1 -0
- package/dist/extractor/types.js +5 -0
- package/dist/extractor/types.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/library-indexer.d.ts +104 -0
- package/dist/library-indexer.d.ts.map +1 -0
- package/dist/library-indexer.js +295 -0
- package/dist/library-indexer.js.map +1 -0
- package/dist/schema/base-schema.d.ts +63 -0
- package/dist/schema/base-schema.d.ts.map +1 -0
- package/dist/schema/base-schema.js +63 -0
- package/dist/schema/base-schema.js.map +1 -0
- package/dist/schema/index.d.ts +6 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +6 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/schema-builder.d.ts +47 -0
- package/dist/schema/schema-builder.d.ts.map +1 -0
- package/dist/schema/schema-builder.js +236 -0
- package/dist/schema/schema-builder.js.map +1 -0
- package/dist/script/index.d.ts +6 -0
- package/dist/script/index.d.ts.map +1 -0
- package/dist/script/index.js +5 -0
- package/dist/script/index.js.map +1 -0
- package/dist/script/script-parser.d.ts +18 -0
- package/dist/script/script-parser.d.ts.map +1 -0
- package/dist/script/script-parser.js +246 -0
- package/dist/script/script-parser.js.map +1 -0
- package/dist/script/types.d.ts +32 -0
- package/dist/script/types.d.ts.map +1 -0
- package/dist/script/types.js +5 -0
- package/dist/script/types.js.map +1 -0
- package/dist/search/index.d.ts +7 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +7 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/query-builder.d.ts +59 -0
- package/dist/search/query-builder.d.ts.map +1 -0
- package/dist/search/query-builder.js +103 -0
- package/dist/search/query-builder.js.map +1 -0
- package/dist/search/result-formatter.d.ts +61 -0
- package/dist/search/result-formatter.d.ts.map +1 -0
- package/dist/search/result-formatter.js +170 -0
- package/dist/search/result-formatter.js.map +1 -0
- package/dist/search/search-engine.d.ts +105 -0
- package/dist/search/search-engine.d.ts.map +1 -0
- package/dist/search/search-engine.js +245 -0
- package/dist/search/search-engine.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fluent query builder for search options
|
|
3
|
+
*/
|
|
4
|
+
import type { SearchOptions } from './search-engine.js';
|
|
5
|
+
/**
|
|
6
|
+
* Fluent builder for constructing search queries
|
|
7
|
+
*/
|
|
8
|
+
export declare class QueryBuilder {
|
|
9
|
+
private options;
|
|
10
|
+
/**
|
|
11
|
+
* Set the search query term
|
|
12
|
+
*/
|
|
13
|
+
query(term: string): this;
|
|
14
|
+
/**
|
|
15
|
+
* Filter by document type
|
|
16
|
+
*/
|
|
17
|
+
documentType(type: 'type' | 'method' | 'function' | 'script' | 'all'): this;
|
|
18
|
+
/**
|
|
19
|
+
* Filter by category
|
|
20
|
+
*/
|
|
21
|
+
category(cat: string): this;
|
|
22
|
+
/**
|
|
23
|
+
* Filter by library
|
|
24
|
+
*/
|
|
25
|
+
library(lib: string): this;
|
|
26
|
+
/**
|
|
27
|
+
* Exclude categories
|
|
28
|
+
*/
|
|
29
|
+
excludeCategories(categories: string[]): this;
|
|
30
|
+
/**
|
|
31
|
+
* Exclude libraries
|
|
32
|
+
*/
|
|
33
|
+
excludeLibraries(libraries: string[]): this;
|
|
34
|
+
/**
|
|
35
|
+
* Set maximum results
|
|
36
|
+
*/
|
|
37
|
+
limit(n: number): this;
|
|
38
|
+
/**
|
|
39
|
+
* Set pagination offset
|
|
40
|
+
*/
|
|
41
|
+
offset(n: number): this;
|
|
42
|
+
/**
|
|
43
|
+
* Set pagination by page number (1-indexed)
|
|
44
|
+
*/
|
|
45
|
+
page(pageNum: number, pageSize?: number): this;
|
|
46
|
+
/**
|
|
47
|
+
* Set field boost weights
|
|
48
|
+
*/
|
|
49
|
+
boost(weights: Record<string, number>): this;
|
|
50
|
+
/**
|
|
51
|
+
* Build the final search options
|
|
52
|
+
*/
|
|
53
|
+
build(): SearchOptions;
|
|
54
|
+
/**
|
|
55
|
+
* Create a new QueryBuilder
|
|
56
|
+
*/
|
|
57
|
+
static create(): QueryBuilder;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=query-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/search/query-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAIb;IAEF;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKzB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI;IAK3E;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK3B;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK1B;;OAEG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ7C;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ3C;;OAEG;IACH,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKtB;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKvB;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,IAAI;IAMlD;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAK5C;;OAEG;IACH,KAAK,IAAI,aAAa;IAItB;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,YAAY;CAG9B"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fluent query builder for search options
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Fluent builder for constructing search queries
|
|
6
|
+
*/
|
|
7
|
+
export class QueryBuilder {
|
|
8
|
+
options = {
|
|
9
|
+
query: '',
|
|
10
|
+
limit: 10,
|
|
11
|
+
offset: 0,
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Set the search query term
|
|
15
|
+
*/
|
|
16
|
+
query(term) {
|
|
17
|
+
this.options.query = term;
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Filter by document type
|
|
22
|
+
*/
|
|
23
|
+
documentType(type) {
|
|
24
|
+
this.options.documentType = type;
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Filter by category
|
|
29
|
+
*/
|
|
30
|
+
category(cat) {
|
|
31
|
+
this.options.category = cat;
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Filter by library
|
|
36
|
+
*/
|
|
37
|
+
library(lib) {
|
|
38
|
+
this.options.library = lib;
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Exclude categories
|
|
43
|
+
*/
|
|
44
|
+
excludeCategories(categories) {
|
|
45
|
+
this.options.exclude = {
|
|
46
|
+
...this.options.exclude,
|
|
47
|
+
categories,
|
|
48
|
+
};
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Exclude libraries
|
|
53
|
+
*/
|
|
54
|
+
excludeLibraries(libraries) {
|
|
55
|
+
this.options.exclude = {
|
|
56
|
+
...this.options.exclude,
|
|
57
|
+
libraries,
|
|
58
|
+
};
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Set maximum results
|
|
63
|
+
*/
|
|
64
|
+
limit(n) {
|
|
65
|
+
this.options.limit = n;
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Set pagination offset
|
|
70
|
+
*/
|
|
71
|
+
offset(n) {
|
|
72
|
+
this.options.offset = n;
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Set pagination by page number (1-indexed)
|
|
77
|
+
*/
|
|
78
|
+
page(pageNum, pageSize = 10) {
|
|
79
|
+
this.options.limit = pageSize;
|
|
80
|
+
this.options.offset = (pageNum - 1) * pageSize;
|
|
81
|
+
return this;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Set field boost weights
|
|
85
|
+
*/
|
|
86
|
+
boost(weights) {
|
|
87
|
+
this.options.boost = weights;
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Build the final search options
|
|
92
|
+
*/
|
|
93
|
+
build() {
|
|
94
|
+
return { ...this.options };
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Create a new QueryBuilder
|
|
98
|
+
*/
|
|
99
|
+
static create() {
|
|
100
|
+
return new QueryBuilder();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=query-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/search/query-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,OAAO,GAAkB;QAC/B,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,CAAC;KACV,CAAC;IAEF;;OAEG;IACH,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,IAAuD;QAClE,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,GAAW;QAClB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,GAAW;QACjB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,UAAoB;QACpC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG;YACrB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;YACvB,UAAU;SACX,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,SAAmB;QAClC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG;YACrB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;YACvB,SAAS;SACV,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAS;QACb,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,CAAS;QACd,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe,EAAE,WAAmB,EAAE;QACzC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAA+B;QACnC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,YAAY,EAAE,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format search results for AI consumption
|
|
3
|
+
*/
|
|
4
|
+
import type { BaseDocument } from '../schema/base-schema.js';
|
|
5
|
+
import type { SearchResult } from './search-engine.js';
|
|
6
|
+
import type { PropertyInfo, ParameterInfo } from '../extractor/types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Formatted result item for display/AI consumption
|
|
9
|
+
*/
|
|
10
|
+
export interface FormattedItem {
|
|
11
|
+
id: string;
|
|
12
|
+
type: 'type' | 'method' | 'function' | 'script';
|
|
13
|
+
name: string;
|
|
14
|
+
library: string;
|
|
15
|
+
category: string;
|
|
16
|
+
description: string;
|
|
17
|
+
typeKind?: string;
|
|
18
|
+
properties?: PropertyInfo[];
|
|
19
|
+
nestedTypes?: string[];
|
|
20
|
+
typeDefinition?: string;
|
|
21
|
+
parameters?: ParameterInfo[];
|
|
22
|
+
returnType?: string;
|
|
23
|
+
returnTypeDefinition?: string;
|
|
24
|
+
signature?: string;
|
|
25
|
+
className?: string;
|
|
26
|
+
filePath?: string;
|
|
27
|
+
keywords?: string[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Formatted search result
|
|
31
|
+
*/
|
|
32
|
+
export interface FormattedResult {
|
|
33
|
+
summary: string;
|
|
34
|
+
items: FormattedItem[];
|
|
35
|
+
totalMatches: number;
|
|
36
|
+
facets: Record<string, Record<string, number>>;
|
|
37
|
+
pagination: {
|
|
38
|
+
offset: number;
|
|
39
|
+
limit: number;
|
|
40
|
+
hasMore: boolean;
|
|
41
|
+
};
|
|
42
|
+
searchTime: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Options for formatting results
|
|
46
|
+
*/
|
|
47
|
+
export interface FormatOptions {
|
|
48
|
+
/** Maximum properties to include for types */
|
|
49
|
+
maxProperties?: number;
|
|
50
|
+
/** Include file paths for scripts */
|
|
51
|
+
includeFilePaths?: boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Format search results for structured output
|
|
55
|
+
*/
|
|
56
|
+
export declare function formatResults(searchResult: SearchResult<BaseDocument>, options?: FormatOptions): FormattedResult;
|
|
57
|
+
/**
|
|
58
|
+
* Format results as a string for AI consumption
|
|
59
|
+
*/
|
|
60
|
+
export declare function formatForAI(searchResult: SearchResult<BaseDocument>, options?: FormatOptions): string;
|
|
61
|
+
//# sourceMappingURL=result-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-formatter.d.ts","sourceRoot":"","sources":["../../src/search/result-formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IAGpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,UAAU,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,EACxC,OAAO,GAAE,aAAkB,GAC1B,eAAe,CA+BjB;AA6HD;;GAEG;AACH,wBAAgB,WAAW,CACzB,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,EACxC,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAyCR"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format search results for AI consumption
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Format search results for structured output
|
|
6
|
+
*/
|
|
7
|
+
export function formatResults(searchResult, options = {}) {
|
|
8
|
+
const { maxProperties = 10, includeFilePaths = false } = options;
|
|
9
|
+
const items = searchResult.results.map((doc) => formatDocument(doc, { maxProperties, includeFilePaths }));
|
|
10
|
+
const resultCount = searchResult.results.length;
|
|
11
|
+
const total = searchResult.totalMatches;
|
|
12
|
+
let summary;
|
|
13
|
+
if (resultCount === 0) {
|
|
14
|
+
summary = 'No results found.';
|
|
15
|
+
}
|
|
16
|
+
else if (resultCount === total) {
|
|
17
|
+
summary = `Found ${total} result${total === 1 ? '' : 's'}.`;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
summary = `Showing ${resultCount} of ${total} results.`;
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
summary,
|
|
24
|
+
items,
|
|
25
|
+
totalMatches: searchResult.totalMatches,
|
|
26
|
+
facets: searchResult.facets,
|
|
27
|
+
pagination: {
|
|
28
|
+
offset: 0, // Would need to track this from search options
|
|
29
|
+
limit: resultCount,
|
|
30
|
+
hasMore: resultCount < total,
|
|
31
|
+
},
|
|
32
|
+
searchTime: searchResult.searchTime,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Format a single document
|
|
37
|
+
*/
|
|
38
|
+
function formatDocument(doc, options) {
|
|
39
|
+
const base = {
|
|
40
|
+
id: doc.id,
|
|
41
|
+
type: doc.documentType,
|
|
42
|
+
name: doc.name,
|
|
43
|
+
library: doc.library,
|
|
44
|
+
category: doc.category,
|
|
45
|
+
description: doc.description,
|
|
46
|
+
};
|
|
47
|
+
switch (doc.documentType) {
|
|
48
|
+
case 'type':
|
|
49
|
+
return formatTypeDocument(doc, base, options);
|
|
50
|
+
case 'method':
|
|
51
|
+
return formatMethodDocument(doc, base);
|
|
52
|
+
case 'function':
|
|
53
|
+
return formatFunctionDocument(doc, base);
|
|
54
|
+
case 'script':
|
|
55
|
+
return formatScriptDocument(doc, base, options);
|
|
56
|
+
default:
|
|
57
|
+
return base;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Format a type document
|
|
62
|
+
*/
|
|
63
|
+
function formatTypeDocument(doc, base, options) {
|
|
64
|
+
let properties = [];
|
|
65
|
+
try {
|
|
66
|
+
properties = doc.properties ? JSON.parse(doc.properties) : [];
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
// Ignore parse errors
|
|
70
|
+
}
|
|
71
|
+
const nestedTypes = doc.nestedTypes
|
|
72
|
+
? doc.nestedTypes.split(',').map((t) => t.trim()).filter(Boolean)
|
|
73
|
+
: [];
|
|
74
|
+
return {
|
|
75
|
+
...base,
|
|
76
|
+
typeKind: doc.typeKind,
|
|
77
|
+
properties: properties.slice(0, options.maxProperties || 10),
|
|
78
|
+
nestedTypes,
|
|
79
|
+
typeDefinition: doc.typeDefinition || undefined,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Format a method document
|
|
84
|
+
*/
|
|
85
|
+
function formatMethodDocument(doc, base) {
|
|
86
|
+
let parameters = [];
|
|
87
|
+
try {
|
|
88
|
+
parameters = doc.parameters ? JSON.parse(doc.parameters) : [];
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// Ignore parse errors
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
...base,
|
|
95
|
+
parameters,
|
|
96
|
+
returnType: doc.returnType || undefined,
|
|
97
|
+
returnTypeDefinition: doc.returnTypeDefinition || undefined,
|
|
98
|
+
signature: doc.signature || undefined,
|
|
99
|
+
className: doc.className || undefined,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Format a function document
|
|
104
|
+
*/
|
|
105
|
+
function formatFunctionDocument(doc, base) {
|
|
106
|
+
let parameters = [];
|
|
107
|
+
try {
|
|
108
|
+
parameters = doc.parameters ? JSON.parse(doc.parameters) : [];
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
// Ignore parse errors
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
...base,
|
|
115
|
+
parameters,
|
|
116
|
+
returnType: doc.returnType || undefined,
|
|
117
|
+
signature: doc.signature || undefined,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Format a script document
|
|
122
|
+
*/
|
|
123
|
+
function formatScriptDocument(doc, base, options) {
|
|
124
|
+
const keywords = doc.keywords
|
|
125
|
+
? doc.keywords.split(' ').filter(Boolean)
|
|
126
|
+
: [];
|
|
127
|
+
return {
|
|
128
|
+
...base,
|
|
129
|
+
filePath: options.includeFilePaths ? doc.filePath : undefined,
|
|
130
|
+
keywords: keywords.length > 0 ? keywords : undefined,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Format results as a string for AI consumption
|
|
135
|
+
*/
|
|
136
|
+
export function formatForAI(searchResult, options = {}) {
|
|
137
|
+
const formatted = formatResults(searchResult, options);
|
|
138
|
+
const lines = [formatted.summary, ''];
|
|
139
|
+
for (const item of formatted.items) {
|
|
140
|
+
lines.push(`## ${item.name} (${item.type})`);
|
|
141
|
+
lines.push(`Library: ${item.library}`);
|
|
142
|
+
lines.push(`Category: ${item.category}`);
|
|
143
|
+
lines.push(`Description: ${item.description}`);
|
|
144
|
+
if (item.signature) {
|
|
145
|
+
lines.push(`Signature: ${item.signature}`);
|
|
146
|
+
}
|
|
147
|
+
if (item.parameters && item.parameters.length > 0) {
|
|
148
|
+
lines.push('Parameters:');
|
|
149
|
+
for (const param of item.parameters) {
|
|
150
|
+
const opt = param.optional ? '?' : '';
|
|
151
|
+
const typeDef = param.typeDefinition ? ` = ${param.typeDefinition}` : '';
|
|
152
|
+
lines.push(` - ${param.name}${opt}: ${param.type}${typeDef}`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (item.returnType) {
|
|
156
|
+
const returnDef = item.returnTypeDefinition ? ` = ${item.returnTypeDefinition}` : '';
|
|
157
|
+
lines.push(`Returns: ${item.returnType}${returnDef}`);
|
|
158
|
+
}
|
|
159
|
+
if (item.properties && item.properties.length > 0) {
|
|
160
|
+
lines.push('Properties:');
|
|
161
|
+
for (const prop of item.properties) {
|
|
162
|
+
const opt = prop.optional ? '?' : '';
|
|
163
|
+
lines.push(` - ${prop.name}${opt}: ${prop.type}`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
lines.push('');
|
|
167
|
+
}
|
|
168
|
+
return lines.join('\n');
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=result-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-formatter.js","sourceRoot":"","sources":["../../src/search/result-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orama search engine wrapper with typed search
|
|
3
|
+
*/
|
|
4
|
+
import { type Orama } from '@orama/orama';
|
|
5
|
+
import { type BaseDocument, type OramaSchemaType } from '../schema/base-schema.js';
|
|
6
|
+
/**
|
|
7
|
+
* Options for initializing the search engine
|
|
8
|
+
*/
|
|
9
|
+
export interface SearchEngineOptions {
|
|
10
|
+
/** Custom schema (defaults to baseSchema) */
|
|
11
|
+
schema?: OramaSchemaType;
|
|
12
|
+
/** Tokenizer options */
|
|
13
|
+
tokenizerOptions?: {
|
|
14
|
+
stemming?: boolean;
|
|
15
|
+
stemmerSkipProperties?: string[];
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Search query options
|
|
20
|
+
*/
|
|
21
|
+
export interface SearchOptions {
|
|
22
|
+
/** Full-text search term */
|
|
23
|
+
query?: string;
|
|
24
|
+
/** Filter by document type */
|
|
25
|
+
documentType?: string;
|
|
26
|
+
/** Filter by category */
|
|
27
|
+
category?: string;
|
|
28
|
+
/** Filter by library */
|
|
29
|
+
library?: string;
|
|
30
|
+
/** Exclusion filters */
|
|
31
|
+
exclude?: {
|
|
32
|
+
categories?: string[];
|
|
33
|
+
libraries?: string[];
|
|
34
|
+
};
|
|
35
|
+
/** Maximum results (default: 10) */
|
|
36
|
+
limit?: number;
|
|
37
|
+
/** Pagination offset (default: 0) */
|
|
38
|
+
offset?: number;
|
|
39
|
+
/** Field boost weights */
|
|
40
|
+
boost?: Record<string, number>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Search result
|
|
44
|
+
*/
|
|
45
|
+
export interface SearchResult<TDoc = BaseDocument> {
|
|
46
|
+
/** Matched documents */
|
|
47
|
+
results: TDoc[];
|
|
48
|
+
/** Total matches before pagination */
|
|
49
|
+
totalMatches: number;
|
|
50
|
+
/** Facet counts */
|
|
51
|
+
facets: {
|
|
52
|
+
documentType: Record<string, number>;
|
|
53
|
+
library: Record<string, number>;
|
|
54
|
+
category: Record<string, number>;
|
|
55
|
+
};
|
|
56
|
+
/** Search execution time in ms */
|
|
57
|
+
searchTime: number;
|
|
58
|
+
}
|
|
59
|
+
type AnyOrama = Orama<any>;
|
|
60
|
+
/**
|
|
61
|
+
* Search engine wrapping Orama
|
|
62
|
+
*/
|
|
63
|
+
export declare class SearchEngine<TDoc extends BaseDocument = BaseDocument> {
|
|
64
|
+
private db;
|
|
65
|
+
private options;
|
|
66
|
+
constructor(options?: SearchEngineOptions);
|
|
67
|
+
/**
|
|
68
|
+
* Initialize the search engine
|
|
69
|
+
*/
|
|
70
|
+
initialize(): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Insert a single document (uses update if document already exists)
|
|
73
|
+
*/
|
|
74
|
+
insert(doc: TDoc): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Insert multiple documents (uses update if documents already exist)
|
|
77
|
+
*/
|
|
78
|
+
insertBatch(docs: TDoc[]): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Remove a document by ID
|
|
81
|
+
*/
|
|
82
|
+
remove(id: string): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Search the index
|
|
85
|
+
*/
|
|
86
|
+
search(options: SearchOptions): Promise<SearchResult<TDoc>>;
|
|
87
|
+
/**
|
|
88
|
+
* Get the underlying Orama database
|
|
89
|
+
*/
|
|
90
|
+
getDb(): AnyOrama | null;
|
|
91
|
+
/**
|
|
92
|
+
* Check if the engine is initialized
|
|
93
|
+
*/
|
|
94
|
+
isInitialized(): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Shutdown the engine
|
|
97
|
+
*/
|
|
98
|
+
shutdown(): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Ensure the engine is initialized
|
|
101
|
+
*/
|
|
102
|
+
private ensureInitialized;
|
|
103
|
+
}
|
|
104
|
+
export {};
|
|
105
|
+
//# sourceMappingURL=search-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-engine.d.ts","sourceRoot":"","sources":["../../src/search/search-engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAQL,KAAK,KAAK,EAGX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAc,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG/F;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB,wBAAwB;IACxB,gBAAgB,CAAC,EAAE;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;KAClC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,wBAAwB;IACxB,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IAEF,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,IAAI,GAAG,YAAY;IAC/C,wBAAwB;IACxB,OAAO,EAAE,IAAI,EAAE,CAAC;IAEhB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IAErB,mBAAmB;IACnB,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC;IAEF,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,KAAK,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAsC3B;;GAEG;AACH,qBAAa,YAAY,CAAC,IAAI,SAAS,YAAY,GAAG,YAAY;IAChE,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,OAAO,CAAsB;gBAEzB,OAAO,GAAE,mBAAwB;IAI7C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBjC;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IActC;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9C;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvC;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAyIjE;;OAEG;IACH,KAAK,IAAI,QAAQ,GAAG,IAAI;IAIxB;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;OAEG;YACW,iBAAiB;CAKhC"}
|