@vertesia/client 0.56.0 → 0.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/store/FilesApi.js +29 -19
- package/lib/cjs/store/FilesApi.js.map +1 -1
- package/lib/cjs/store/ObjectsApi.js +22 -20
- package/lib/cjs/store/ObjectsApi.js.map +1 -1
- package/lib/cjs/store/WorkflowsApi.js +82 -16
- package/lib/cjs/store/WorkflowsApi.js.map +1 -1
- package/lib/esm/store/FilesApi.js +29 -19
- package/lib/esm/store/FilesApi.js.map +1 -1
- package/lib/esm/store/ObjectsApi.js +22 -20
- package/lib/esm/store/ObjectsApi.js.map +1 -1
- package/lib/esm/store/WorkflowsApi.js +82 -16
- package/lib/esm/store/WorkflowsApi.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/AccountApi.d.ts +1 -0
- package/lib/types/AccountsApi.d.ts +1 -0
- package/lib/types/AnalyticsApi.d.ts +1 -0
- package/lib/types/ApiKeysApi.d.ts +1 -0
- package/lib/types/CommandsApi.d.ts +1 -0
- package/lib/types/EnvironmentsApi.d.ts +1 -0
- package/lib/types/IamApi.d.ts +1 -0
- package/lib/types/InteractionBase.d.ts +1 -0
- package/lib/types/InteractionsApi.d.ts +1 -0
- package/lib/types/PluginsApi.d.ts +1 -0
- package/lib/types/ProjectsApi.d.ts +1 -0
- package/lib/types/PromptsApi.d.ts +1 -0
- package/lib/types/RefsApi.d.ts +1 -0
- package/lib/types/RunsApi.d.ts +1 -0
- package/lib/types/StreamSource.d.ts +1 -0
- package/lib/types/TrainingApi.d.ts +1 -0
- package/lib/types/UsersApi.d.ts +1 -0
- package/lib/types/client.d.ts +1 -0
- package/lib/types/execute.d.ts +1 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/nodejs/NodeStreamSource.d.ts +1 -0
- package/lib/types/nodejs/index.d.ts +1 -0
- package/lib/types/store/AgentsApi.d.ts +1 -0
- package/lib/types/store/AnalyzeDocApi.d.ts +1 -0
- package/lib/types/store/CollectionsApi.d.ts +1 -0
- package/lib/types/store/CommandsApi.d.ts +1 -0
- package/lib/types/store/EmbeddingsApi.d.ts +1 -0
- package/lib/types/store/FilesApi.d.ts +2 -0
- package/lib/types/store/FilesApi.d.ts.map +1 -1
- package/lib/types/store/ObjectsApi.d.ts +2 -7
- package/lib/types/store/ObjectsApi.d.ts.map +1 -1
- package/lib/types/store/TypesApi.d.ts +1 -0
- package/lib/types/store/WorkflowsApi.d.ts +1 -0
- package/lib/types/store/WorkflowsApi.d.ts.map +1 -1
- package/lib/types/store/client.d.ts +1 -0
- package/lib/types/store/errors.d.ts +1 -0
- package/lib/types/store/index.d.ts +1 -0
- package/lib/vertesia-client.js +1 -1
- package/lib/vertesia-client.js.map +1 -1
- package/package.json +4 -4
- package/src/store/FilesApi.ts +83 -55
- package/src/store/ObjectsApi.ts +326 -313
- package/src/store/WorkflowsApi.ts +91 -17
|
@@ -34,14 +34,14 @@ export class ObjectsApi extends ApiTopic {
|
|
|
34
34
|
const offset = payload.offset || 0;
|
|
35
35
|
const query = payload.query || {};
|
|
36
36
|
// Add revision filtering options
|
|
37
|
-
const showAllRevisions = payload.
|
|
37
|
+
const showAllRevisions = payload.all_revisions === true;
|
|
38
38
|
const revisionRoot = payload.from_root;
|
|
39
39
|
return this.get("/", {
|
|
40
40
|
query: {
|
|
41
41
|
limit,
|
|
42
42
|
offset,
|
|
43
43
|
...query,
|
|
44
|
-
|
|
44
|
+
all_revisions: showAllRevisions ? "true" : undefined,
|
|
45
45
|
from_root: revisionRoot,
|
|
46
46
|
},
|
|
47
47
|
});
|
|
@@ -90,24 +90,23 @@ export class ObjectsApi extends ApiTopic {
|
|
|
90
90
|
name: source.name,
|
|
91
91
|
mime_type: source.type,
|
|
92
92
|
});
|
|
93
|
-
console.log(`Uploading content to ${url}`, { id, mime_type, isStream, source });
|
|
94
93
|
// upload the file content to the signed URL
|
|
95
94
|
/*const res = await this.fetch(url, {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
95
|
+
method: 'PUT',
|
|
96
|
+
//@ts-ignore: duplex is not in the types. See https://github.com/node-fetch/node-fetch/issues/1769
|
|
97
|
+
duplex: isStream ? "half" : undefined,
|
|
98
|
+
body: isStream ? source.stream : source,
|
|
99
|
+
headers: {
|
|
100
|
+
'Content-Type': mime_type || 'application/octet-stream'
|
|
101
|
+
}
|
|
102
|
+
}).then((res: Response) => {
|
|
103
|
+
if (res.ok) {
|
|
104
|
+
return res;
|
|
105
|
+
} else {
|
|
106
|
+
console.log(res);
|
|
107
|
+
throw new Error(`Failed to upload file: ${res.statusText}`);
|
|
108
|
+
}
|
|
109
|
+
});*/
|
|
111
110
|
const res = await fetch(url, {
|
|
112
111
|
method: "PUT",
|
|
113
112
|
body: isStream ? source.stream : source,
|
|
@@ -146,7 +145,8 @@ export class ObjectsApi extends ApiTopic {
|
|
|
146
145
|
const createPayload = {
|
|
147
146
|
...payload,
|
|
148
147
|
};
|
|
149
|
-
if (payload.content instanceof StreamSource ||
|
|
148
|
+
if (payload.content instanceof StreamSource ||
|
|
149
|
+
payload.content instanceof File) {
|
|
150
150
|
createPayload.content = await this.upload(payload.content);
|
|
151
151
|
}
|
|
152
152
|
return await this.post("/", {
|
|
@@ -193,7 +193,8 @@ export class ObjectsApi extends ApiTopic {
|
|
|
193
193
|
...payload,
|
|
194
194
|
};
|
|
195
195
|
// Handle file upload if content is provided as File or StreamSource
|
|
196
|
-
if (payload.content instanceof StreamSource ||
|
|
196
|
+
if (payload.content instanceof StreamSource ||
|
|
197
|
+
payload.content instanceof File) {
|
|
197
198
|
updatePayload.content = await this.upload(payload.content);
|
|
198
199
|
}
|
|
199
200
|
if (options?.createRevision) {
|
|
@@ -233,6 +234,7 @@ export class ObjectsApi extends ApiTopic {
|
|
|
233
234
|
const query = {
|
|
234
235
|
max_hw: options.max_hw,
|
|
235
236
|
generate_if_missing: options.generate_if_missing,
|
|
237
|
+
as_signed_url: options.sign_url,
|
|
236
238
|
};
|
|
237
239
|
return this.get(`/${documentId}/renditions/${options.format}`, { query });
|
|
238
240
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectsApi.js","sourceRoot":"","sources":["../../../src/store/ObjectsApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"ObjectsApi.js","sourceRoot":"","sources":["../../../src/store/ObjectsApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,13 +43,40 @@ export class WorkflowsApi extends ApiTopic {
|
|
|
43
43
|
}
|
|
44
44
|
async streamMessages(runId, onMessage, since) {
|
|
45
45
|
return new Promise((resolve, reject) => {
|
|
46
|
-
|
|
46
|
+
let reconnectAttempts = 0;
|
|
47
|
+
let lastMessageTimestamp = since || 0;
|
|
48
|
+
let isClosed = false;
|
|
49
|
+
let currentSse = null;
|
|
50
|
+
let interval = null;
|
|
51
|
+
const maxReconnectAttempts = 10;
|
|
52
|
+
const baseDelay = 1000; // 1 second base delay
|
|
53
|
+
const maxDelay = 30000; // 30 seconds max delay
|
|
54
|
+
const calculateBackoffDelay = (attempts) => {
|
|
55
|
+
const exponentialDelay = Math.min(baseDelay * Math.pow(2, attempts), maxDelay);
|
|
56
|
+
// Add jitter to prevent thundering herd
|
|
57
|
+
const jitter = Math.random() * 0.1 * exponentialDelay;
|
|
58
|
+
return exponentialDelay + jitter;
|
|
59
|
+
};
|
|
60
|
+
const cleanup = () => {
|
|
61
|
+
if (interval) {
|
|
62
|
+
clearInterval(interval);
|
|
63
|
+
interval = null;
|
|
64
|
+
}
|
|
65
|
+
if (currentSse) {
|
|
66
|
+
currentSse.close();
|
|
67
|
+
currentSse = null;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const setupStream = async (isReconnect = false) => {
|
|
71
|
+
if (isClosed)
|
|
72
|
+
return;
|
|
47
73
|
try {
|
|
48
74
|
const EventSourceImpl = await EventSourceProvider();
|
|
49
75
|
const client = this.client;
|
|
50
76
|
const streamUrl = new URL(client.workflows.baseUrl + "/runs/" + runId + "/stream");
|
|
51
|
-
|
|
52
|
-
|
|
77
|
+
// Use the timestamp of the last received message for reconnection
|
|
78
|
+
if (lastMessageTimestamp > 0) {
|
|
79
|
+
streamUrl.searchParams.set("since", lastMessageTimestamp.toString());
|
|
53
80
|
}
|
|
54
81
|
const bearerToken = client._auth ? await client._auth() : undefined;
|
|
55
82
|
if (!bearerToken) {
|
|
@@ -58,13 +85,19 @@ export class WorkflowsApi extends ApiTopic {
|
|
|
58
85
|
}
|
|
59
86
|
const token = bearerToken.split(" ")[1];
|
|
60
87
|
streamUrl.searchParams.set("access_token", token);
|
|
88
|
+
if (isReconnect) {
|
|
89
|
+
console.log(`Reconnecting to SSE stream for run ${runId} (attempt ${reconnectAttempts + 1}/${maxReconnectAttempts})`);
|
|
90
|
+
}
|
|
61
91
|
const sse = new EventSourceImpl(streamUrl.href);
|
|
62
|
-
|
|
92
|
+
currentSse = sse;
|
|
63
93
|
// Prevent Node from exiting prematurely
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
94
|
+
interval = setInterval(() => { }, 1000);
|
|
95
|
+
sse.onopen = () => {
|
|
96
|
+
if (isReconnect) {
|
|
97
|
+
console.log(`Successfully reconnected to SSE stream for run ${runId}`);
|
|
98
|
+
}
|
|
99
|
+
// Reset reconnect attempts on successful connection
|
|
100
|
+
reconnectAttempts = 0;
|
|
68
101
|
};
|
|
69
102
|
sse.onmessage = (ev) => {
|
|
70
103
|
if (!ev.data || ev.data.startsWith(":")) {
|
|
@@ -73,6 +106,10 @@ export class WorkflowsApi extends ApiTopic {
|
|
|
73
106
|
}
|
|
74
107
|
try {
|
|
75
108
|
const message = JSON.parse(ev.data);
|
|
109
|
+
// Update last message timestamp for reconnection
|
|
110
|
+
if (message.timestamp) {
|
|
111
|
+
lastMessageTimestamp = Math.max(lastMessageTimestamp, message.timestamp);
|
|
112
|
+
}
|
|
76
113
|
if (onMessage)
|
|
77
114
|
onMessage(message);
|
|
78
115
|
// Only close the stream when the main workstream completes
|
|
@@ -80,7 +117,6 @@ export class WorkflowsApi extends ApiTopic {
|
|
|
80
117
|
console.log("Closing stream due to COMPLETE message from main workstream");
|
|
81
118
|
if (!isClosed) {
|
|
82
119
|
isClosed = true;
|
|
83
|
-
sse.close();
|
|
84
120
|
cleanup();
|
|
85
121
|
resolve();
|
|
86
122
|
}
|
|
@@ -94,21 +130,51 @@ export class WorkflowsApi extends ApiTopic {
|
|
|
94
130
|
}
|
|
95
131
|
};
|
|
96
132
|
sse.onerror = (err) => {
|
|
97
|
-
if (
|
|
98
|
-
|
|
133
|
+
if (isClosed)
|
|
134
|
+
return;
|
|
135
|
+
console.warn(`SSE stream error for run ${runId}:`, err);
|
|
136
|
+
cleanup();
|
|
137
|
+
// Check if we should attempt reconnection
|
|
138
|
+
if (reconnectAttempts < maxReconnectAttempts) {
|
|
139
|
+
const delay = calculateBackoffDelay(reconnectAttempts);
|
|
140
|
+
console.log(`Attempting to reconnect in ${delay}ms (attempt ${reconnectAttempts + 1}/${maxReconnectAttempts})`);
|
|
141
|
+
reconnectAttempts++;
|
|
142
|
+
setTimeout(() => {
|
|
143
|
+
if (!isClosed) {
|
|
144
|
+
setupStream(true);
|
|
145
|
+
}
|
|
146
|
+
}, delay);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
console.error(`Failed to reconnect to SSE stream for run ${runId} after ${maxReconnectAttempts} attempts`);
|
|
99
150
|
isClosed = true;
|
|
100
|
-
|
|
101
|
-
cleanup();
|
|
102
|
-
reject(err);
|
|
151
|
+
reject(new Error(`SSE connection failed after ${maxReconnectAttempts} reconnection attempts`));
|
|
103
152
|
}
|
|
104
153
|
};
|
|
105
154
|
}
|
|
106
155
|
catch (err) {
|
|
107
|
-
|
|
156
|
+
console.error("Error setting up SSE stream:", err);
|
|
157
|
+
if (reconnectAttempts < maxReconnectAttempts) {
|
|
158
|
+
const delay = calculateBackoffDelay(reconnectAttempts);
|
|
159
|
+
reconnectAttempts++;
|
|
160
|
+
setTimeout(() => {
|
|
161
|
+
if (!isClosed) {
|
|
162
|
+
setupStream(true);
|
|
163
|
+
}
|
|
164
|
+
}, delay);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
reject(err);
|
|
168
|
+
}
|
|
108
169
|
}
|
|
109
170
|
};
|
|
110
171
|
// Start the async setup process
|
|
111
|
-
setupStream();
|
|
172
|
+
setupStream(false);
|
|
173
|
+
// Return cleanup function for external cancellation
|
|
174
|
+
return () => {
|
|
175
|
+
isClosed = true;
|
|
176
|
+
cleanup();
|
|
177
|
+
};
|
|
112
178
|
});
|
|
113
179
|
}
|
|
114
180
|
rules = new WorkflowsRulesApi(this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowsApi.js","sourceRoot":"","sources":["../../../src/store/WorkflowsApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAGH,gBAAgB,GAWnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACtC,YAAY,MAAkB;QAC1B,KAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IAED,QAAQ,CAAC,UAAkB,EAAE,SAAiB,EAAE,MAAc;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,UAAU,CAAC,OAAgC;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,UAAU,CAAC,UAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,OAAa;QACvE,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,IAAI,KAAK,WAAW,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,aAAa,CAAC,KAAa,EAAE,UAAkB;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,SAAS,CAAC,UAAkB,EAAE,KAAa,EAAE,MAAe;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,IAAI,KAAK,oBAAoB,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,CAAC,UAAkB,EAAE,KAAa,EAAE,MAAe;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,IAAI,KAAK,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,OAAO,CACH,IAAY,EACZ,UAAkC,EAAE;QAEpC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,GAAiB;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,gBAAgB,CAAC,KAAa,EAAE,KAAc;QAC1C,MAAM,KAAK,GAAG;YACV,KAAK;SACR,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,KAAK,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,SAA2C,EAAE,KAAc;QAC3F,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,
|
|
1
|
+
{"version":3,"file":"WorkflowsApi.js","sourceRoot":"","sources":["../../../src/store/WorkflowsApi.ts"],"names":[],"mappings":"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"}
|