@agentuity/cli 0.0.57 → 0.0.59
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/cmd/build/bundler.d.ts +1 -1
- package/dist/cmd/build/bundler.js +8 -9
- package/dist/cmd/build/bundler.js.map +1 -1
- package/dist/cmd/cloud/agent/get.d.ts +2 -0
- package/dist/cmd/cloud/agent/get.d.ts.map +1 -0
- package/dist/cmd/cloud/agent/get.js +97 -0
- package/dist/cmd/cloud/agent/get.js.map +1 -0
- package/dist/cmd/cloud/agent/index.d.ts +2 -0
- package/dist/cmd/cloud/agent/index.d.ts.map +1 -0
- package/dist/cmd/cloud/agent/index.js +11 -0
- package/dist/cmd/cloud/agent/index.js.map +1 -0
- package/dist/cmd/cloud/agent/list.d.ts +2 -0
- package/dist/cmd/cloud/agent/list.d.ts.map +1 -0
- package/dist/cmd/cloud/agent/list.js +101 -0
- package/dist/cmd/cloud/agent/list.js.map +1 -0
- package/dist/cmd/cloud/agent/schema.d.ts +4 -0
- package/dist/cmd/cloud/agent/schema.d.ts.map +1 -0
- package/dist/cmd/cloud/agent/schema.js +22 -0
- package/dist/cmd/cloud/agent/schema.js.map +1 -0
- package/dist/cmd/cloud/apikey/create.d.ts +2 -0
- package/dist/cmd/cloud/apikey/create.d.ts.map +1 -0
- package/dist/cmd/cloud/apikey/create.js +100 -0
- package/dist/cmd/cloud/apikey/create.js.map +1 -0
- package/dist/cmd/cloud/apikey/delete.d.ts +2 -0
- package/dist/cmd/cloud/apikey/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/apikey/delete.js +55 -0
- package/dist/cmd/cloud/apikey/delete.js.map +1 -0
- package/dist/cmd/cloud/apikey/get.d.ts +2 -0
- package/dist/cmd/cloud/apikey/get.d.ts.map +1 -0
- package/dist/cmd/cloud/apikey/get.js +57 -0
- package/dist/cmd/cloud/apikey/get.js.map +1 -0
- package/dist/cmd/cloud/apikey/index.d.ts.map +1 -0
- package/dist/cmd/cloud/apikey/index.js +13 -0
- package/dist/cmd/cloud/apikey/index.js.map +1 -0
- package/dist/cmd/cloud/apikey/list.d.ts +2 -0
- package/dist/cmd/cloud/apikey/list.d.ts.map +1 -0
- package/dist/cmd/cloud/apikey/list.js +53 -0
- package/dist/cmd/cloud/apikey/list.js.map +1 -0
- package/dist/cmd/cloud/deployment/index.d.ts.map +1 -1
- package/dist/cmd/cloud/deployment/index.js +2 -0
- package/dist/cmd/cloud/deployment/index.js.map +1 -1
- package/dist/cmd/cloud/deployment/logs.d.ts +2 -0
- package/dist/cmd/cloud/deployment/logs.d.ts.map +1 -0
- package/dist/cmd/cloud/deployment/logs.js +70 -0
- package/dist/cmd/cloud/deployment/logs.js.map +1 -0
- package/dist/cmd/cloud/index.d.ts.map +1 -1
- package/dist/cmd/cloud/index.js +8 -2
- package/dist/cmd/cloud/index.js.map +1 -1
- package/dist/cmd/cloud/session/get.js.map +1 -1
- package/dist/cmd/cloud/session/logs.d.ts.map +1 -1
- package/dist/cmd/cloud/session/logs.js +12 -9
- package/dist/cmd/cloud/session/logs.js.map +1 -1
- package/dist/cmd/cloud/stream/delete.d.ts +3 -0
- package/dist/cmd/cloud/stream/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/stream/delete.js +42 -0
- package/dist/cmd/cloud/stream/delete.js.map +1 -0
- package/dist/cmd/cloud/stream/get.d.ts +3 -0
- package/dist/cmd/cloud/stream/get.d.ts.map +1 -0
- package/dist/cmd/cloud/stream/get.js +110 -0
- package/dist/cmd/cloud/stream/get.js.map +1 -0
- package/dist/cmd/cloud/stream/index.d.ts +3 -0
- package/dist/cmd/cloud/stream/index.d.ts.map +1 -0
- package/dist/cmd/cloud/stream/index.js +13 -0
- package/dist/cmd/cloud/stream/index.js.map +1 -0
- package/dist/cmd/cloud/stream/list.d.ts +3 -0
- package/dist/cmd/cloud/stream/list.d.ts.map +1 -0
- package/dist/cmd/cloud/stream/list.js +131 -0
- package/dist/cmd/cloud/stream/list.js.map +1 -0
- package/dist/cmd/cloud/stream/util.d.ts +8 -0
- package/dist/cmd/cloud/stream/util.d.ts.map +1 -0
- package/dist/cmd/cloud/stream/util.js +19 -0
- package/dist/cmd/cloud/stream/util.js.map +1 -0
- package/dist/cmd/cloud/vector/delete.d.ts +3 -0
- package/dist/cmd/cloud/vector/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/vector/delete.js +90 -0
- package/dist/cmd/cloud/vector/delete.js.map +1 -0
- package/dist/cmd/cloud/vector/get.d.ts +3 -0
- package/dist/cmd/cloud/vector/get.d.ts.map +1 -0
- package/dist/cmd/cloud/vector/get.js +80 -0
- package/dist/cmd/cloud/vector/get.js.map +1 -0
- package/dist/cmd/cloud/vector/index.d.ts +3 -0
- package/dist/cmd/cloud/vector/index.d.ts.map +1 -0
- package/dist/cmd/cloud/vector/index.js +14 -0
- package/dist/cmd/cloud/vector/index.js.map +1 -0
- package/dist/cmd/cloud/vector/search.d.ts +3 -0
- package/dist/cmd/cloud/vector/search.d.ts.map +1 -0
- package/dist/cmd/cloud/vector/search.js +136 -0
- package/dist/cmd/cloud/vector/search.js.map +1 -0
- package/dist/cmd/cloud/vector/util.d.ts +8 -0
- package/dist/cmd/cloud/vector/util.d.ts.map +1 -0
- package/dist/cmd/cloud/vector/util.js +18 -0
- package/dist/cmd/cloud/vector/util.js.map +1 -0
- package/dist/cmd/dev/agents.d.ts.map +1 -1
- package/dist/cmd/dev/agents.js +3 -2
- package/dist/cmd/dev/agents.js.map +1 -1
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/index.js +103 -55
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/cmd/index.d.ts.map +1 -1
- package/dist/cmd/index.js +38 -42
- package/dist/cmd/index.js.map +1 -1
- package/dist/schema-parser.d.ts.map +1 -1
- package/dist/schema-parser.js +3 -1
- package/dist/schema-parser.js.map +1 -1
- package/dist/tui.d.ts +10 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +67 -41
- package/dist/tui.js.map +1 -1
- package/dist/utils/date.d.ts +14 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/date.js +51 -0
- package/dist/utils/date.js.map +1 -0
- package/package.json +6 -6
- package/src/cmd/build/bundler.ts +8 -8
- package/src/cmd/cloud/agent/get.ts +105 -0
- package/src/cmd/cloud/agent/index.ts +11 -0
- package/src/cmd/cloud/agent/list.ts +107 -0
- package/src/cmd/cloud/agent/schema.ts +25 -0
- package/src/cmd/cloud/apikey/create.ts +114 -0
- package/src/cmd/cloud/apikey/delete.ts +66 -0
- package/src/cmd/cloud/apikey/get.ts +62 -0
- package/src/cmd/cloud/apikey/index.ts +13 -0
- package/src/cmd/cloud/apikey/list.ts +58 -0
- package/src/cmd/cloud/deployment/index.ts +2 -0
- package/src/cmd/cloud/deployment/logs.ts +75 -0
- package/src/cmd/cloud/index.ts +8 -2
- package/src/cmd/cloud/session/get.ts +5 -5
- package/src/cmd/cloud/session/logs.ts +12 -11
- package/src/cmd/cloud/stream/delete.ts +49 -0
- package/src/cmd/cloud/stream/get.ts +118 -0
- package/src/cmd/cloud/stream/index.ts +14 -0
- package/src/cmd/cloud/stream/list.ts +146 -0
- package/src/cmd/cloud/stream/util.ts +32 -0
- package/src/cmd/cloud/vector/delete.ts +105 -0
- package/src/cmd/cloud/vector/get.ts +94 -0
- package/src/cmd/cloud/vector/index.ts +15 -0
- package/src/cmd/cloud/vector/search.ts +156 -0
- package/src/cmd/cloud/vector/util.ts +28 -0
- package/src/cmd/dev/agents.ts +4 -3
- package/src/cmd/dev/index.ts +114 -59
- package/src/cmd/index.ts +38 -42
- package/src/schema-parser.ts +3 -1
- package/src/tui.ts +80 -48
- package/src/utils/date.ts +57 -0
- package/dist/cmd/cloud/agents/index.d.ts.map +0 -1
- package/dist/cmd/cloud/agents/index.js +0 -133
- package/dist/cmd/cloud/agents/index.js.map +0 -1
- package/src/cmd/cloud/agents/index.ts +0 -148
- /package/dist/cmd/cloud/{agents → apikey}/index.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/stream/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa,sCAMxB,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createCommand } from '../../../types';
|
|
2
|
+
import listSubcommand from './list';
|
|
3
|
+
import getSubcommand from './get';
|
|
4
|
+
import deleteSubcommand from './delete';
|
|
5
|
+
export const streamCommand = createCommand({
|
|
6
|
+
name: 'stream',
|
|
7
|
+
aliases: ['streams'],
|
|
8
|
+
description: 'Manage streams',
|
|
9
|
+
tags: ['slow', 'requires-auth'],
|
|
10
|
+
subcommands: [listSubcommand, getSubcommand, deleteSubcommand],
|
|
11
|
+
});
|
|
12
|
+
export default streamCommand;
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/stream/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,cAAc,MAAM,QAAQ,CAAC;AACpC,OAAO,aAAa,MAAM,OAAO,CAAC;AAClC,OAAO,gBAAgB,MAAM,UAAU,CAAC;AAExC,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;IAC1C,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,WAAW,EAAE,gBAAgB;IAC7B,IAAI,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;IAC/B,WAAW,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,gBAAgB,CAAC;CAC9D,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/stream/list.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,cAAc,sCAoHzB,CAAC;AAEH,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { createCommand } from '../../../types';
|
|
3
|
+
import * as tui from '../../../tui';
|
|
4
|
+
import { createStorageAdapter } from './util';
|
|
5
|
+
import { getCommand } from '../../../command-prefix';
|
|
6
|
+
function formatBytes(bytes) {
|
|
7
|
+
if (bytes === 0)
|
|
8
|
+
return '0 B';
|
|
9
|
+
if (bytes < 1024)
|
|
10
|
+
return `${bytes} B`;
|
|
11
|
+
if (bytes < 1024 * 1024)
|
|
12
|
+
return `${(bytes / 1024).toFixed(2)} KB`;
|
|
13
|
+
if (bytes < 1024 * 1024 * 1024)
|
|
14
|
+
return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;
|
|
15
|
+
return `${(bytes / (1024 * 1024 * 1024)).toFixed(2)} GB`;
|
|
16
|
+
}
|
|
17
|
+
const StreamInfoSchema = z.object({
|
|
18
|
+
id: z.string().describe('Stream ID'),
|
|
19
|
+
name: z.string().describe('Stream name'),
|
|
20
|
+
metadata: z.record(z.string(), z.string()).describe('Stream metadata'),
|
|
21
|
+
url: z.string().describe('Public URL'),
|
|
22
|
+
sizeBytes: z.number().describe('Size in bytes'),
|
|
23
|
+
});
|
|
24
|
+
const ListStreamsResponseSchema = z.object({
|
|
25
|
+
streams: z.array(StreamInfoSchema).describe('List of streams'),
|
|
26
|
+
total: z.number().describe('Total count of matching streams'),
|
|
27
|
+
});
|
|
28
|
+
export const listSubcommand = createCommand({
|
|
29
|
+
name: 'list',
|
|
30
|
+
aliases: ['ls'],
|
|
31
|
+
description: 'List recent streams with optional filtering',
|
|
32
|
+
tags: ['read-only', 'slow', 'requires-auth'],
|
|
33
|
+
requires: { auth: true, project: true },
|
|
34
|
+
idempotent: true,
|
|
35
|
+
examples: [
|
|
36
|
+
`${getCommand('stream list')} - List all streams`,
|
|
37
|
+
`${getCommand('stream ls --size 50')} - List 50 most recent streams`,
|
|
38
|
+
`${getCommand('stream list --name agent-logs')} - Filter by name`,
|
|
39
|
+
`${getCommand('stream list --metadata type=export')} - Filter by metadata`,
|
|
40
|
+
`${getCommand('stream ls --json')} - Output as JSON`,
|
|
41
|
+
],
|
|
42
|
+
schema: {
|
|
43
|
+
options: z.object({
|
|
44
|
+
size: z.number().optional().describe('maximum number of streams to return (default: 100)'),
|
|
45
|
+
offset: z.number().optional().describe('number of streams to skip for pagination'),
|
|
46
|
+
name: z.string().optional().describe('filter by stream name'),
|
|
47
|
+
metadata: z
|
|
48
|
+
.string()
|
|
49
|
+
.optional()
|
|
50
|
+
.describe('filter by metadata (format: key=value or key1=value1,key2=value2)'),
|
|
51
|
+
}),
|
|
52
|
+
response: ListStreamsResponseSchema,
|
|
53
|
+
},
|
|
54
|
+
async handler(ctx) {
|
|
55
|
+
const { opts, options } = ctx;
|
|
56
|
+
const storage = await createStorageAdapter(ctx);
|
|
57
|
+
// Parse metadata filter if provided
|
|
58
|
+
let metadataFilter;
|
|
59
|
+
if (opts.metadata) {
|
|
60
|
+
const validPairs = {};
|
|
61
|
+
const malformed = [];
|
|
62
|
+
const pairs = opts.metadata.split(',');
|
|
63
|
+
for (const pair of pairs) {
|
|
64
|
+
const trimmedPair = pair.trim();
|
|
65
|
+
if (!trimmedPair)
|
|
66
|
+
continue;
|
|
67
|
+
const firstEqualIdx = trimmedPair.indexOf('=');
|
|
68
|
+
if (firstEqualIdx === -1) {
|
|
69
|
+
malformed.push(trimmedPair);
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
const key = trimmedPair.substring(0, firstEqualIdx).trim();
|
|
73
|
+
const value = trimmedPair.substring(firstEqualIdx + 1).trim();
|
|
74
|
+
if (!key || !value) {
|
|
75
|
+
malformed.push(trimmedPair);
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
validPairs[key] = value;
|
|
79
|
+
}
|
|
80
|
+
if (malformed.length > 0) {
|
|
81
|
+
ctx.logger.warn(`Skipping malformed metadata pairs: ${malformed.join(', ')}`);
|
|
82
|
+
}
|
|
83
|
+
if (Object.keys(validPairs).length > 0) {
|
|
84
|
+
metadataFilter = validPairs;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
const result = await storage.list({
|
|
88
|
+
limit: opts.size,
|
|
89
|
+
offset: opts.offset,
|
|
90
|
+
name: opts.name,
|
|
91
|
+
metadata: metadataFilter,
|
|
92
|
+
});
|
|
93
|
+
if (options.json) {
|
|
94
|
+
console.log(JSON.stringify(result, null, 2));
|
|
95
|
+
return {
|
|
96
|
+
streams: result.streams,
|
|
97
|
+
total: result.total,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
if (result.streams.length === 0) {
|
|
101
|
+
tui.info('No streams found');
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
const tableData = result.streams.map((stream) => {
|
|
105
|
+
const sizeBytes = stream.sizeBytes ?? 0;
|
|
106
|
+
const metadataStr = Object.keys(stream.metadata).length > 0 ? JSON.stringify(stream.metadata) : '-';
|
|
107
|
+
return {
|
|
108
|
+
Name: stream.name,
|
|
109
|
+
ID: stream.id,
|
|
110
|
+
Size: formatBytes(sizeBytes),
|
|
111
|
+
Metadata: metadataStr.length > 40 ? metadataStr.substring(0, 37) + '...' : metadataStr,
|
|
112
|
+
URL: tui.link(stream.url),
|
|
113
|
+
};
|
|
114
|
+
});
|
|
115
|
+
tui.table(tableData, [
|
|
116
|
+
{ name: 'Name', alignment: 'left' },
|
|
117
|
+
{ name: 'ID', alignment: 'left' },
|
|
118
|
+
{ name: 'Size', alignment: 'right' },
|
|
119
|
+
{ name: 'Metadata', alignment: 'left' },
|
|
120
|
+
{ name: 'URL', alignment: 'left' },
|
|
121
|
+
]);
|
|
122
|
+
tui.info(`Total: ${result.total} stream(s)`);
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
streams: result.streams,
|
|
126
|
+
total: result.total,
|
|
127
|
+
};
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
export default listSubcommand;
|
|
131
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/stream/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { StreamStorageService, Logger } from '@agentuity/core';
|
|
2
|
+
import type { Config } from '../../../types';
|
|
3
|
+
export declare function createStorageAdapter(ctx: {
|
|
4
|
+
logger: Logger;
|
|
5
|
+
projectDir: string;
|
|
6
|
+
config: Config | null;
|
|
7
|
+
}): Promise<StreamStorageService>;
|
|
8
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/stream/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAI/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG7C,wBAAsB,oBAAoB,CAAC,GAAG,EAAE;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,iCAoBA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { StreamStorageService } from '@agentuity/core';
|
|
2
|
+
import { createServerFetchAdapter } from '@agentuity/server';
|
|
3
|
+
import { loadProjectSDKKey } from '../../../config';
|
|
4
|
+
import { ErrorCode } from '../../../errors';
|
|
5
|
+
import * as tui from '../../../tui';
|
|
6
|
+
export async function createStorageAdapter(ctx) {
|
|
7
|
+
const sdkKey = await loadProjectSDKKey(ctx.projectDir);
|
|
8
|
+
if (!sdkKey) {
|
|
9
|
+
tui.fatal(`Couldn't find the AGENTUITY_SDK_KEY in ${ctx.projectDir} .env file`, ErrorCode.CONFIG_NOT_FOUND);
|
|
10
|
+
}
|
|
11
|
+
const adapter = createServerFetchAdapter({
|
|
12
|
+
headers: {
|
|
13
|
+
Authorization: `Bearer ${sdkKey}`,
|
|
14
|
+
},
|
|
15
|
+
}, ctx.logger);
|
|
16
|
+
const baseUrl = ctx.config?.overrides?.stream_url ?? 'https://stream.agentuity.cloud';
|
|
17
|
+
return new StreamStorageService(baseUrl, adapter);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/stream/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAU,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAI1C;IACA,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CACR,0CAA0C,GAAG,CAAC,UAAU,YAAY,EACpE,SAAS,CAAC,gBAAgB,CAC1B,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,wBAAwB,CACvC;QACC,OAAO,EAAE;YACR,aAAa,EAAE,UAAU,MAAM,EAAE;SACjC;KACD,EACD,GAAG,CAAC,MAAM,CACV,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,IAAI,gCAAgC,CAAC;IACtF,OAAO,IAAI,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/vector/delete.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,gBAAgB,sCAsF3B,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { createCommand } from '../../../types';
|
|
3
|
+
import { ErrorCode } from '../../../errors';
|
|
4
|
+
import * as tui from '../../../tui';
|
|
5
|
+
import { createStorageAdapter } from './util';
|
|
6
|
+
import { getCommand } from '../../../command-prefix';
|
|
7
|
+
const VectorDeleteResponseSchema = z.object({
|
|
8
|
+
success: z.boolean().describe('Whether the operation succeeded'),
|
|
9
|
+
namespace: z.string().describe('Namespace name'),
|
|
10
|
+
keys: z.array(z.string()).describe('Keys that were deleted'),
|
|
11
|
+
deleted: z.number().describe('Number of vectors deleted'),
|
|
12
|
+
durationMs: z.number().describe('Operation duration in milliseconds'),
|
|
13
|
+
message: z.string().optional().describe('Confirmation message'),
|
|
14
|
+
});
|
|
15
|
+
export const deleteSubcommand = createCommand({
|
|
16
|
+
name: 'delete',
|
|
17
|
+
aliases: ['del', 'rm'],
|
|
18
|
+
description: 'Delete one or more vectors by key',
|
|
19
|
+
tags: ['destructive', 'deletes-resource', 'slow', 'requires-auth'],
|
|
20
|
+
requires: { auth: true, project: true },
|
|
21
|
+
idempotent: true,
|
|
22
|
+
examples: [
|
|
23
|
+
`${getCommand('vector delete products chair-001')} - Delete a single vector (interactive)`,
|
|
24
|
+
`${getCommand('vector rm knowledge-base doc-123 doc-456 --confirm')} - Delete multiple vectors without confirmation`,
|
|
25
|
+
`${getCommand('vector del embeddings old-profile-1 old-profile-2 --confirm')} - Bulk delete without confirmation`,
|
|
26
|
+
],
|
|
27
|
+
schema: {
|
|
28
|
+
args: z.object({
|
|
29
|
+
namespace: z.string().min(1).describe('the vector storage namespace'),
|
|
30
|
+
keys: z.array(z.string().min(1)).min(1).describe('one or more keys to delete'),
|
|
31
|
+
}),
|
|
32
|
+
options: z.object({
|
|
33
|
+
confirm: z
|
|
34
|
+
.boolean()
|
|
35
|
+
.optional()
|
|
36
|
+
.default(false)
|
|
37
|
+
.describe('if true will not prompt for confirmation'),
|
|
38
|
+
}),
|
|
39
|
+
response: VectorDeleteResponseSchema,
|
|
40
|
+
},
|
|
41
|
+
async handler(ctx) {
|
|
42
|
+
const { args, options, opts } = ctx;
|
|
43
|
+
if (!opts.confirm) {
|
|
44
|
+
if (!process.stdin.isTTY) {
|
|
45
|
+
tui.fatal('No TTY and --confirm is not set. Refusing to delete', ErrorCode.VALIDATION_FAILED);
|
|
46
|
+
}
|
|
47
|
+
const keyList = args.keys.length > 3 ? `${args.keys.slice(0, 3).join(', ')}...` : args.keys.join(', ');
|
|
48
|
+
tui.warning(`This will delete ${args.keys.length} vector(s) from ${tui.bold(args.namespace)}: ${keyList}`);
|
|
49
|
+
const confirm = await new Promise((resolve) => {
|
|
50
|
+
process.stdout.write('Are you sure? (yes/no): ');
|
|
51
|
+
process.stdin.once('data', (data) => {
|
|
52
|
+
const answer = data.toString().trim().toLowerCase();
|
|
53
|
+
resolve(answer === 'yes' || answer === 'y');
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
if (!confirm) {
|
|
57
|
+
tui.info('Cancelled');
|
|
58
|
+
return {
|
|
59
|
+
success: false,
|
|
60
|
+
namespace: args.namespace,
|
|
61
|
+
keys: args.keys,
|
|
62
|
+
deleted: 0,
|
|
63
|
+
durationMs: 0,
|
|
64
|
+
message: 'Cancelled',
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const storage = await createStorageAdapter(ctx);
|
|
69
|
+
const started = Date.now();
|
|
70
|
+
const deleted = await storage.delete(args.namespace, ...args.keys);
|
|
71
|
+
const durationMs = Date.now() - started;
|
|
72
|
+
if (!options.json) {
|
|
73
|
+
if (deleted > 0) {
|
|
74
|
+
tui.success(`Deleted ${deleted} vector(s) from ${tui.bold(args.namespace)} (${durationMs}ms)`);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
tui.warning(`No vectors were deleted from ${tui.bold(args.namespace)} (keys may not exist)`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
success: true,
|
|
82
|
+
namespace: args.namespace,
|
|
83
|
+
keys: args.keys,
|
|
84
|
+
deleted,
|
|
85
|
+
durationMs,
|
|
86
|
+
};
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
export default deleteSubcommand;
|
|
90
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/vector/delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/vector/get.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,aAAa,sCA4ExB,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { createCommand } from '../../../types';
|
|
3
|
+
import * as tui from '../../../tui';
|
|
4
|
+
import { createStorageAdapter } from './util';
|
|
5
|
+
import { getCommand } from '../../../command-prefix';
|
|
6
|
+
const VectorGetResponseSchema = z.object({
|
|
7
|
+
exists: z.boolean().describe('Whether the vector exists'),
|
|
8
|
+
key: z.string().optional().describe('Vector key'),
|
|
9
|
+
id: z.string().optional().describe('Vector ID'),
|
|
10
|
+
metadata: z.record(z.string(), z.unknown()).optional().describe('Vector metadata'),
|
|
11
|
+
document: z.string().optional().describe('Original document text'),
|
|
12
|
+
similarity: z.number().optional().describe('Similarity score'),
|
|
13
|
+
});
|
|
14
|
+
export const getSubcommand = createCommand({
|
|
15
|
+
name: 'get',
|
|
16
|
+
description: 'Get a specific vector entry by key',
|
|
17
|
+
tags: ['read-only', 'fast', 'requires-auth'],
|
|
18
|
+
requires: { auth: true, project: true },
|
|
19
|
+
idempotent: true,
|
|
20
|
+
examples: [
|
|
21
|
+
`${getCommand('vector get products chair-001')} - Get a specific product vector`,
|
|
22
|
+
`${getCommand('vector get knowledge-base doc-123')} - Get a document from knowledge base`,
|
|
23
|
+
`${getCommand('vector get embeddings user-profile-456')} - Get user profile embedding`,
|
|
24
|
+
],
|
|
25
|
+
schema: {
|
|
26
|
+
args: z.object({
|
|
27
|
+
namespace: z.string().min(1).describe('the vector storage namespace'),
|
|
28
|
+
key: z.string().min(1).describe('the key of the vector to retrieve'),
|
|
29
|
+
}),
|
|
30
|
+
response: VectorGetResponseSchema,
|
|
31
|
+
},
|
|
32
|
+
async handler(ctx) {
|
|
33
|
+
const { args, options } = ctx;
|
|
34
|
+
const storage = await createStorageAdapter(ctx);
|
|
35
|
+
const started = Date.now();
|
|
36
|
+
const result = await storage.get(args.namespace, args.key);
|
|
37
|
+
const durationMs = Date.now() - started;
|
|
38
|
+
if (!options.json) {
|
|
39
|
+
if (result.exists) {
|
|
40
|
+
tui.success(`Found vector "${tui.bold(args.key)}" in ${tui.bold(args.namespace)} (${durationMs}ms)`);
|
|
41
|
+
const data = result.data;
|
|
42
|
+
tui.info(` ID: ${data.id}`);
|
|
43
|
+
tui.info(` Key: ${data.key}`);
|
|
44
|
+
if (data.similarity !== undefined) {
|
|
45
|
+
tui.info(` Similarity: ${(data.similarity * 100).toFixed(1)}%`);
|
|
46
|
+
}
|
|
47
|
+
if (data.document) {
|
|
48
|
+
const docPreview = data.document.length > 200
|
|
49
|
+
? data.document.substring(0, 197) + '...'
|
|
50
|
+
: data.document;
|
|
51
|
+
tui.info(` Document: ${docPreview}`);
|
|
52
|
+
}
|
|
53
|
+
if (data.metadata && Object.keys(data.metadata).length > 0) {
|
|
54
|
+
tui.info(` Metadata: ${JSON.stringify(data.metadata, null, 2)}`);
|
|
55
|
+
}
|
|
56
|
+
if (data.embeddings) {
|
|
57
|
+
tui.info(` Embeddings: [${data.embeddings.length} dimensions]`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
tui.warning(`Vector "${tui.bold(args.key)}" not found in ${tui.bold(args.namespace)}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (result.exists) {
|
|
65
|
+
return {
|
|
66
|
+
exists: true,
|
|
67
|
+
key: result.data.key,
|
|
68
|
+
id: result.data.id,
|
|
69
|
+
metadata: result.data.metadata,
|
|
70
|
+
document: result.data.document,
|
|
71
|
+
similarity: result.data.similarity,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
exists: false,
|
|
76
|
+
};
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
export default getSubcommand;
|
|
80
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/vector/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/vector/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa,sCAOxB,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createCommand } from '../../../types';
|
|
2
|
+
import { deleteSubcommand } from './delete';
|
|
3
|
+
import { getSubcommand } from './get';
|
|
4
|
+
import { searchSubcommand } from './search';
|
|
5
|
+
export const vectorCommand = createCommand({
|
|
6
|
+
name: 'vector',
|
|
7
|
+
aliases: ['vec'],
|
|
8
|
+
description: 'Manage vector storage for your projects',
|
|
9
|
+
tags: ['requires-auth', 'destructive', 'deletes-resource', 'slow'],
|
|
10
|
+
subcommands: [searchSubcommand, getSubcommand, deleteSubcommand],
|
|
11
|
+
requires: { auth: true, project: true },
|
|
12
|
+
});
|
|
13
|
+
export default vectorCommand;
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/vector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;IAC1C,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,WAAW,EAAE,yCAAyC;IACtD,IAAI,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,CAAC;IAClE,WAAW,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,CAAC;IAChE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;CACvC,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/vector/search.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,gBAAgB,sCAqI3B,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { createCommand } from '../../../types';
|
|
3
|
+
import * as tui from '../../../tui';
|
|
4
|
+
import { createStorageAdapter } from './util';
|
|
5
|
+
import { getCommand } from '../../../command-prefix';
|
|
6
|
+
const VectorSearchResultSchema = z.object({
|
|
7
|
+
id: z.string().describe('Vector ID'),
|
|
8
|
+
key: z.string().describe('Vector key'),
|
|
9
|
+
similarity: z.number().describe('Similarity score (0-1)'),
|
|
10
|
+
metadata: z.record(z.string(), z.unknown()).optional().describe('Vector metadata'),
|
|
11
|
+
});
|
|
12
|
+
const VectorSearchResponseSchema = z.object({
|
|
13
|
+
namespace: z.string().describe('Namespace name'),
|
|
14
|
+
query: z.string().describe('Search query used'),
|
|
15
|
+
results: z.array(VectorSearchResultSchema).describe('Search results'),
|
|
16
|
+
count: z.number().describe('Number of results found'),
|
|
17
|
+
});
|
|
18
|
+
export const searchSubcommand = createCommand({
|
|
19
|
+
name: 'search',
|
|
20
|
+
aliases: ['list', 'ls'],
|
|
21
|
+
description: 'Search for vectors using semantic similarity',
|
|
22
|
+
tags: ['read-only', 'slow', 'requires-auth'],
|
|
23
|
+
requires: { auth: true, project: true },
|
|
24
|
+
idempotent: true,
|
|
25
|
+
examples: [
|
|
26
|
+
`${getCommand('vector search products "comfortable office chair"')} - Search for similar products`,
|
|
27
|
+
`${getCommand('vector list knowledge-base "machine learning"')} - Search knowledge base`,
|
|
28
|
+
`${getCommand('vector search docs "API documentation" --limit 5')} - Limit results`,
|
|
29
|
+
`${getCommand('vector search products "ergonomic" --similarity 0.8')} - Set minimum similarity`,
|
|
30
|
+
`${getCommand('vector ls embeddings "neural networks" --metadata category=ai')} - Filter by metadata`,
|
|
31
|
+
],
|
|
32
|
+
schema: {
|
|
33
|
+
args: z.object({
|
|
34
|
+
namespace: z.string().min(1).describe('the vector storage namespace'),
|
|
35
|
+
query: z.string().min(1).describe('the search query text'),
|
|
36
|
+
}),
|
|
37
|
+
options: z.object({
|
|
38
|
+
limit: z.number().optional().describe('maximum number of results to return (default: 10)'),
|
|
39
|
+
similarity: z
|
|
40
|
+
.number()
|
|
41
|
+
.min(0)
|
|
42
|
+
.max(1)
|
|
43
|
+
.optional()
|
|
44
|
+
.describe('minimum similarity threshold (0.0-1.0)'),
|
|
45
|
+
metadata: z
|
|
46
|
+
.string()
|
|
47
|
+
.optional()
|
|
48
|
+
.describe('filter by metadata (format: key=value or key1=value1,key2=value2)'),
|
|
49
|
+
}),
|
|
50
|
+
response: VectorSearchResponseSchema,
|
|
51
|
+
},
|
|
52
|
+
async handler(ctx) {
|
|
53
|
+
const { args, opts, options } = ctx;
|
|
54
|
+
const storage = await createStorageAdapter(ctx);
|
|
55
|
+
const started = Date.now();
|
|
56
|
+
// Parse metadata filter if provided
|
|
57
|
+
let metadataFilter;
|
|
58
|
+
if (opts.metadata) {
|
|
59
|
+
const validPairs = {};
|
|
60
|
+
const malformed = [];
|
|
61
|
+
const pairs = opts.metadata.split(',');
|
|
62
|
+
for (const pair of pairs) {
|
|
63
|
+
const trimmedPair = pair.trim();
|
|
64
|
+
if (!trimmedPair)
|
|
65
|
+
continue;
|
|
66
|
+
const firstEqualIdx = trimmedPair.indexOf('=');
|
|
67
|
+
if (firstEqualIdx === -1) {
|
|
68
|
+
malformed.push(trimmedPair);
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const key = trimmedPair.substring(0, firstEqualIdx).trim();
|
|
72
|
+
const value = trimmedPair.substring(firstEqualIdx + 1).trim();
|
|
73
|
+
if (!key || !value) {
|
|
74
|
+
malformed.push(trimmedPair);
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
// Try to parse as JSON for complex values, otherwise use as string
|
|
78
|
+
try {
|
|
79
|
+
validPairs[key] = JSON.parse(value);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
validPairs[key] = value;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (malformed.length > 0) {
|
|
86
|
+
ctx.logger.warn(`Skipping malformed metadata pairs: ${malformed.join(', ')}`);
|
|
87
|
+
}
|
|
88
|
+
if (Object.keys(validPairs).length > 0) {
|
|
89
|
+
metadataFilter = validPairs;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const results = await storage.search(args.namespace, {
|
|
93
|
+
query: args.query,
|
|
94
|
+
limit: opts.limit,
|
|
95
|
+
similarity: opts.similarity,
|
|
96
|
+
metadata: metadataFilter,
|
|
97
|
+
});
|
|
98
|
+
const durationMs = Date.now() - started;
|
|
99
|
+
if (!options.json) {
|
|
100
|
+
if (results.length === 0) {
|
|
101
|
+
tui.info(`No vectors found matching "${tui.bold(args.query)}" in ${tui.bold(args.namespace)}`);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
tui.info(`Found ${results.length} result(s) in ${tui.bold(args.namespace)} (${durationMs}ms):`);
|
|
105
|
+
const tableData = results.map((result) => {
|
|
106
|
+
const metadataStr = result.metadata ? JSON.stringify(result.metadata) : '-';
|
|
107
|
+
return {
|
|
108
|
+
Key: result.key,
|
|
109
|
+
ID: result.id,
|
|
110
|
+
Similarity: `${(result.similarity * 100).toFixed(1)}%`,
|
|
111
|
+
Metadata: metadataStr.length > 50 ? metadataStr.substring(0, 47) + '...' : metadataStr,
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
tui.table(tableData, [
|
|
115
|
+
{ name: 'Key', alignment: 'left' },
|
|
116
|
+
{ name: 'ID', alignment: 'left' },
|
|
117
|
+
{ name: 'Similarity', alignment: 'right' },
|
|
118
|
+
{ name: 'Metadata', alignment: 'left' },
|
|
119
|
+
]);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return {
|
|
123
|
+
namespace: args.namespace,
|
|
124
|
+
query: args.query,
|
|
125
|
+
results: results.map((r) => ({
|
|
126
|
+
id: r.id,
|
|
127
|
+
key: r.key,
|
|
128
|
+
similarity: r.similarity,
|
|
129
|
+
metadata: r.metadata,
|
|
130
|
+
})),
|
|
131
|
+
count: results.length,
|
|
132
|
+
};
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
export default searchSubcommand;
|
|
136
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/vector/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Logger, VectorStorageService } from '@agentuity/core';
|
|
2
|
+
import type { Config } from '../../../types';
|
|
3
|
+
export declare function createStorageAdapter(ctx: {
|
|
4
|
+
logger: Logger;
|
|
5
|
+
projectDir: string;
|
|
6
|
+
config: Config | null;
|
|
7
|
+
}): Promise<VectorStorageService>;
|
|
8
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/vector/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG7C,wBAAsB,oBAAoB,CAAC,GAAG,EAAE;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,iCAiBA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { VectorStorageService } from '@agentuity/core';
|
|
2
|
+
import { createServerFetchAdapter } from '@agentuity/server';
|
|
3
|
+
import { loadProjectSDKKey } from '../../../config';
|
|
4
|
+
import * as tui from '../../../tui';
|
|
5
|
+
export async function createStorageAdapter(ctx) {
|
|
6
|
+
const sdkKey = await loadProjectSDKKey(ctx.projectDir);
|
|
7
|
+
if (!sdkKey) {
|
|
8
|
+
tui.fatal(`Couldn't find the AGENTUITY_SDK_KEY in ${ctx.projectDir} .env file`);
|
|
9
|
+
}
|
|
10
|
+
const adapter = createServerFetchAdapter({
|
|
11
|
+
headers: {
|
|
12
|
+
Authorization: `Bearer ${sdkKey}`,
|
|
13
|
+
},
|
|
14
|
+
}, ctx.logger);
|
|
15
|
+
const baseUrl = ctx.config?.overrides?.catalyst_url ?? 'https://catalyst.agentuity.cloud';
|
|
16
|
+
return new VectorStorageService(baseUrl, adapter);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=util.js.map
|