@dooor-ai/cortexdb 0.7.3 → 0.7.5
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/dist/client/index.d.ts +2 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -0
- package/dist/client/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/search/api.d.ts +92 -0
- package/dist/search/api.d.ts.map +1 -0
- package/dist/search/api.js +108 -0
- package/dist/search/api.js.map +1 -0
- package/package.json +1 -1
package/dist/client/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { RecordsFacade } from "../records/api";
|
|
|
4
4
|
import { DatabasesAPI } from "../databases/api";
|
|
5
5
|
import { EmbeddingProvidersAPI } from "../providers/api";
|
|
6
6
|
import { AIProvidersAPI } from "../ai-providers/api";
|
|
7
|
+
import { SearchAPI } from "../search/api";
|
|
7
8
|
import { DefaultGeneratedSchema, GeneratedSchema } from "../types";
|
|
8
9
|
export interface CortexClientOptions {
|
|
9
10
|
baseUrl?: string;
|
|
@@ -23,6 +24,7 @@ export declare class CortexClient<Schema extends GeneratedSchema = DefaultGenera
|
|
|
23
24
|
databases: DatabasesAPI;
|
|
24
25
|
embeddingProviders: EmbeddingProvidersAPI;
|
|
25
26
|
aiProviders: AIProvidersAPI;
|
|
27
|
+
search: SearchAPI;
|
|
26
28
|
private defaultDatabase?;
|
|
27
29
|
private observabilityConfig?;
|
|
28
30
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAc,aAAa,EAAuB,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAc,aAAa,EAAuB,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,YAAY,CAAC,MAAM,SAAS,eAAe,GAAG,sBAAsB;IAC/E,OAAO,CAAC,IAAI,CAAa;IAClB,WAAW,EAAE,cAAc,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,YAAY,CAAC;IACxB,kBAAkB,EAAE,qBAAqB,CAAC;IAC1C,WAAW,EAAE,cAAc,CAAC;IAC5B,MAAM,EAAE,SAAS,CAAC;IACzB,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,mBAAmB,CAAC,CAAsB;IAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;gBACS,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,EAAE,uBAAuB,CAAC,EAAE,MAAM;IAiEpF;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAI3C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACH,kBAAkB,IAAI,MAAM,GAAG,SAAS;IAIxC;;OAEG;IACH,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;YAI7B,0BAA0B;CAYzC"}
|
package/dist/client/index.js
CHANGED
|
@@ -8,6 +8,7 @@ const api_2 = require("../records/api");
|
|
|
8
8
|
const api_3 = require("../databases/api");
|
|
9
9
|
const api_4 = require("../providers/api");
|
|
10
10
|
const api_5 = require("../ai-providers/api");
|
|
11
|
+
const api_6 = require("../search/api");
|
|
11
12
|
const connection_string_1 = require("../utils/connection-string");
|
|
12
13
|
class CortexClient {
|
|
13
14
|
/**
|
|
@@ -89,6 +90,7 @@ class CortexClient {
|
|
|
89
90
|
this.records = (0, api_2.createRecordsFacade)(baseRecords);
|
|
90
91
|
this.databases = new api_3.DatabasesAPI(this.http);
|
|
91
92
|
this.aiProviders = new api_5.AIProvidersAPI(this.http);
|
|
93
|
+
this.search = new api_6.SearchAPI(this.http, () => this.defaultDatabase);
|
|
92
94
|
}
|
|
93
95
|
/**
|
|
94
96
|
* Check if the connection to CortexDB is working
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";AAAA,2BAA2B;;;AAE3B,2CAA4C;AAC5C,4CAAoD;AACpD,wCAAgF;AAChF,0CAAgD;AAChD,0CAAyD;AACzD,6CAAqD;AACrD,kEAAmE;AAgBnE,MAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAG9B,cAAc,UAAU,CAAC;AAGzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAG9B,cAAc,UAAU,CAAC;AAGzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,cAAc,eAAe,CAAC;AAI9B,OAAO,EACL,UAAU,EACV,KAAK,EACL,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EAEhB,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,gBAAgB,GACjB,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,7 @@ __exportStar(require("./records/api"), exports);
|
|
|
24
24
|
__exportStar(require("./databases/api"), exports);
|
|
25
25
|
__exportStar(require("./providers/api"), exports);
|
|
26
26
|
__exportStar(require("./ai-providers/api"), exports);
|
|
27
|
+
__exportStar(require("./search/api"), exports);
|
|
27
28
|
// Types
|
|
28
29
|
__exportStar(require("./types"), exports);
|
|
29
30
|
// Exceptions
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;;;;;;;;;;;;;;;AAE9B,cAAc;AACd,2CAAyB;AAEzB,cAAc;AACd,oDAAkC;AAClC,gDAA8B;AAC9B,kDAAgC;AAChC,kDAAgC;AAChC,qDAAmC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;;;;;;;;;;;;;;;AAE9B,cAAc;AACd,2CAAyB;AAEzB,cAAc;AACd,oDAAkC;AAClC,gDAA8B;AAC9B,kDAAgC;AAChC,kDAAgC;AAChC,qDAAmC;AACnC,+CAA6B;AAE7B,QAAQ;AACR,0CAAwB;AAExB,aAAa;AACb,+CAA6B;AAE7B,mCAAmC;AACnC,gDAA8B;AAE9B,8DAA8D;AAC9D,yEAAyE;AACzE,yDAqB6B;AApB3B,+GAAA,UAAU,OAAA;AACV,0GAAA,KAAK,OAAA;AAGL,8GAAA,SAAS,OAAA;AACT,6GAAA,QAAQ,OAAA;AACR,8GAAA,SAAS,OAAA;AACT,+GAAA,UAAU,OAAA;AAMV,8HAAA,yBAAyB,OAAA;AAEzB,aAAa;AACb,mHAAA,cAAc,OAAA;AACd,2HAAA,sBAAsB,OAAA"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/** Search API for CortexDB */
|
|
2
|
+
import { HTTPClient } from "../http/client";
|
|
3
|
+
import type { RAGStrategy, AdvancedSearchResponse, SearchResponse } from "../types";
|
|
4
|
+
export interface SearchFilters {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}
|
|
7
|
+
export type { RAGStrategy, AdvancedSearchResponse };
|
|
8
|
+
export type HybridSearchResponse<RecordType = Record<string, any>> = SearchResponse<RecordType>;
|
|
9
|
+
export interface HybridSearchOptions {
|
|
10
|
+
collection: string;
|
|
11
|
+
query: string;
|
|
12
|
+
filters?: SearchFilters;
|
|
13
|
+
limit?: number;
|
|
14
|
+
database?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface AdvancedSearchOptions {
|
|
17
|
+
collection: string;
|
|
18
|
+
query: string;
|
|
19
|
+
filters?: SearchFilters;
|
|
20
|
+
limit?: number;
|
|
21
|
+
strategy?: RAGStrategy | string;
|
|
22
|
+
strategyConfig?: Record<string, any>;
|
|
23
|
+
aiProviderName?: string;
|
|
24
|
+
database?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare class SearchAPI {
|
|
27
|
+
private http;
|
|
28
|
+
private getDefaultDatabase?;
|
|
29
|
+
constructor(http: HTTPClient, getDefaultDatabase?: (() => string | undefined) | undefined);
|
|
30
|
+
private resolveDatabase;
|
|
31
|
+
private buildBasePath;
|
|
32
|
+
/**
|
|
33
|
+
* Hybrid search - semantic vector search with optional filters
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const results = await client.search.hybrid({
|
|
38
|
+
* collection: 'documents',
|
|
39
|
+
* query: 'What is the deadline for appeals?',
|
|
40
|
+
* limit: 10,
|
|
41
|
+
* filters: { id: 'record-123' }
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
hybrid<RecordType = Record<string, any>>(options: HybridSearchOptions): Promise<HybridSearchResponse<RecordType>>;
|
|
46
|
+
/**
|
|
47
|
+
* Advanced search with RAG strategies
|
|
48
|
+
*
|
|
49
|
+
* Available strategies:
|
|
50
|
+
* - `simple`: Basic semantic search (default, no AI provider needed)
|
|
51
|
+
* - `multi_query`: Generate multiple query variations for better recall
|
|
52
|
+
* - `hyde`: Hypothetical Document Embeddings
|
|
53
|
+
* - `rerank`: Re-rank results using LLM for better precision
|
|
54
|
+
* - `fusion`: Combines multi_query + rerank
|
|
55
|
+
* - `contextual_query`: Use conversation context to reformulate query
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* // Simple strategy (no AI provider needed)
|
|
60
|
+
* const results = await client.search.advanced({
|
|
61
|
+
* collection: 'documents',
|
|
62
|
+
* query: 'What is the deadline?',
|
|
63
|
+
* strategy: 'simple',
|
|
64
|
+
* limit: 10
|
|
65
|
+
* });
|
|
66
|
+
*
|
|
67
|
+
* // Rerank strategy (requires AI provider)
|
|
68
|
+
* const results = await client.search.advanced({
|
|
69
|
+
* collection: 'documents',
|
|
70
|
+
* query: 'What is the deadline for appeals?',
|
|
71
|
+
* strategy: 'rerank',
|
|
72
|
+
* strategyConfig: {
|
|
73
|
+
* initial_limit: 50,
|
|
74
|
+
* final_limit: 10
|
|
75
|
+
* },
|
|
76
|
+
* aiProviderName: 'Gemini',
|
|
77
|
+
* limit: 10
|
|
78
|
+
* });
|
|
79
|
+
*
|
|
80
|
+
* // Filter by specific record
|
|
81
|
+
* const results = await client.search.advanced({
|
|
82
|
+
* collection: 'documents',
|
|
83
|
+
* query: 'deadline',
|
|
84
|
+
* filters: { id: 'record-uuid-123' },
|
|
85
|
+
* strategy: 'fusion',
|
|
86
|
+
* aiProviderName: 'Gemini'
|
|
87
|
+
* });
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
advanced<RecordType = Record<string, any>>(options: AdvancedSearchOptions): Promise<AdvancedSearchResponse<RecordType>>;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/search/api.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAIV,WAAW,EACX,sBAAsB,EACtB,cAAc,EACf,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAGD,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;AAGpD,MAAM,MAAM,oBAAoB,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;AAEhG,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,SAAS;IAElB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,kBAAkB,CAAC;gBADnB,IAAI,EAAE,UAAU,EAChB,kBAAkB,CAAC,GAAE,MAAM,MAAM,GAAG,SAAS,aAAA;IAGvD,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,aAAa;IAMrB;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3C,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAe5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACG,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7C,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;CAyB/C"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** Search API for CortexDB */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SearchAPI = void 0;
|
|
5
|
+
class SearchAPI {
|
|
6
|
+
constructor(http, getDefaultDatabase) {
|
|
7
|
+
this.http = http;
|
|
8
|
+
this.getDefaultDatabase = getDefaultDatabase;
|
|
9
|
+
}
|
|
10
|
+
resolveDatabase(database) {
|
|
11
|
+
const resolved = database ?? this.getDefaultDatabase?.();
|
|
12
|
+
if (!resolved) {
|
|
13
|
+
throw new Error("Database is required. Pass the database argument or set a default database on the CortexClient.");
|
|
14
|
+
}
|
|
15
|
+
return resolved;
|
|
16
|
+
}
|
|
17
|
+
buildBasePath(collection, database) {
|
|
18
|
+
const encodedCollection = encodeURIComponent(collection);
|
|
19
|
+
const encodedDb = encodeURIComponent(this.resolveDatabase(database));
|
|
20
|
+
return `/databases/${encodedDb}/collections/${encodedCollection}`;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Hybrid search - semantic vector search with optional filters
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const results = await client.search.hybrid({
|
|
28
|
+
* collection: 'documents',
|
|
29
|
+
* query: 'What is the deadline for appeals?',
|
|
30
|
+
* limit: 10,
|
|
31
|
+
* filters: { id: 'record-123' }
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
async hybrid(options) {
|
|
36
|
+
const basePath = this.buildBasePath(options.collection, options.database);
|
|
37
|
+
const requestBody = {
|
|
38
|
+
query: options.query,
|
|
39
|
+
filters: options.filters,
|
|
40
|
+
limit: options.limit ?? 10,
|
|
41
|
+
};
|
|
42
|
+
return this.http.post(`${basePath}/search`, requestBody);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Advanced search with RAG strategies
|
|
46
|
+
*
|
|
47
|
+
* Available strategies:
|
|
48
|
+
* - `simple`: Basic semantic search (default, no AI provider needed)
|
|
49
|
+
* - `multi_query`: Generate multiple query variations for better recall
|
|
50
|
+
* - `hyde`: Hypothetical Document Embeddings
|
|
51
|
+
* - `rerank`: Re-rank results using LLM for better precision
|
|
52
|
+
* - `fusion`: Combines multi_query + rerank
|
|
53
|
+
* - `contextual_query`: Use conversation context to reformulate query
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* // Simple strategy (no AI provider needed)
|
|
58
|
+
* const results = await client.search.advanced({
|
|
59
|
+
* collection: 'documents',
|
|
60
|
+
* query: 'What is the deadline?',
|
|
61
|
+
* strategy: 'simple',
|
|
62
|
+
* limit: 10
|
|
63
|
+
* });
|
|
64
|
+
*
|
|
65
|
+
* // Rerank strategy (requires AI provider)
|
|
66
|
+
* const results = await client.search.advanced({
|
|
67
|
+
* collection: 'documents',
|
|
68
|
+
* query: 'What is the deadline for appeals?',
|
|
69
|
+
* strategy: 'rerank',
|
|
70
|
+
* strategyConfig: {
|
|
71
|
+
* initial_limit: 50,
|
|
72
|
+
* final_limit: 10
|
|
73
|
+
* },
|
|
74
|
+
* aiProviderName: 'Gemini',
|
|
75
|
+
* limit: 10
|
|
76
|
+
* });
|
|
77
|
+
*
|
|
78
|
+
* // Filter by specific record
|
|
79
|
+
* const results = await client.search.advanced({
|
|
80
|
+
* collection: 'documents',
|
|
81
|
+
* query: 'deadline',
|
|
82
|
+
* filters: { id: 'record-uuid-123' },
|
|
83
|
+
* strategy: 'fusion',
|
|
84
|
+
* aiProviderName: 'Gemini'
|
|
85
|
+
* });
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
async advanced(options) {
|
|
89
|
+
const basePath = this.buildBasePath(options.collection, options.database);
|
|
90
|
+
const requestBody = {
|
|
91
|
+
query: options.query,
|
|
92
|
+
filters: options.filters,
|
|
93
|
+
limit: options.limit ?? 10,
|
|
94
|
+
strategy: options.strategy ?? "simple",
|
|
95
|
+
};
|
|
96
|
+
// Add strategy_config if provided (convert camelCase to snake_case for API)
|
|
97
|
+
if (options.strategyConfig) {
|
|
98
|
+
requestBody.strategy_config = options.strategyConfig;
|
|
99
|
+
}
|
|
100
|
+
// Add ai_provider_name if provided (convert camelCase to snake_case for API)
|
|
101
|
+
if (options.aiProviderName) {
|
|
102
|
+
requestBody.ai_provider_name = options.aiProviderName;
|
|
103
|
+
}
|
|
104
|
+
return this.http.post(`${basePath}/search/advanced`, requestBody);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.SearchAPI = SearchAPI;
|
|
108
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/search/api.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;AAyC9B,MAAa,SAAS;IACpB,YACU,IAAgB,EAChB,kBAA6C;QAD7C,SAAI,GAAJ,IAAI,CAAY;QAChB,uBAAkB,GAAlB,kBAAkB,CAA2B;IACpD,CAAC;IAEI,eAAe,CAAC,QAAiB;QACvC,MAAM,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,aAAa,CAAC,UAAkB,EAAE,QAAiB;QACzD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,OAAO,cAAc,SAAS,gBAAgB,iBAAiB,EAAE,CAAC;IACpE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,MAAM,CACV,OAA4B;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE1E,MAAM,WAAW,GAAG;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;SAC3B,CAAC;QAEF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,GAAG,QAAQ,SAAS,EACpB,WAAW,CACZ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,KAAK,CAAC,QAAQ,CACZ,OAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE1E,MAAM,WAAW,GAAwB;YACvC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ;SACvC,CAAC;QAEF,4EAA4E;QAC5E,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,WAAW,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;QACvD,CAAC;QAED,6EAA6E;QAC7E,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,WAAW,CAAC,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;QACxD,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,GAAG,QAAQ,kBAAkB,EAC7B,WAAW,CACZ,CAAC;IACJ,CAAC;CACF;AA3HD,8BA2HC"}
|
package/package.json
CHANGED