@agentuity/core 0.0.33 → 0.0.36
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/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/json.js +23 -0
- package/dist/json.js.map +1 -0
- package/dist/services/_util.js +107 -0
- package/dist/services/_util.js.map +1 -0
- package/dist/services/adapter.js +2 -0
- package/dist/services/adapter.js.map +1 -0
- package/dist/services/exception.js +8 -0
- package/dist/services/exception.js.map +1 -0
- package/dist/services/index.js +8 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/keyvalue.js +85 -0
- package/dist/services/keyvalue.js.map +1 -0
- package/dist/services/objectstore.js +218 -0
- package/dist/services/objectstore.js.map +1 -0
- package/dist/services/stream.js +392 -0
- package/dist/services/stream.js.map +1 -0
- package/dist/services/vector.js +242 -0
- package/dist/services/vector.js.map +1 -0
- package/dist/standard_schema.js +2 -0
- package/dist/standard_schema.js.map +1 -0
- package/dist/typehelper.js +2 -0
- package/dist/typehelper.js.map +1 -0
- package/package.json +5 -4
- package/src/index.ts +4 -0
- package/src/json.ts +26 -0
- package/src/services/__test__/keyvalue.test.ts +402 -0
- package/src/services/__test__/mock-adapter.ts +114 -0
- package/src/services/__test__/objectstore.test.ts +431 -0
- package/src/services/__test__/stream.test.ts +554 -0
- package/src/services/__test__/vector.test.ts +813 -0
- package/src/services/_util.ts +117 -0
- package/src/services/adapter.ts +33 -0
- package/src/services/exception.ts +7 -0
- package/src/services/index.ts +7 -0
- package/src/services/keyvalue.ts +185 -0
- package/src/services/objectstore.ts +466 -0
- package/src/services/stream.ts +614 -0
- package/src/services/vector.ts +599 -0
- package/src/standard_schema.ts +69 -0
- package/src/typehelper.ts +5 -0
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
import { safeStringify } from '../json';
|
|
2
|
+
import { buildUrl, toServiceException } from './_util';
|
|
3
|
+
const encoder = new TextEncoder();
|
|
4
|
+
/**
|
|
5
|
+
* A writable stream implementation that extends WritableStream
|
|
6
|
+
*/
|
|
7
|
+
class StreamImpl extends WritableStream {
|
|
8
|
+
id;
|
|
9
|
+
url;
|
|
10
|
+
activeWriter = null;
|
|
11
|
+
_compressed;
|
|
12
|
+
_adapter;
|
|
13
|
+
_sink;
|
|
14
|
+
constructor(id, url, compressed, underlyingSink, adapter) {
|
|
15
|
+
super(underlyingSink);
|
|
16
|
+
this.id = id;
|
|
17
|
+
this.url = url;
|
|
18
|
+
this._compressed = compressed;
|
|
19
|
+
this._adapter = adapter;
|
|
20
|
+
this._sink = underlyingSink;
|
|
21
|
+
}
|
|
22
|
+
get bytesWritten() {
|
|
23
|
+
return this._sink.total;
|
|
24
|
+
}
|
|
25
|
+
get compressed() {
|
|
26
|
+
return this._compressed;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Write data to the stream
|
|
30
|
+
*/
|
|
31
|
+
async write(chunk) {
|
|
32
|
+
let binaryChunk;
|
|
33
|
+
if (chunk instanceof Uint8Array) {
|
|
34
|
+
binaryChunk = chunk;
|
|
35
|
+
}
|
|
36
|
+
else if (typeof chunk === 'string') {
|
|
37
|
+
binaryChunk = encoder.encode(chunk);
|
|
38
|
+
}
|
|
39
|
+
else if (chunk instanceof ArrayBuffer) {
|
|
40
|
+
binaryChunk = new Uint8Array(chunk);
|
|
41
|
+
}
|
|
42
|
+
else if (typeof chunk === 'object' && chunk !== null) {
|
|
43
|
+
binaryChunk = encoder.encode(safeStringify(chunk));
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
binaryChunk = encoder.encode(String(chunk));
|
|
47
|
+
}
|
|
48
|
+
if (!this.activeWriter) {
|
|
49
|
+
this.activeWriter = this.getWriter();
|
|
50
|
+
}
|
|
51
|
+
await this.activeWriter.write(binaryChunk);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Override close to handle already closed streams gracefully
|
|
55
|
+
* This method safely closes the stream, or silently returns if already closed
|
|
56
|
+
*/
|
|
57
|
+
async close() {
|
|
58
|
+
try {
|
|
59
|
+
// If we have an active writer from write() calls, use that
|
|
60
|
+
if (this.activeWriter) {
|
|
61
|
+
const writer = this.activeWriter;
|
|
62
|
+
this.activeWriter = null;
|
|
63
|
+
await writer.close();
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
// Otherwise, get a writer and close it
|
|
67
|
+
const writer = this.getWriter();
|
|
68
|
+
await writer.close();
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
// If we get a TypeError about the stream being closed, locked, or errored,
|
|
72
|
+
// that means pipeTo() or another operation already closed it or it's in use
|
|
73
|
+
if (error instanceof TypeError &&
|
|
74
|
+
(error.message.includes('closed') ||
|
|
75
|
+
error.message.includes('errored') ||
|
|
76
|
+
error.message.includes('Cannot close'))) {
|
|
77
|
+
// Silently return - this is the desired behavior
|
|
78
|
+
return Promise.resolve();
|
|
79
|
+
}
|
|
80
|
+
// If the stream is locked, try to close the underlying writer
|
|
81
|
+
if (error instanceof TypeError && error.message.includes('locked')) {
|
|
82
|
+
// Best-effort closure for locked streams
|
|
83
|
+
return Promise.resolve();
|
|
84
|
+
}
|
|
85
|
+
// Re-throw any other errors
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Get a ReadableStream that streams from the internal URL
|
|
91
|
+
*
|
|
92
|
+
* Note: This method will block waiting for data until writes start to the Stream.
|
|
93
|
+
* The returned ReadableStream will remain open until the Stream is closed or an error occurs.
|
|
94
|
+
*
|
|
95
|
+
* @returns a ReadableStream that can be passed to response.stream()
|
|
96
|
+
*/
|
|
97
|
+
getReader() {
|
|
98
|
+
const url = this.url;
|
|
99
|
+
const adapter = this._adapter;
|
|
100
|
+
let ac = null;
|
|
101
|
+
return new ReadableStream({
|
|
102
|
+
async start(controller) {
|
|
103
|
+
try {
|
|
104
|
+
ac = new AbortController();
|
|
105
|
+
const res = await adapter.invoke(url, {
|
|
106
|
+
method: 'GET',
|
|
107
|
+
signal: ac.signal,
|
|
108
|
+
binary: true,
|
|
109
|
+
});
|
|
110
|
+
const response = res.response;
|
|
111
|
+
if (!res.ok) {
|
|
112
|
+
controller.error(new Error(`Failed to read stream: ${response.status} ${response.statusText}`));
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (!response.body) {
|
|
116
|
+
controller.error(new Error('Response body is null'));
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const reader = response.body.getReader();
|
|
120
|
+
try {
|
|
121
|
+
// Iterative read to avoid recursive promise chains
|
|
122
|
+
while (true) {
|
|
123
|
+
const { done, value } = await reader.read();
|
|
124
|
+
if (done)
|
|
125
|
+
break;
|
|
126
|
+
if (value)
|
|
127
|
+
controller.enqueue(value);
|
|
128
|
+
}
|
|
129
|
+
controller.close();
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
controller.error(error);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
controller.error(error);
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
cancel(reason) {
|
|
140
|
+
if (ac) {
|
|
141
|
+
ac.abort(reason);
|
|
142
|
+
ac = null;
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// Create a WritableStream that writes to the backend stream
|
|
149
|
+
// Create the underlying sink that will handle the actual streaming
|
|
150
|
+
class UnderlyingSink {
|
|
151
|
+
adapter;
|
|
152
|
+
abortController = null;
|
|
153
|
+
writer = null;
|
|
154
|
+
putRequestPromise = null;
|
|
155
|
+
total = 0;
|
|
156
|
+
closed = false;
|
|
157
|
+
url;
|
|
158
|
+
props;
|
|
159
|
+
constructor(url, adapter, props) {
|
|
160
|
+
this.url = url;
|
|
161
|
+
this.adapter = adapter;
|
|
162
|
+
this.props = props;
|
|
163
|
+
}
|
|
164
|
+
async start() {
|
|
165
|
+
// Create AbortController for the fetch request
|
|
166
|
+
this.abortController = new AbortController();
|
|
167
|
+
// Create a ReadableStream to pipe data to the PUT request
|
|
168
|
+
// eslint-disable-next-line prefer-const
|
|
169
|
+
let { readable, writable } = new TransformStream();
|
|
170
|
+
// If compression is enabled, add gzip transform
|
|
171
|
+
if (this.props?.compress) {
|
|
172
|
+
const { Readable, Writable } = await import('node:stream');
|
|
173
|
+
// Create a new transform for the compressed output
|
|
174
|
+
const { readable: compressedReadable, writable: compressedWritable } = new TransformStream();
|
|
175
|
+
// Set up compression pipeline
|
|
176
|
+
const { createGzip } = await import('node:zlib');
|
|
177
|
+
const gzipStream = createGzip();
|
|
178
|
+
const nodeWritable = Writable.toWeb(gzipStream);
|
|
179
|
+
// Pipe gzip output to the compressed readable
|
|
180
|
+
const gzipReader = Readable.toWeb(gzipStream);
|
|
181
|
+
gzipReader.pipeTo(compressedWritable).catch((error) => {
|
|
182
|
+
this.abortController?.abort(error);
|
|
183
|
+
this.writer?.abort(error).catch(() => { });
|
|
184
|
+
});
|
|
185
|
+
// Chain: writable -> gzip -> compressedReadable
|
|
186
|
+
readable.pipeTo(nodeWritable).catch((error) => {
|
|
187
|
+
this.abortController?.abort(error);
|
|
188
|
+
this.writer?.abort(error).catch(() => { });
|
|
189
|
+
});
|
|
190
|
+
readable = compressedReadable;
|
|
191
|
+
}
|
|
192
|
+
this.writer = writable.getWriter();
|
|
193
|
+
// Start the PUT request with the readable stream as body
|
|
194
|
+
const headers = {
|
|
195
|
+
'Content-Type': this.props?.contentType || 'application/octet-stream',
|
|
196
|
+
};
|
|
197
|
+
if (this.props?.compress) {
|
|
198
|
+
headers['Content-Encoding'] = 'gzip';
|
|
199
|
+
}
|
|
200
|
+
this.putRequestPromise = this.adapter.invoke(this.url, {
|
|
201
|
+
method: 'PUT',
|
|
202
|
+
headers,
|
|
203
|
+
body: readable,
|
|
204
|
+
signal: this.abortController.signal,
|
|
205
|
+
duplex: 'half',
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
async write(chunk) {
|
|
209
|
+
if (!this.writer) {
|
|
210
|
+
throw new Error('Stream writer not initialized');
|
|
211
|
+
}
|
|
212
|
+
// Convert input to Uint8Array if needed
|
|
213
|
+
let binaryChunk;
|
|
214
|
+
if (chunk instanceof Uint8Array) {
|
|
215
|
+
binaryChunk = chunk;
|
|
216
|
+
}
|
|
217
|
+
else if (typeof chunk === 'string') {
|
|
218
|
+
binaryChunk = new TextEncoder().encode(chunk);
|
|
219
|
+
}
|
|
220
|
+
else if (chunk instanceof ArrayBuffer) {
|
|
221
|
+
binaryChunk = new Uint8Array(chunk);
|
|
222
|
+
}
|
|
223
|
+
else if (typeof chunk === 'object' && chunk !== null) {
|
|
224
|
+
// Convert objects to JSON string, then to bytes
|
|
225
|
+
binaryChunk = new TextEncoder().encode(safeStringify(chunk));
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
// Handle primitive types (number, boolean, etc.)
|
|
229
|
+
binaryChunk = new TextEncoder().encode(String(chunk));
|
|
230
|
+
}
|
|
231
|
+
// Write the chunk to the transform stream, which pipes to the PUT request
|
|
232
|
+
await this.writer.write(binaryChunk);
|
|
233
|
+
this.total += binaryChunk.length;
|
|
234
|
+
}
|
|
235
|
+
async close() {
|
|
236
|
+
if (this.closed) {
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
this.closed = true;
|
|
240
|
+
if (this.writer) {
|
|
241
|
+
await this.writer.close();
|
|
242
|
+
this.writer = null;
|
|
243
|
+
}
|
|
244
|
+
// Wait for the PUT request to complete
|
|
245
|
+
if (this.putRequestPromise) {
|
|
246
|
+
try {
|
|
247
|
+
const res = await this.putRequestPromise;
|
|
248
|
+
if (!res.ok) {
|
|
249
|
+
throw new Error(`PUT request failed: ${res.response.status} ${res.response.statusText}`);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
if (error instanceof Error && error.name !== 'AbortError') {
|
|
254
|
+
throw error;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
this.putRequestPromise = null;
|
|
258
|
+
}
|
|
259
|
+
this.abortController = null;
|
|
260
|
+
}
|
|
261
|
+
async abort(reason) {
|
|
262
|
+
if (this.writer) {
|
|
263
|
+
await this.writer.abort(reason);
|
|
264
|
+
this.writer = null;
|
|
265
|
+
}
|
|
266
|
+
// Abort the fetch request
|
|
267
|
+
if (this.abortController) {
|
|
268
|
+
this.abortController.abort(reason);
|
|
269
|
+
this.abortController = null;
|
|
270
|
+
}
|
|
271
|
+
this.putRequestPromise = null;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
export class StreamStorageService {
|
|
275
|
+
#adapter;
|
|
276
|
+
#baseUrl;
|
|
277
|
+
constructor(baseUrl, adapter) {
|
|
278
|
+
this.#adapter = adapter;
|
|
279
|
+
this.#baseUrl = baseUrl;
|
|
280
|
+
}
|
|
281
|
+
async create(name, props) {
|
|
282
|
+
if (!name || name.length < 1 || name.length > 254) {
|
|
283
|
+
throw new Error('Stream name must be between 1 and 254 characters');
|
|
284
|
+
}
|
|
285
|
+
const url = this.#baseUrl;
|
|
286
|
+
const signal = AbortSignal.timeout(10_000);
|
|
287
|
+
const attributes = {
|
|
288
|
+
name,
|
|
289
|
+
};
|
|
290
|
+
if (!props?.contentType) {
|
|
291
|
+
props = props ?? {};
|
|
292
|
+
props.contentType = 'application/octet-stream';
|
|
293
|
+
}
|
|
294
|
+
if (props?.metadata) {
|
|
295
|
+
attributes['metadata'] = JSON.stringify(props.metadata);
|
|
296
|
+
}
|
|
297
|
+
if (props?.contentType) {
|
|
298
|
+
attributes['stream.content_type'] = props.contentType;
|
|
299
|
+
}
|
|
300
|
+
const body = JSON.stringify({
|
|
301
|
+
name,
|
|
302
|
+
...(props?.metadata && { metadata: props.metadata }),
|
|
303
|
+
...(props?.contentType && { contentType: props.contentType }),
|
|
304
|
+
});
|
|
305
|
+
const res = await this.#adapter.invoke(url, {
|
|
306
|
+
method: 'POST',
|
|
307
|
+
body,
|
|
308
|
+
contentType: 'application/json',
|
|
309
|
+
signal,
|
|
310
|
+
telemetry: {
|
|
311
|
+
name: 'agentuity.stream.create',
|
|
312
|
+
attributes,
|
|
313
|
+
},
|
|
314
|
+
});
|
|
315
|
+
if (res.ok) {
|
|
316
|
+
const streamUrl = buildUrl(this.#baseUrl, res.data.id);
|
|
317
|
+
const underlyingSink = new UnderlyingSink(streamUrl, this.#adapter, props);
|
|
318
|
+
const stream = new StreamImpl(res.data.id, streamUrl, props?.compress ?? false, underlyingSink, this.#adapter);
|
|
319
|
+
return stream;
|
|
320
|
+
}
|
|
321
|
+
throw await toServiceException(res.response);
|
|
322
|
+
}
|
|
323
|
+
async list(params) {
|
|
324
|
+
const attributes = {};
|
|
325
|
+
if (params?.limit !== undefined) {
|
|
326
|
+
if (params.limit <= 0 || params.limit > 1000) {
|
|
327
|
+
throw new Error('limit must be greater than 0 and less than or equal to 1000');
|
|
328
|
+
}
|
|
329
|
+
attributes['limit'] = String(params.limit);
|
|
330
|
+
}
|
|
331
|
+
if (params?.offset !== undefined) {
|
|
332
|
+
attributes['offset'] = String(params.offset);
|
|
333
|
+
}
|
|
334
|
+
if (params?.name) {
|
|
335
|
+
attributes['name'] = params.name;
|
|
336
|
+
}
|
|
337
|
+
if (params?.metadata) {
|
|
338
|
+
attributes['metadata'] = JSON.stringify(params.metadata);
|
|
339
|
+
}
|
|
340
|
+
const requestBody = {};
|
|
341
|
+
if (params?.name) {
|
|
342
|
+
requestBody.name = params.name;
|
|
343
|
+
}
|
|
344
|
+
if (params?.metadata) {
|
|
345
|
+
requestBody.metadata = params.metadata;
|
|
346
|
+
}
|
|
347
|
+
if (params?.limit) {
|
|
348
|
+
requestBody.limit = params.limit;
|
|
349
|
+
}
|
|
350
|
+
if (params?.offset) {
|
|
351
|
+
requestBody.offset = params.offset;
|
|
352
|
+
}
|
|
353
|
+
const signal = AbortSignal.timeout(30_000);
|
|
354
|
+
const url = buildUrl(this.#baseUrl, 'list');
|
|
355
|
+
const res = await this.#adapter.invoke(url, {
|
|
356
|
+
method: 'POST',
|
|
357
|
+
signal,
|
|
358
|
+
body: JSON.stringify(requestBody),
|
|
359
|
+
contentType: 'application/json',
|
|
360
|
+
telemetry: {
|
|
361
|
+
name: 'agentuity.stream.list',
|
|
362
|
+
attributes,
|
|
363
|
+
},
|
|
364
|
+
});
|
|
365
|
+
if (res.ok) {
|
|
366
|
+
return res.data;
|
|
367
|
+
}
|
|
368
|
+
throw await toServiceException(res.response);
|
|
369
|
+
}
|
|
370
|
+
async delete(id) {
|
|
371
|
+
if (!id || typeof id !== 'string' || id.trim().length === 0) {
|
|
372
|
+
throw new Error('Stream id is required and must be a non-empty string');
|
|
373
|
+
}
|
|
374
|
+
const signal = AbortSignal.timeout(30_000);
|
|
375
|
+
const url = buildUrl(this.#baseUrl, id);
|
|
376
|
+
const res = await this.#adapter.invoke(url, {
|
|
377
|
+
method: 'DELETE',
|
|
378
|
+
signal,
|
|
379
|
+
telemetry: {
|
|
380
|
+
name: 'agentuity.stream.delete',
|
|
381
|
+
attributes: {
|
|
382
|
+
'stream.id': id,
|
|
383
|
+
},
|
|
384
|
+
},
|
|
385
|
+
});
|
|
386
|
+
if (res.ok) {
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
389
|
+
throw await toServiceException(res.response);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
//# sourceMappingURL=stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/services/stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { buildUrl, toServiceException } from './_util';
|
|
2
|
+
import { safeStringify } from '../json';
|
|
3
|
+
export class VectorStorageService {
|
|
4
|
+
#adapter;
|
|
5
|
+
#baseUrl;
|
|
6
|
+
constructor(baseUrl, adapter) {
|
|
7
|
+
this.#adapter = adapter;
|
|
8
|
+
this.#baseUrl = baseUrl;
|
|
9
|
+
}
|
|
10
|
+
async upsert(name, ...documents) {
|
|
11
|
+
if (!name || typeof name !== 'string' || name.trim().length === 0) {
|
|
12
|
+
throw new Error('Vector storage name is required and must be a non-empty string');
|
|
13
|
+
}
|
|
14
|
+
if (!documents || documents.length === 0) {
|
|
15
|
+
throw new Error('At least one document is required for upsert');
|
|
16
|
+
}
|
|
17
|
+
for (const doc of documents) {
|
|
18
|
+
if (!doc.key || typeof doc.key !== 'string' || doc.key.trim().length === 0) {
|
|
19
|
+
throw new Error('Each document must have a non-empty key');
|
|
20
|
+
}
|
|
21
|
+
if (!('embeddings' in doc) && !('document' in doc)) {
|
|
22
|
+
throw new Error('Each document must have either embeddings or document text');
|
|
23
|
+
}
|
|
24
|
+
if ('embeddings' in doc && doc.embeddings) {
|
|
25
|
+
if (!Array.isArray(doc.embeddings) || doc.embeddings.length === 0) {
|
|
26
|
+
throw new Error('Embeddings must be a non-empty array of numbers');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if ('document' in doc && doc.document) {
|
|
30
|
+
if (typeof doc.document !== 'string' || doc.document.trim().length === 0) {
|
|
31
|
+
throw new Error('Document must be a non-empty string');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const url = buildUrl(this.#baseUrl, `/vector/2025-03-17/${encodeURIComponent(name)}`);
|
|
36
|
+
const signal = AbortSignal.timeout(30_000);
|
|
37
|
+
const res = await this.#adapter.invoke(url, {
|
|
38
|
+
method: 'PUT',
|
|
39
|
+
body: safeStringify(documents),
|
|
40
|
+
contentType: 'application/json',
|
|
41
|
+
signal,
|
|
42
|
+
telemetry: {
|
|
43
|
+
name: 'agentuity.vector.upsert',
|
|
44
|
+
attributes: {
|
|
45
|
+
name,
|
|
46
|
+
count: String(documents.length),
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
if (res.ok) {
|
|
51
|
+
if (res.data.success) {
|
|
52
|
+
return res.data.data.map((o, index) => ({
|
|
53
|
+
key: documents[index].key,
|
|
54
|
+
id: o.id,
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
if ('message' in res.data) {
|
|
58
|
+
throw new Error(res.data.message);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
throw await toServiceException(res.response);
|
|
62
|
+
}
|
|
63
|
+
async get(name, key) {
|
|
64
|
+
if (!name || typeof name !== 'string' || name.trim().length === 0) {
|
|
65
|
+
throw new Error('Vector storage name is required and must be a non-empty string');
|
|
66
|
+
}
|
|
67
|
+
if (!key || typeof key !== 'string' || key.trim().length === 0) {
|
|
68
|
+
throw new Error('Key is required and must be a non-empty string');
|
|
69
|
+
}
|
|
70
|
+
const url = buildUrl(this.#baseUrl, `/vector/2025-03-17/${encodeURIComponent(name)}/${encodeURIComponent(key)}`);
|
|
71
|
+
const signal = AbortSignal.timeout(10_000);
|
|
72
|
+
const res = await this.#adapter.invoke(url, {
|
|
73
|
+
method: 'GET',
|
|
74
|
+
signal,
|
|
75
|
+
telemetry: {
|
|
76
|
+
name: 'agentuity.vector.get',
|
|
77
|
+
attributes: {
|
|
78
|
+
name,
|
|
79
|
+
key,
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
if (res.response.status === 404) {
|
|
84
|
+
return { exists: false };
|
|
85
|
+
}
|
|
86
|
+
if (res.ok) {
|
|
87
|
+
if (res.data.success) {
|
|
88
|
+
return {
|
|
89
|
+
data: res.data.data,
|
|
90
|
+
exists: true,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
if ('message' in res.data) {
|
|
94
|
+
throw new Error(res.data.message);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
throw await toServiceException(res.response);
|
|
98
|
+
}
|
|
99
|
+
async getMany(name, ...keys) {
|
|
100
|
+
if (!name || typeof name !== 'string' || name.trim().length === 0) {
|
|
101
|
+
throw new Error('Vector storage name is required and must be a non-empty string');
|
|
102
|
+
}
|
|
103
|
+
if (keys.length === 0) {
|
|
104
|
+
return new Map();
|
|
105
|
+
}
|
|
106
|
+
for (const key of keys) {
|
|
107
|
+
if (!key || typeof key !== 'string' || key.trim().length === 0) {
|
|
108
|
+
throw new Error('All keys must be non-empty strings');
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const results = await Promise.all(keys.map((key) => this.get(name, key)));
|
|
112
|
+
const resultMap = new Map();
|
|
113
|
+
results.forEach((result, index) => {
|
|
114
|
+
if (result.exists) {
|
|
115
|
+
resultMap.set(keys[index], result.data);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
return resultMap;
|
|
119
|
+
}
|
|
120
|
+
async search(name, params) {
|
|
121
|
+
if (!name || typeof name !== 'string' || name.trim().length === 0) {
|
|
122
|
+
throw new Error('Vector storage name is required and must be a non-empty string');
|
|
123
|
+
}
|
|
124
|
+
if (!params.query || typeof params.query !== 'string' || params.query.trim().length === 0) {
|
|
125
|
+
throw new Error('Query is required and must be a non-empty string');
|
|
126
|
+
}
|
|
127
|
+
if (params.limit !== undefined) {
|
|
128
|
+
if (typeof params.limit !== 'number' || params.limit <= 0) {
|
|
129
|
+
throw new Error('Limit must be a positive number');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (params.similarity !== undefined) {
|
|
133
|
+
if (typeof params.similarity !== 'number' ||
|
|
134
|
+
params.similarity < 0 ||
|
|
135
|
+
params.similarity > 1) {
|
|
136
|
+
throw new Error('Similarity must be a number between 0.0 and 1.0');
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (params.metadata !== undefined) {
|
|
140
|
+
if (typeof params.metadata !== 'object' || params.metadata === null) {
|
|
141
|
+
throw new Error('Metadata must be a valid object');
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
const url = buildUrl(this.#baseUrl, `/vector/2025-03-17/search/${encodeURIComponent(name)}`);
|
|
145
|
+
const signal = AbortSignal.timeout(30_000);
|
|
146
|
+
const attributes = {
|
|
147
|
+
name,
|
|
148
|
+
query: params.query,
|
|
149
|
+
};
|
|
150
|
+
if (params.limit !== undefined) {
|
|
151
|
+
attributes.limit = String(params.limit);
|
|
152
|
+
}
|
|
153
|
+
if (params.similarity !== undefined) {
|
|
154
|
+
attributes.similarity = String(params.similarity);
|
|
155
|
+
}
|
|
156
|
+
const res = await this.#adapter.invoke(url, {
|
|
157
|
+
method: 'POST',
|
|
158
|
+
body: safeStringify(params),
|
|
159
|
+
contentType: 'application/json',
|
|
160
|
+
signal,
|
|
161
|
+
telemetry: {
|
|
162
|
+
name: 'agentuity.vector.search',
|
|
163
|
+
attributes,
|
|
164
|
+
},
|
|
165
|
+
});
|
|
166
|
+
if (res.response.status === 404) {
|
|
167
|
+
return [];
|
|
168
|
+
}
|
|
169
|
+
if (res.ok) {
|
|
170
|
+
if (res.data.success) {
|
|
171
|
+
return res.data.data;
|
|
172
|
+
}
|
|
173
|
+
if ('message' in res.data) {
|
|
174
|
+
throw new Error(res.data.message);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
throw await toServiceException(res.response);
|
|
178
|
+
}
|
|
179
|
+
async delete(name, ...keys) {
|
|
180
|
+
if (!name || typeof name !== 'string' || name.trim().length === 0) {
|
|
181
|
+
throw new Error('Vector storage name is required and must be a non-empty string');
|
|
182
|
+
}
|
|
183
|
+
if (keys.length === 0) {
|
|
184
|
+
return 0;
|
|
185
|
+
}
|
|
186
|
+
for (const key of keys) {
|
|
187
|
+
if (!key || typeof key !== 'string' || key.trim().length === 0) {
|
|
188
|
+
throw new Error('All keys must be non-empty strings');
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
const signal = AbortSignal.timeout(30_000);
|
|
192
|
+
let url;
|
|
193
|
+
let body;
|
|
194
|
+
if (keys.length === 1) {
|
|
195
|
+
url = buildUrl(this.#baseUrl, `/vector/2025-03-17/${encodeURIComponent(name)}/${encodeURIComponent(keys[0])}`);
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
url = buildUrl(this.#baseUrl, `/vector/2025-03-17/${encodeURIComponent(name)}`);
|
|
199
|
+
body = safeStringify({ keys });
|
|
200
|
+
}
|
|
201
|
+
const res = await this.#adapter.invoke(url, {
|
|
202
|
+
method: 'DELETE',
|
|
203
|
+
...(body && { body, contentType: 'application/json' }),
|
|
204
|
+
signal,
|
|
205
|
+
telemetry: {
|
|
206
|
+
name: 'agentuity.vector.delete',
|
|
207
|
+
attributes: {
|
|
208
|
+
name,
|
|
209
|
+
count: String(keys.length),
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
});
|
|
213
|
+
if (res.ok) {
|
|
214
|
+
if (res.data.success) {
|
|
215
|
+
return res.data.data;
|
|
216
|
+
}
|
|
217
|
+
if ('message' in res.data) {
|
|
218
|
+
throw new Error(res.data.message);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
throw await toServiceException(res.response);
|
|
222
|
+
}
|
|
223
|
+
async exists(name) {
|
|
224
|
+
if (!name || typeof name !== 'string' || name.trim().length === 0) {
|
|
225
|
+
throw new Error('Vector storage name is required and must be a non-empty string');
|
|
226
|
+
}
|
|
227
|
+
try {
|
|
228
|
+
await this.search(name, { query: '_exists_check_', limit: 1 });
|
|
229
|
+
return true;
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
if (error instanceof Error) {
|
|
233
|
+
const statusMatch = error.message.match(/(\d{3})/);
|
|
234
|
+
if (statusMatch && statusMatch[1] === '404') {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
throw error;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=vector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../../src/services/vector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard_schema.js","sourceRoot":"","sources":["../src/standard_schema.ts"],"names":[],"mappings":""}
|