@fluxsoft/fluxvector 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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/errors.ts","../src/client.ts","../src/resources/collections.ts","../src/resources/vectors.ts","../src/resources/search.ts","../src/resources/embeddings.ts","../src/resources/api-keys.ts","../src/resources/usage.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["export class FluxVectorError extends Error {\n readonly status: number;\n readonly code: string;\n readonly requestId: string | undefined;\n\n constructor(\n message: string,\n status: number,\n code: string = 'unknown_error',\n requestId?: string,\n ) {\n super(message);\n this.name = 'FluxVectorError';\n this.status = status;\n this.code = code;\n this.requestId = requestId;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport class AuthenticationError extends FluxVectorError {\n constructor(message: string = 'Invalid or missing API key', requestId?: string) {\n super(message, 401, 'authentication_error', requestId);\n this.name = 'AuthenticationError';\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport class NotFoundError extends FluxVectorError {\n constructor(message: string = 'Resource not found', requestId?: string) {\n super(message, 404, 'not_found', requestId);\n this.name = 'NotFoundError';\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport class RateLimitError extends FluxVectorError {\n readonly retryAfter: number | undefined;\n\n constructor(message: string = 'Rate limit exceeded', retryAfter?: number, requestId?: string) {\n super(message, 429, 'rate_limit_exceeded', requestId);\n this.name = 'RateLimitError';\n this.retryAfter = retryAfter;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport class ValidationError extends FluxVectorError {\n constructor(message: string = 'Validation failed', requestId?: string) {\n super(message, 422, 'validation_error', requestId);\n this.name = 'ValidationError';\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport class ServerError extends FluxVectorError {\n constructor(message: string = 'Internal server error', status: number = 500, requestId?: string) {\n super(message, status, 'server_error', requestId);\n this.name = 'ServerError';\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n","import type { RequestOptions } from './types.js';\nimport {\n FluxVectorError,\n AuthenticationError,\n NotFoundError,\n RateLimitError,\n ValidationError,\n ServerError,\n} from './errors.js';\n\nconst DEFAULT_BASE_URL = 'https://fluxvector.dev';\nconst DEFAULT_MAX_RETRIES = 3;\nconst DEFAULT_TIMEOUT = 30_000;\nconst RETRY_STATUS_CODES = new Set([429, 500, 502, 503, 504]);\n\ninterface ClientConfig {\n apiKey: string;\n baseUrl: string;\n maxRetries: number;\n timeout: number;\n}\n\nexport class HttpClient {\n private readonly config: ClientConfig;\n\n constructor(config: {\n apiKey: string;\n baseUrl?: string;\n maxRetries?: number;\n timeout?: number;\n }) {\n this.config = {\n apiKey: config.apiKey,\n baseUrl: (config.baseUrl ?? DEFAULT_BASE_URL).replace(/\\/+$/, ''),\n maxRetries: config.maxRetries ?? DEFAULT_MAX_RETRIES,\n timeout: config.timeout ?? DEFAULT_TIMEOUT,\n };\n }\n\n async request<T>(options: RequestOptions): Promise<T> {\n const url = this.buildUrl(options.path, options.query);\n const headers: Record<string, string> = {\n 'Authorization': `Bearer ${this.config.apiKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fluxsoft/fluxvector/0.1.0',\n };\n\n const init: RequestInit = {\n method: options.method,\n headers,\n body: options.body !== undefined ? JSON.stringify(options.body) : undefined,\n signal: AbortSignal.timeout(this.config.timeout),\n };\n\n let lastError: Error | undefined;\n\n for (let attempt = 0; attempt <= this.config.maxRetries; attempt++) {\n if (attempt > 0) {\n await this.sleep(this.getRetryDelay(attempt, lastError));\n }\n\n try {\n const response = await fetch(url, init);\n\n if (response.ok) {\n return await response.json() as T;\n }\n\n const requestId = response.headers.get('x-request-id') ?? undefined;\n\n if (!RETRY_STATUS_CODES.has(response.status) || attempt === this.config.maxRetries) {\n throw this.buildError(response.status, await this.safeJson(response), requestId);\n }\n\n lastError = this.buildError(response.status, await this.safeJson(response), requestId);\n if (response.status === 429) {\n const retryAfter = response.headers.get('retry-after');\n if (retryAfter && lastError instanceof RateLimitError) {\n (lastError as RateLimitError & { retryAfter: number | undefined }).retryAfter = Number(retryAfter);\n }\n }\n } catch (error) {\n if (error instanceof FluxVectorError) {\n throw error;\n }\n\n if (attempt === this.config.maxRetries) {\n if (error instanceof DOMException && error.name === 'TimeoutError') {\n throw new FluxVectorError('Request timed out', 0, 'timeout');\n }\n throw new FluxVectorError(\n error instanceof Error ? error.message : 'Unknown network error',\n 0,\n 'network_error',\n );\n }\n\n lastError = error instanceof Error ? error : new Error(String(error));\n }\n }\n\n throw lastError ?? new FluxVectorError('Request failed after retries', 0, 'retry_exhausted');\n }\n\n private buildUrl(path: string, query?: Record<string, string | number | undefined>): string {\n const url = new URL(`${this.config.baseUrl}${path}`);\n if (query) {\n for (const [key, value] of Object.entries(query)) {\n if (value !== undefined) {\n url.searchParams.set(key, String(value));\n }\n }\n }\n return url.toString();\n }\n\n private buildError(\n status: number,\n body: Record<string, unknown> | null,\n requestId: string | undefined,\n ): FluxVectorError {\n const message = (body?.message as string | undefined)\n ?? (body?.error as string | undefined)\n ?? `Request failed with status ${status}`;\n\n switch (status) {\n case 401:\n return new AuthenticationError(message, requestId);\n case 404:\n return new NotFoundError(message, requestId);\n case 422:\n return new ValidationError(message, requestId);\n case 429: {\n const retryAfter = body?.retry_after as number | undefined;\n return new RateLimitError(message, retryAfter, requestId);\n }\n default:\n if (status >= 500) {\n return new ServerError(message, status, requestId);\n }\n return new FluxVectorError(message, status, 'api_error', requestId);\n }\n }\n\n private async safeJson(response: Response): Promise<Record<string, unknown> | null> {\n try {\n return await response.json() as Record<string, unknown>;\n } catch {\n return null;\n }\n }\n\n private getRetryDelay(attempt: number, lastError?: Error): number {\n if (lastError instanceof RateLimitError && lastError.retryAfter) {\n return lastError.retryAfter * 1000;\n }\n // Exponential backoff: 500ms, 1s, 2s + jitter\n const base = Math.min(500 * Math.pow(2, attempt - 1), 4000);\n const jitter = Math.random() * base * 0.5;\n return base + jitter;\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n}\n","import type { HttpClient } from '../client.js';\nimport type {\n Collection,\n CreateCollectionParams,\n ListCollectionsParams,\n ListCollectionsResponse,\n} from '../types.js';\n\nexport class Collections {\n constructor(private readonly client: HttpClient) {}\n\n /**\n * Create a new collection.\n */\n async create(params: CreateCollectionParams): Promise<Collection> {\n return this.client.request<Collection>({\n method: 'POST',\n path: '/v1/collections',\n body: params,\n });\n }\n\n /**\n * List all collections with cursor-based pagination.\n */\n async list(params?: ListCollectionsParams): Promise<ListCollectionsResponse> {\n return this.client.request<ListCollectionsResponse>({\n method: 'GET',\n path: '/v1/collections',\n query: {\n cursor: params?.cursor,\n limit: params?.limit,\n },\n });\n }\n\n /**\n * Get a collection by name.\n */\n async get(name: string): Promise<Collection> {\n return this.client.request<Collection>({\n method: 'GET',\n path: `/v1/collections/${encodeURIComponent(name)}`,\n });\n }\n\n /**\n * Delete a collection by name.\n */\n async delete(name: string): Promise<{ deleted: true }> {\n return this.client.request<{ deleted: true }>({\n method: 'DELETE',\n path: `/v1/collections/${encodeURIComponent(name)}`,\n });\n }\n}\n","import type { HttpClient } from '../client.js';\nimport type {\n VectorInput,\n UpsertResponse,\n QueryParams,\n QueryResponse,\n MetadataFilter,\n FetchVectorsResponse,\n} from '../types.js';\n\nconst MAX_UPSERT_BATCH_SIZE = 1000;\n\nexport class Vectors {\n constructor(private readonly client: HttpClient) {}\n\n /**\n * Upsert vectors into a collection.\n * Automatically chunks into batches of 1000 vectors.\n */\n async upsert(collection: string, vectors: VectorInput[]): Promise<UpsertResponse> {\n if (vectors.length <= MAX_UPSERT_BATCH_SIZE) {\n return this.client.request<UpsertResponse>({\n method: 'POST',\n path: '/v1/vectors/upsert',\n body: { collection, vectors },\n });\n }\n\n let totalUpserted = 0;\n\n for (let i = 0; i < vectors.length; i += MAX_UPSERT_BATCH_SIZE) {\n const chunk = vectors.slice(i, i + MAX_UPSERT_BATCH_SIZE);\n const result = await this.client.request<UpsertResponse>({\n method: 'POST',\n path: '/v1/vectors/upsert',\n body: { collection, vectors: chunk },\n });\n totalUpserted += result.upserted;\n }\n\n return { upserted: totalUpserted };\n }\n\n /**\n * Query vectors by text or vector with optional filtering.\n */\n async query(params: QueryParams): Promise<QueryResponse> {\n return this.client.request<QueryResponse>({\n method: 'POST',\n path: '/v1/vectors/query',\n body: {\n collection: params.collection,\n text: params.text,\n vector: params.vector,\n top_k: params.top_k,\n filter: params.filter,\n include_metadata: params.include_metadata,\n include_text: params.include_text,\n mode: params.mode,\n },\n });\n }\n\n /**\n * Delete vectors by IDs or filter.\n */\n async delete(\n collection: string,\n options: { ids?: string[]; filter?: MetadataFilter },\n ): Promise<{ deleted: true }> {\n return this.client.request<{ deleted: true }>({\n method: 'POST',\n path: '/v1/vectors/delete',\n body: {\n collection,\n ids: options.ids,\n filter: options.filter,\n },\n });\n }\n\n /**\n * Fetch vectors by their IDs.\n */\n async fetch(collection: string, ids: string[]): Promise<FetchVectorsResponse> {\n return this.client.request<FetchVectorsResponse>({\n method: 'GET',\n path: '/v1/vectors/fetch',\n query: {\n collection,\n ids: ids.join(','),\n },\n });\n }\n}\n","import type { HttpClient } from '../client.js';\nimport type { MetadataFilter, QueryResult, SearchResponse } from '../types.js';\n\nexport interface SearchOptions {\n topK?: number;\n filter?: MetadataFilter;\n mode?: string;\n}\n\nexport class Search {\n constructor(private readonly client: HttpClient) {}\n\n /**\n * Semantic search across a collection.\n * Returns matching results ranked by relevance.\n */\n async query(\n collection: string,\n text: string,\n options?: SearchOptions,\n ): Promise<QueryResult[]> {\n const response = await this.client.request<SearchResponse>({\n method: 'POST',\n path: '/v1/search',\n body: {\n collection,\n text,\n top_k: options?.topK,\n filter: options?.filter,\n mode: options?.mode,\n },\n });\n return response.results;\n }\n\n /**\n * Semantic search with full response (includes usage and timing).\n */\n async queryWithMeta(\n collection: string,\n text: string,\n options?: SearchOptions,\n ): Promise<SearchResponse> {\n return this.client.request<SearchResponse>({\n method: 'POST',\n path: '/v1/search',\n body: {\n collection,\n text,\n top_k: options?.topK,\n filter: options?.filter,\n mode: options?.mode,\n },\n });\n }\n}\n","import type { HttpClient } from '../client.js';\nimport type { EmbedResponse, EmbedBatchResponse } from '../types.js';\n\nexport class Embeddings {\n constructor(private readonly client: HttpClient) {}\n\n /**\n * Generate an embedding for a single text.\n */\n async create(text: string): Promise<EmbedResponse> {\n return this.client.request<EmbedResponse>({\n method: 'POST',\n path: '/v1/embed',\n body: { text },\n });\n }\n\n /**\n * Generate embeddings for multiple texts in a single request.\n */\n async createBatch(texts: string[]): Promise<EmbedBatchResponse> {\n return this.client.request<EmbedBatchResponse>({\n method: 'POST',\n path: '/v1/embed/batch',\n body: { texts },\n });\n }\n}\n","import type { HttpClient } from '../client.js';\nimport type {\n ApiKey,\n CreateApiKeyParams,\n ListApiKeysResponse,\n UpdateApiKeyParams,\n} from '../types.js';\n\nexport class ApiKeys {\n constructor(private readonly client: HttpClient) {}\n\n /**\n * Create a new API key.\n */\n async create(params: CreateApiKeyParams): Promise<ApiKey> {\n return this.client.request<ApiKey>({\n method: 'POST',\n path: '/v1/api-keys',\n body: params,\n });\n }\n\n /**\n * List all API keys.\n */\n async list(): Promise<ListApiKeysResponse> {\n return this.client.request<ListApiKeysResponse>({\n method: 'GET',\n path: '/v1/api-keys',\n });\n }\n\n /**\n * Update an API key's name.\n */\n async update(id: string, params: UpdateApiKeyParams): Promise<ApiKey> {\n return this.client.request<ApiKey>({\n method: 'PATCH',\n path: `/v1/api-keys/${encodeURIComponent(id)}`,\n body: params,\n });\n }\n\n /**\n * Delete an API key.\n */\n async delete(id: string): Promise<{ deleted: true }> {\n return this.client.request<{ deleted: true }>({\n method: 'DELETE',\n path: `/v1/api-keys/${encodeURIComponent(id)}`,\n });\n }\n}\n","import type { HttpClient } from '../client.js';\nimport type {\n UsageOverview,\n UsageHistoryParams,\n UsageHistoryResponse,\n} from '../types.js';\n\nexport class Usage {\n constructor(private readonly client: HttpClient) {}\n\n /**\n * Get current usage overview for the billing period.\n */\n async get(): Promise<UsageOverview> {\n return this.client.request<UsageOverview>({\n method: 'GET',\n path: '/v1/usage',\n });\n }\n\n /**\n * Get historical usage data.\n */\n async history(params?: UsageHistoryParams): Promise<UsageHistoryResponse> {\n return this.client.request<UsageHistoryResponse>({\n method: 'GET',\n path: '/v1/usage/history',\n query: {\n days: params?.days,\n },\n });\n }\n}\n","import { HttpClient } from './client.js';\nimport { Collections } from './resources/collections.js';\nimport { Vectors } from './resources/vectors.js';\nimport { Search } from './resources/search.js';\nimport type { SearchOptions } from './resources/search.js';\nimport { Embeddings } from './resources/embeddings.js';\nimport { ApiKeys } from './resources/api-keys.js';\nimport { Usage } from './resources/usage.js';\nimport type { FluxVectorConfig, QueryResult } from './types.js';\n\nexport class FluxVector {\n readonly collections: Collections;\n readonly vectors: Vectors;\n readonly embeddings: Embeddings;\n readonly apiKeys: ApiKeys;\n readonly usage: Usage;\n\n private readonly searchResource: Search;\n\n constructor(config: FluxVectorConfig) {\n if (!config.apiKey) {\n throw new Error('FluxVector: apiKey is required');\n }\n\n const client = new HttpClient({\n apiKey: config.apiKey,\n baseUrl: config.baseUrl,\n maxRetries: config.maxRetries,\n timeout: config.timeout,\n });\n\n this.collections = new Collections(client);\n this.vectors = new Vectors(client);\n this.searchResource = new Search(client);\n this.embeddings = new Embeddings(client);\n this.apiKeys = new ApiKeys(client);\n this.usage = new Usage(client);\n }\n\n /**\n * Semantic search across a collection.\n *\n * @example\n * const results = await fv.search('products', 'comfortable shoes', {\n * topK: 5,\n * filter: { price: { $lt: 100 } },\n * });\n */\n async search(\n collection: string,\n text: string,\n options?: SearchOptions,\n ): Promise<QueryResult[]> {\n return this.searchResource.query(collection, text, options);\n }\n}\n\n// Re-export everything\nexport { HttpClient } from './client.js';\nexport { Collections } from './resources/collections.js';\nexport { Vectors } from './resources/vectors.js';\nexport { Search } from './resources/search.js';\nexport type { SearchOptions } from './resources/search.js';\nexport { Embeddings } from './resources/embeddings.js';\nexport { ApiKeys } from './resources/api-keys.js';\nexport { Usage } from './resources/usage.js';\n\nexport {\n FluxVectorError,\n AuthenticationError,\n NotFoundError,\n RateLimitError,\n ValidationError,\n ServerError,\n} from './errors.js';\n\nexport type {\n FluxVectorConfig,\n FilterOperator,\n FilterValue,\n FilterCondition,\n MetadataFilter,\n CreateCollectionParams,\n Collection,\n ListCollectionsParams,\n ListCollectionsResponse,\n VectorInput,\n Vector,\n UpsertResponse,\n QueryParams,\n QueryResult,\n QueryResponse,\n DeleteVectorsParams,\n FetchVectorsParams,\n FetchVectorsResponse,\n SearchParams,\n SearchResponse,\n EmbedResponse,\n EmbedBatchResponse,\n CreateApiKeyParams,\n ApiKey,\n UpdateApiKeyParams,\n ListApiKeysResponse,\n UsageInfo,\n UsageOverview,\n UsageHistoryParams,\n UsageHistoryEntry,\n UsageHistoryResponse,\n} from './types.js';\n"]}
@@ -0,0 +1,337 @@
1
+ interface FluxVectorConfig {
2
+ apiKey: string;
3
+ baseUrl?: string;
4
+ maxRetries?: number;
5
+ timeout?: number;
6
+ }
7
+ type FilterOperator = '$eq' | '$ne' | '$gt' | '$gte' | '$lt' | '$lte' | '$in' | '$nin';
8
+ type FilterValue = string | number | boolean | string[] | number[];
9
+ type FilterCondition = {
10
+ [K in FilterOperator]?: FilterValue;
11
+ };
12
+ type MetadataFilter = {
13
+ [field: string]: FilterCondition | FilterValue;
14
+ };
15
+ interface CreateCollectionParams {
16
+ name: string;
17
+ dimension?: number;
18
+ metric?: 'cosine' | 'euclidean' | 'dotproduct';
19
+ description?: string;
20
+ }
21
+ interface Collection {
22
+ name: string;
23
+ dimension: number;
24
+ metric: string;
25
+ description: string;
26
+ vectors_count: number;
27
+ created_at: string;
28
+ updated_at: string;
29
+ }
30
+ interface ListCollectionsParams {
31
+ cursor?: string;
32
+ limit?: number;
33
+ }
34
+ interface ListCollectionsResponse {
35
+ data: Collection[];
36
+ has_more: boolean;
37
+ next_cursor: string | null;
38
+ }
39
+ interface VectorInput {
40
+ id: string;
41
+ text?: string;
42
+ values?: number[];
43
+ metadata?: Record<string, unknown>;
44
+ }
45
+ interface Vector {
46
+ id: string;
47
+ text?: string;
48
+ values?: number[];
49
+ metadata?: Record<string, unknown>;
50
+ }
51
+ interface UpsertResponse {
52
+ upserted: number;
53
+ }
54
+ interface QueryParams {
55
+ collection: string;
56
+ text?: string;
57
+ vector?: number[];
58
+ top_k?: number;
59
+ filter?: MetadataFilter;
60
+ include_metadata?: boolean;
61
+ include_text?: boolean;
62
+ mode?: string;
63
+ }
64
+ interface QueryResult {
65
+ id: string;
66
+ score: number;
67
+ text?: string;
68
+ metadata?: Record<string, unknown>;
69
+ values?: number[];
70
+ }
71
+ interface QueryResponse {
72
+ results: QueryResult[];
73
+ usage: UsageInfo;
74
+ took_ms: number;
75
+ }
76
+ interface DeleteVectorsParams {
77
+ collection: string;
78
+ ids?: string[];
79
+ filter?: MetadataFilter;
80
+ }
81
+ interface FetchVectorsParams {
82
+ ids: string[];
83
+ collection: string;
84
+ }
85
+ interface FetchVectorsResponse {
86
+ vectors: Vector[];
87
+ }
88
+ interface SearchParams {
89
+ collection: string;
90
+ text: string;
91
+ top_k?: number;
92
+ filter?: MetadataFilter;
93
+ mode?: string;
94
+ }
95
+ interface SearchResponse {
96
+ results: QueryResult[];
97
+ usage: UsageInfo;
98
+ took_ms: number;
99
+ }
100
+ interface EmbedResponse {
101
+ embedding: number[];
102
+ dimension: number;
103
+ model: string;
104
+ }
105
+ interface EmbedBatchResponse {
106
+ embeddings: number[][];
107
+ dimension: number;
108
+ model: string;
109
+ }
110
+ interface CreateApiKeyParams {
111
+ name: string;
112
+ env?: 'live' | 'test';
113
+ }
114
+ interface ApiKey {
115
+ id: string;
116
+ key?: string;
117
+ prefix: string;
118
+ name: string;
119
+ env: string;
120
+ warning?: string;
121
+ created_at?: string;
122
+ }
123
+ interface UpdateApiKeyParams {
124
+ name: string;
125
+ }
126
+ interface ListApiKeysResponse {
127
+ data: ApiKey[];
128
+ }
129
+ interface UsageInfo {
130
+ embeddings?: number;
131
+ [key: string]: unknown;
132
+ }
133
+ interface UsageOverview {
134
+ plan: string;
135
+ period_start: string;
136
+ requests: number;
137
+ embeddings: number;
138
+ vectors_stored: number;
139
+ collections: number;
140
+ }
141
+ interface UsageHistoryParams {
142
+ days?: number;
143
+ }
144
+ interface UsageHistoryEntry {
145
+ date: string;
146
+ requests: number;
147
+ embeddings: number;
148
+ vectors: number;
149
+ }
150
+ interface UsageHistoryResponse {
151
+ data: UsageHistoryEntry[];
152
+ }
153
+ interface RequestOptions {
154
+ method: 'GET' | 'POST' | 'PATCH' | 'DELETE';
155
+ path: string;
156
+ body?: unknown;
157
+ query?: Record<string, string | number | undefined>;
158
+ }
159
+
160
+ declare class HttpClient {
161
+ private readonly config;
162
+ constructor(config: {
163
+ apiKey: string;
164
+ baseUrl?: string;
165
+ maxRetries?: number;
166
+ timeout?: number;
167
+ });
168
+ request<T>(options: RequestOptions): Promise<T>;
169
+ private buildUrl;
170
+ private buildError;
171
+ private safeJson;
172
+ private getRetryDelay;
173
+ private sleep;
174
+ }
175
+
176
+ declare class Collections {
177
+ private readonly client;
178
+ constructor(client: HttpClient);
179
+ /**
180
+ * Create a new collection.
181
+ */
182
+ create(params: CreateCollectionParams): Promise<Collection>;
183
+ /**
184
+ * List all collections with cursor-based pagination.
185
+ */
186
+ list(params?: ListCollectionsParams): Promise<ListCollectionsResponse>;
187
+ /**
188
+ * Get a collection by name.
189
+ */
190
+ get(name: string): Promise<Collection>;
191
+ /**
192
+ * Delete a collection by name.
193
+ */
194
+ delete(name: string): Promise<{
195
+ deleted: true;
196
+ }>;
197
+ }
198
+
199
+ declare class Vectors {
200
+ private readonly client;
201
+ constructor(client: HttpClient);
202
+ /**
203
+ * Upsert vectors into a collection.
204
+ * Automatically chunks into batches of 1000 vectors.
205
+ */
206
+ upsert(collection: string, vectors: VectorInput[]): Promise<UpsertResponse>;
207
+ /**
208
+ * Query vectors by text or vector with optional filtering.
209
+ */
210
+ query(params: QueryParams): Promise<QueryResponse>;
211
+ /**
212
+ * Delete vectors by IDs or filter.
213
+ */
214
+ delete(collection: string, options: {
215
+ ids?: string[];
216
+ filter?: MetadataFilter;
217
+ }): Promise<{
218
+ deleted: true;
219
+ }>;
220
+ /**
221
+ * Fetch vectors by their IDs.
222
+ */
223
+ fetch(collection: string, ids: string[]): Promise<FetchVectorsResponse>;
224
+ }
225
+
226
+ interface SearchOptions {
227
+ topK?: number;
228
+ filter?: MetadataFilter;
229
+ mode?: string;
230
+ }
231
+ declare class Search {
232
+ private readonly client;
233
+ constructor(client: HttpClient);
234
+ /**
235
+ * Semantic search across a collection.
236
+ * Returns matching results ranked by relevance.
237
+ */
238
+ query(collection: string, text: string, options?: SearchOptions): Promise<QueryResult[]>;
239
+ /**
240
+ * Semantic search with full response (includes usage and timing).
241
+ */
242
+ queryWithMeta(collection: string, text: string, options?: SearchOptions): Promise<SearchResponse>;
243
+ }
244
+
245
+ declare class Embeddings {
246
+ private readonly client;
247
+ constructor(client: HttpClient);
248
+ /**
249
+ * Generate an embedding for a single text.
250
+ */
251
+ create(text: string): Promise<EmbedResponse>;
252
+ /**
253
+ * Generate embeddings for multiple texts in a single request.
254
+ */
255
+ createBatch(texts: string[]): Promise<EmbedBatchResponse>;
256
+ }
257
+
258
+ declare class ApiKeys {
259
+ private readonly client;
260
+ constructor(client: HttpClient);
261
+ /**
262
+ * Create a new API key.
263
+ */
264
+ create(params: CreateApiKeyParams): Promise<ApiKey>;
265
+ /**
266
+ * List all API keys.
267
+ */
268
+ list(): Promise<ListApiKeysResponse>;
269
+ /**
270
+ * Update an API key's name.
271
+ */
272
+ update(id: string, params: UpdateApiKeyParams): Promise<ApiKey>;
273
+ /**
274
+ * Delete an API key.
275
+ */
276
+ delete(id: string): Promise<{
277
+ deleted: true;
278
+ }>;
279
+ }
280
+
281
+ declare class Usage {
282
+ private readonly client;
283
+ constructor(client: HttpClient);
284
+ /**
285
+ * Get current usage overview for the billing period.
286
+ */
287
+ get(): Promise<UsageOverview>;
288
+ /**
289
+ * Get historical usage data.
290
+ */
291
+ history(params?: UsageHistoryParams): Promise<UsageHistoryResponse>;
292
+ }
293
+
294
+ declare class FluxVectorError extends Error {
295
+ readonly status: number;
296
+ readonly code: string;
297
+ readonly requestId: string | undefined;
298
+ constructor(message: string, status: number, code?: string, requestId?: string);
299
+ }
300
+ declare class AuthenticationError extends FluxVectorError {
301
+ constructor(message?: string, requestId?: string);
302
+ }
303
+ declare class NotFoundError extends FluxVectorError {
304
+ constructor(message?: string, requestId?: string);
305
+ }
306
+ declare class RateLimitError extends FluxVectorError {
307
+ readonly retryAfter: number | undefined;
308
+ constructor(message?: string, retryAfter?: number, requestId?: string);
309
+ }
310
+ declare class ValidationError extends FluxVectorError {
311
+ constructor(message?: string, requestId?: string);
312
+ }
313
+ declare class ServerError extends FluxVectorError {
314
+ constructor(message?: string, status?: number, requestId?: string);
315
+ }
316
+
317
+ declare class FluxVector {
318
+ readonly collections: Collections;
319
+ readonly vectors: Vectors;
320
+ readonly embeddings: Embeddings;
321
+ readonly apiKeys: ApiKeys;
322
+ readonly usage: Usage;
323
+ private readonly searchResource;
324
+ constructor(config: FluxVectorConfig);
325
+ /**
326
+ * Semantic search across a collection.
327
+ *
328
+ * @example
329
+ * const results = await fv.search('products', 'comfortable shoes', {
330
+ * topK: 5,
331
+ * filter: { price: { $lt: 100 } },
332
+ * });
333
+ */
334
+ search(collection: string, text: string, options?: SearchOptions): Promise<QueryResult[]>;
335
+ }
336
+
337
+ export { type ApiKey, ApiKeys, AuthenticationError, type Collection, Collections, type CreateApiKeyParams, type CreateCollectionParams, type DeleteVectorsParams, type EmbedBatchResponse, type EmbedResponse, Embeddings, type FetchVectorsParams, type FetchVectorsResponse, type FilterCondition, type FilterOperator, type FilterValue, FluxVector, type FluxVectorConfig, FluxVectorError, HttpClient, type ListApiKeysResponse, type ListCollectionsParams, type ListCollectionsResponse, type MetadataFilter, NotFoundError, type QueryParams, type QueryResponse, type QueryResult, RateLimitError, Search, type SearchOptions, type SearchParams, type SearchResponse, ServerError, type UpdateApiKeyParams, type UpsertResponse, Usage, type UsageHistoryEntry, type UsageHistoryParams, type UsageHistoryResponse, type UsageInfo, type UsageOverview, ValidationError, type Vector, type VectorInput, Vectors };