@vertesia/client 0.78.0-dev-28b447d → 0.79.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.
Files changed (229) hide show
  1. package/lib/cjs/AccountApi.js +85 -0
  2. package/lib/cjs/AccountApi.js.map +1 -0
  3. package/lib/cjs/AccountsApi.js +16 -0
  4. package/lib/cjs/AccountsApi.js.map +1 -0
  5. package/lib/cjs/AnalyticsApi.js +13 -0
  6. package/lib/cjs/AnalyticsApi.js.map +1 -0
  7. package/lib/cjs/ApiKeysApi.js +63 -0
  8. package/lib/cjs/ApiKeysApi.js.map +1 -0
  9. package/lib/cjs/AppsApi.js +119 -0
  10. package/lib/cjs/AppsApi.js.map +1 -0
  11. package/lib/cjs/CommandsApi.js +19 -0
  12. package/lib/cjs/CommandsApi.js.map +1 -0
  13. package/lib/cjs/EnvironmentsApi.js +58 -0
  14. package/lib/cjs/EnvironmentsApi.js.map +1 -0
  15. package/lib/cjs/GroupsApi.js +78 -0
  16. package/lib/cjs/GroupsApi.js.map +1 -0
  17. package/lib/cjs/IamApi.js +53 -0
  18. package/lib/cjs/IamApi.js.map +1 -0
  19. package/lib/cjs/InteractionBase.js +44 -0
  20. package/lib/cjs/InteractionBase.js.map +1 -0
  21. package/lib/cjs/InteractionsApi.js +217 -0
  22. package/lib/cjs/InteractionsApi.js.map +1 -0
  23. package/lib/cjs/ProjectsApi.js +48 -0
  24. package/lib/cjs/ProjectsApi.js.map +1 -0
  25. package/lib/cjs/PromptsApi.js +133 -0
  26. package/lib/cjs/PromptsApi.js.map +1 -0
  27. package/lib/cjs/RefsApi.js +14 -0
  28. package/lib/cjs/RefsApi.js.map +1 -0
  29. package/lib/cjs/RunsApi.js +105 -0
  30. package/lib/cjs/RunsApi.js.map +1 -0
  31. package/lib/cjs/StreamSource.js +17 -0
  32. package/lib/cjs/StreamSource.js.map +1 -0
  33. package/lib/cjs/TrainingApi.js +54 -0
  34. package/lib/cjs/TrainingApi.js.map +1 -0
  35. package/lib/cjs/UsersApi.js +13 -0
  36. package/lib/cjs/UsersApi.js.map +1 -0
  37. package/lib/cjs/client.js +279 -0
  38. package/lib/cjs/client.js.map +1 -0
  39. package/lib/cjs/execute.js +158 -0
  40. package/lib/cjs/execute.js.map +1 -0
  41. package/lib/cjs/index.js +21 -0
  42. package/lib/cjs/index.js.map +1 -0
  43. package/lib/cjs/nodejs/NodeStreamSource.js +45 -0
  44. package/lib/cjs/nodejs/NodeStreamSource.js.map +1 -0
  45. package/lib/cjs/nodejs/index.js +18 -0
  46. package/lib/cjs/nodejs/index.js.map +1 -0
  47. package/lib/cjs/package.json +3 -0
  48. package/lib/cjs/store/AgentsApi.js +16 -0
  49. package/lib/cjs/store/AgentsApi.js.map +1 -0
  50. package/lib/cjs/store/AnalyzeDocApi.js +56 -0
  51. package/lib/cjs/store/AnalyzeDocApi.js.map +1 -0
  52. package/lib/cjs/store/CollectionsApi.js +101 -0
  53. package/lib/cjs/store/CollectionsApi.js.map +1 -0
  54. package/lib/cjs/store/CommandsApi.js +17 -0
  55. package/lib/cjs/store/CommandsApi.js.map +1 -0
  56. package/lib/cjs/store/EmbeddingsApi.js +29 -0
  57. package/lib/cjs/store/EmbeddingsApi.js.map +1 -0
  58. package/lib/cjs/store/FilesApi.js +147 -0
  59. package/lib/cjs/store/FilesApi.js.map +1 -0
  60. package/lib/cjs/store/ObjectsApi.js +281 -0
  61. package/lib/cjs/store/ObjectsApi.js.map +1 -0
  62. package/lib/cjs/store/TypesApi.js +57 -0
  63. package/lib/cjs/store/TypesApi.js.map +1 -0
  64. package/lib/cjs/store/WorkflowsApi.js +265 -0
  65. package/lib/cjs/store/WorkflowsApi.js.map +1 -0
  66. package/lib/cjs/store/client.js +71 -0
  67. package/lib/cjs/store/client.js.map +1 -0
  68. package/lib/cjs/store/errors.js +11 -0
  69. package/lib/cjs/store/errors.js.map +1 -0
  70. package/lib/cjs/store/index.js +22 -0
  71. package/lib/cjs/store/index.js.map +1 -0
  72. package/lib/cjs/store/version.js +6 -0
  73. package/lib/cjs/store/version.js.map +1 -0
  74. package/lib/esm/AccountApi.js +82 -0
  75. package/lib/esm/AccountApi.js.map +1 -0
  76. package/lib/esm/AccountsApi.js +13 -0
  77. package/lib/esm/AccountsApi.js.map +1 -0
  78. package/lib/esm/AnalyticsApi.js +10 -0
  79. package/lib/esm/AnalyticsApi.js.map +1 -0
  80. package/lib/esm/ApiKeysApi.js +59 -0
  81. package/lib/esm/ApiKeysApi.js.map +1 -0
  82. package/lib/esm/AppsApi.js +116 -0
  83. package/lib/esm/AppsApi.js.map +1 -0
  84. package/lib/esm/CommandsApi.js +16 -0
  85. package/lib/esm/CommandsApi.js.map +1 -0
  86. package/lib/esm/EnvironmentsApi.js +55 -0
  87. package/lib/esm/EnvironmentsApi.js.map +1 -0
  88. package/lib/esm/GroupsApi.js +74 -0
  89. package/lib/esm/GroupsApi.js.map +1 -0
  90. package/lib/esm/IamApi.js +47 -0
  91. package/lib/esm/IamApi.js.map +1 -0
  92. package/lib/esm/InteractionBase.js +40 -0
  93. package/lib/esm/InteractionBase.js.map +1 -0
  94. package/lib/esm/InteractionsApi.js +214 -0
  95. package/lib/esm/InteractionsApi.js.map +1 -0
  96. package/lib/esm/ProjectsApi.js +45 -0
  97. package/lib/esm/ProjectsApi.js.map +1 -0
  98. package/lib/esm/PromptsApi.js +130 -0
  99. package/lib/esm/PromptsApi.js.map +1 -0
  100. package/lib/esm/RefsApi.js +10 -0
  101. package/lib/esm/RefsApi.js.map +1 -0
  102. package/lib/esm/RunsApi.js +101 -0
  103. package/lib/esm/RunsApi.js.map +1 -0
  104. package/lib/esm/StreamSource.js +13 -0
  105. package/lib/esm/StreamSource.js.map +1 -0
  106. package/lib/esm/TrainingApi.js +51 -0
  107. package/lib/esm/TrainingApi.js.map +1 -0
  108. package/lib/esm/UsersApi.js +10 -0
  109. package/lib/esm/UsersApi.js.map +1 -0
  110. package/lib/esm/client.js +270 -0
  111. package/lib/esm/client.js.map +1 -0
  112. package/lib/esm/execute.js +118 -0
  113. package/lib/esm/execute.js.map +1 -0
  114. package/lib/esm/index.js +5 -0
  115. package/lib/esm/index.js.map +1 -0
  116. package/lib/esm/nodejs/NodeStreamSource.js +41 -0
  117. package/lib/esm/nodejs/NodeStreamSource.js.map +1 -0
  118. package/lib/esm/nodejs/index.js +2 -0
  119. package/lib/esm/nodejs/index.js.map +1 -0
  120. package/lib/esm/store/AgentsApi.js +12 -0
  121. package/lib/esm/store/AgentsApi.js.map +1 -0
  122. package/lib/esm/store/AnalyzeDocApi.js +52 -0
  123. package/lib/esm/store/AnalyzeDocApi.js.map +1 -0
  124. package/lib/esm/store/CollectionsApi.js +97 -0
  125. package/lib/esm/store/CollectionsApi.js.map +1 -0
  126. package/lib/esm/store/CommandsApi.js +13 -0
  127. package/lib/esm/store/CommandsApi.js.map +1 -0
  128. package/lib/esm/store/EmbeddingsApi.js +25 -0
  129. package/lib/esm/store/EmbeddingsApi.js.map +1 -0
  130. package/lib/esm/store/FilesApi.js +142 -0
  131. package/lib/esm/store/FilesApi.js.map +1 -0
  132. package/lib/esm/store/ObjectsApi.js +277 -0
  133. package/lib/esm/store/ObjectsApi.js.map +1 -0
  134. package/lib/esm/store/TypesApi.js +53 -0
  135. package/lib/esm/store/TypesApi.js.map +1 -0
  136. package/lib/esm/store/WorkflowsApi.js +259 -0
  137. package/lib/esm/store/WorkflowsApi.js.map +1 -0
  138. package/lib/esm/store/client.js +67 -0
  139. package/lib/esm/store/client.js.map +1 -0
  140. package/lib/esm/store/errors.js +7 -0
  141. package/lib/esm/store/errors.js.map +1 -0
  142. package/lib/esm/store/index.js +6 -0
  143. package/lib/esm/store/index.js.map +1 -0
  144. package/lib/esm/store/version.js +3 -0
  145. package/lib/esm/store/version.js.map +1 -0
  146. package/lib/tsconfig.tsbuildinfo +1 -0
  147. package/lib/types/AccountApi.d.ts +59 -0
  148. package/lib/types/AccountApi.d.ts.map +1 -0
  149. package/lib/types/AccountsApi.d.ts +7 -0
  150. package/lib/types/AccountsApi.d.ts.map +1 -0
  151. package/lib/types/AnalyticsApi.d.ts +6 -0
  152. package/lib/types/AnalyticsApi.d.ts.map +1 -0
  153. package/lib/types/ApiKeysApi.d.ts +42 -0
  154. package/lib/types/ApiKeysApi.d.ts.map +1 -0
  155. package/lib/types/AppsApi.d.ts +65 -0
  156. package/lib/types/AppsApi.d.ts.map +1 -0
  157. package/lib/types/CommandsApi.d.ts +10 -0
  158. package/lib/types/CommandsApi.d.ts.map +1 -0
  159. package/lib/types/EnvironmentsApi.d.ts +30 -0
  160. package/lib/types/EnvironmentsApi.d.ts.map +1 -0
  161. package/lib/types/GroupsApi.d.ts +65 -0
  162. package/lib/types/GroupsApi.d.ts.map +1 -0
  163. package/lib/types/IamApi.d.ts +41 -0
  164. package/lib/types/IamApi.d.ts.map +1 -0
  165. package/lib/types/InteractionBase.d.ts +22 -0
  166. package/lib/types/InteractionBase.d.ts.map +1 -0
  167. package/lib/types/InteractionsApi.d.ts +156 -0
  168. package/lib/types/InteractionsApi.d.ts.map +1 -0
  169. package/lib/types/ProjectsApi.d.ts +17 -0
  170. package/lib/types/ProjectsApi.d.ts.map +1 -0
  171. package/lib/types/PromptsApi.d.ts +106 -0
  172. package/lib/types/PromptsApi.d.ts.map +1 -0
  173. package/lib/types/RefsApi.d.ts +6 -0
  174. package/lib/types/RefsApi.d.ts.map +1 -0
  175. package/lib/types/RunsApi.d.ts +77 -0
  176. package/lib/types/RunsApi.d.ts.map +1 -0
  177. package/lib/types/StreamSource.d.ts +7 -0
  178. package/lib/types/StreamSource.d.ts.map +1 -0
  179. package/lib/types/TrainingApi.d.ts +27 -0
  180. package/lib/types/TrainingApi.d.ts.map +1 -0
  181. package/lib/types/UsersApi.d.ts +6 -0
  182. package/lib/types/UsersApi.d.ts.map +1 -0
  183. package/lib/types/client.d.ts +119 -0
  184. package/lib/types/client.d.ts.map +1 -0
  185. package/lib/types/execute.d.ts +37 -0
  186. package/lib/types/execute.d.ts.map +1 -0
  187. package/lib/types/index.d.ts +8 -0
  188. package/lib/types/index.d.ts.map +1 -0
  189. package/lib/types/nodejs/NodeStreamSource.d.ts +9 -0
  190. package/lib/types/nodejs/NodeStreamSource.d.ts.map +1 -0
  191. package/lib/types/nodejs/index.d.ts +1 -0
  192. package/lib/types/nodejs/index.d.ts.map +1 -0
  193. package/lib/types/store/AgentsApi.d.ts +6 -0
  194. package/lib/types/store/AgentsApi.d.ts.map +1 -0
  195. package/lib/types/store/AnalyzeDocApi.d.ts +17 -0
  196. package/lib/types/store/AnalyzeDocApi.d.ts.map +1 -0
  197. package/lib/types/store/CollectionsApi.d.ts +66 -0
  198. package/lib/types/store/CollectionsApi.d.ts.map +1 -0
  199. package/lib/types/store/CommandsApi.d.ts +10 -0
  200. package/lib/types/store/CommandsApi.d.ts.map +1 -0
  201. package/lib/types/store/EmbeddingsApi.d.ts +12 -0
  202. package/lib/types/store/EmbeddingsApi.d.ts.map +1 -0
  203. package/lib/types/store/FilesApi.d.ts +47 -0
  204. package/lib/types/store/FilesApi.d.ts.map +1 -0
  205. package/lib/types/store/ObjectsApi.d.ts +122 -0
  206. package/lib/types/store/ObjectsApi.d.ts.map +1 -0
  207. package/lib/types/store/TypesApi.d.ts +23 -0
  208. package/lib/types/store/TypesApi.d.ts.map +1 -0
  209. package/lib/types/store/WorkflowsApi.d.ts +50 -0
  210. package/lib/types/store/WorkflowsApi.d.ts.map +1 -0
  211. package/lib/types/store/client.d.ts +34 -0
  212. package/lib/types/store/client.d.ts.map +1 -0
  213. package/lib/types/store/errors.d.ts +4 -0
  214. package/lib/types/store/errors.d.ts.map +1 -0
  215. package/lib/types/store/index.d.ts +5 -0
  216. package/lib/types/store/index.d.ts.map +1 -0
  217. package/lib/types/store/version.d.ts +2 -0
  218. package/lib/types/store/version.d.ts.map +1 -0
  219. package/lib/vertesia-client.js +2 -0
  220. package/lib/vertesia-client.js.map +1 -0
  221. package/package.json +54 -59
  222. package/src/InteractionsApi.ts +1 -2
  223. package/src/RunsApi.ts +1 -8
  224. package/src/client.test.ts +0 -2
  225. package/src/client.ts +69 -129
  226. package/src/store/FilesApi.ts +2 -2
  227. package/src/store/WorkflowsApi.ts +0 -166
  228. package/src/store/client.ts +12 -3
  229. package/src/store/version.ts +2 -0
@@ -0,0 +1,277 @@
1
+ import { ApiTopic } from "@vertesia/api-fetch-client";
2
+ import { ContentObjectApiHeaders, } from "@vertesia/common";
3
+ import { StreamSource } from "../StreamSource.js";
4
+ import { AnalyzeDocApi } from "./AnalyzeDocApi.js";
5
+ export class ObjectsApi extends ApiTopic {
6
+ constructor(parent) {
7
+ super(parent, "/api/v1/objects");
8
+ }
9
+ analyze(objectId) {
10
+ return new AnalyzeDocApi(this, objectId);
11
+ }
12
+ getUploadUrl(payload) {
13
+ return this.post("/upload-url", {
14
+ payload,
15
+ });
16
+ }
17
+ getDownloadUrl(fileUri) {
18
+ return this.post("/download-url", {
19
+ payload: {
20
+ file: fileUri,
21
+ },
22
+ });
23
+ }
24
+ getContentSource(objectId) {
25
+ return this.get(`/${objectId}/content-source`);
26
+ }
27
+ /**
28
+ * List objects with revision filtering options
29
+ *
30
+ * @param payload Search/filter parameters
31
+ * @returns Matching content objects
32
+ */
33
+ list(payload = {}) {
34
+ const limit = payload.limit || 100;
35
+ const offset = payload.offset || 0;
36
+ const query = payload.query || {};
37
+ return this.get("/", {
38
+ query: {
39
+ limit,
40
+ offset,
41
+ ...query,
42
+ all_revisions: payload.all_revisions,
43
+ from_root: payload.from_root || undefined,
44
+ },
45
+ });
46
+ }
47
+ computeFacets(query) {
48
+ return this.post("/facets", {
49
+ payload: query,
50
+ });
51
+ }
52
+ listFolders(path = "/") {
53
+ path; //TODO
54
+ }
55
+ /** Find object based on query */
56
+ find(payload) {
57
+ return this.post("/find", {
58
+ payload,
59
+ });
60
+ }
61
+ /** Count number of objects matching this query */
62
+ count(payload) {
63
+ return this.post("/count", {
64
+ payload,
65
+ });
66
+ }
67
+ /** Search object — different from find because allow full text search */
68
+ search(payload) {
69
+ return this.post("/search", {
70
+ payload,
71
+ });
72
+ }
73
+ retrieve(id, select) {
74
+ return this.get(`/${id}`, {
75
+ query: {
76
+ select,
77
+ },
78
+ });
79
+ }
80
+ getObjectText(id) {
81
+ return this.get(`/${id}/text`);
82
+ }
83
+ async upload(source) {
84
+ const isStream = source instanceof StreamSource;
85
+ // get a signed URL to upload the file a computed mimeType and the file object id.
86
+ const { url, id, mime_type } = await this.getUploadUrl({
87
+ id: isStream ? source.id : undefined,
88
+ name: source.name,
89
+ mime_type: source.type,
90
+ });
91
+ // upload the file content to the signed URL
92
+ /*const res = await this.fetch(url, {
93
+ method: 'PUT',
94
+ //@ts-ignore: duplex is not in the types. See https://github.com/node-fetch/node-fetch/issues/1769
95
+ duplex: isStream ? "half" : undefined,
96
+ body: isStream ? source.stream : source,
97
+ headers: {
98
+ 'Content-Type': mime_type || 'application/octet-stream'
99
+ }
100
+ }).then((res: Response) => {
101
+ if (res.ok) {
102
+ return res;
103
+ } else {
104
+ console.log(res);
105
+ throw new Error(`Failed to upload file: ${res.statusText}`);
106
+ }
107
+ });*/
108
+ const res = await fetch(url, {
109
+ method: "PUT",
110
+ body: isStream ? source.stream : source,
111
+ //@ts-ignore: duplex is not in the types. See https://github.com/node-fetch/node-fetch/issues/1769
112
+ duplex: isStream ? "half" : undefined,
113
+ headers: {
114
+ "Content-Type": mime_type || "application/octet-stream",
115
+ },
116
+ })
117
+ .then((res) => {
118
+ if (res.ok) {
119
+ return res;
120
+ }
121
+ else {
122
+ console.log(res);
123
+ throw new Error(`Failed to upload file: ${res.statusText}`);
124
+ }
125
+ })
126
+ .catch((err) => {
127
+ console.error("Failed to upload file", err);
128
+ throw err;
129
+ });
130
+ //Etag need to be unquoted
131
+ //When a server returns an ETag header, it includes the quotes around the actual hash value.
132
+ //This is part of the HTTP specification (RFC 7232), which states that ETags should be
133
+ //enclosed in double quotes.
134
+ const etag = res.headers.get("etag")?.replace(/^"(.*)"$/, "$1");
135
+ return {
136
+ source: id,
137
+ name: source.name,
138
+ type: mime_type,
139
+ etag,
140
+ };
141
+ }
142
+ async create(payload, options) {
143
+ const createPayload = {
144
+ ...payload,
145
+ };
146
+ if (payload.content instanceof StreamSource ||
147
+ payload.content instanceof File) {
148
+ createPayload.content = await this.upload(payload.content);
149
+ }
150
+ const headers = {};
151
+ if (options?.processing_priority) {
152
+ headers[ContentObjectApiHeaders.PROCESSING_PRIORITY] = options.processing_priority;
153
+ }
154
+ if (options?.collection_id) {
155
+ headers[ContentObjectApiHeaders.COLLECTION_ID] = options.collection_id;
156
+ }
157
+ return await this.post("/", {
158
+ payload: createPayload,
159
+ headers: headers,
160
+ });
161
+ }
162
+ /**
163
+ * Create an object which holds a reference to an external blob (i.e. not in the project bucket)
164
+ * The uri should starts either with gs:// or s3://. Not other protocols are supported yet.
165
+ * For the s3 blobs you must use a hash with the blob #region. Ex: s3://bucket/path/to/file#us-east-1
166
+ * @param uri
167
+ * @param payload
168
+ * @param options
169
+ * @returns
170
+ */
171
+ async createFromExternalSource(uri, payload = {}, options) {
172
+ const metadata = await this.client.files.getMetadata(uri);
173
+ const createPayload = {
174
+ ...payload,
175
+ content: {
176
+ source: uri,
177
+ name: metadata.name,
178
+ type: metadata.contentType,
179
+ etag: metadata.etag,
180
+ },
181
+ };
182
+ const headers = {};
183
+ if (options?.processing_priority) {
184
+ headers[ContentObjectApiHeaders.PROCESSING_PRIORITY] = options.processing_priority;
185
+ }
186
+ if (options?.collection_id) {
187
+ headers[ContentObjectApiHeaders.COLLECTION_ID] = options.collection_id;
188
+ }
189
+ return await this.post("/", {
190
+ payload: createPayload,
191
+ headers: headers,
192
+ });
193
+ }
194
+ /**
195
+ * Updates an existing object or creates a new revision
196
+ * Handles file uploads similar to the create method
197
+ *
198
+ * @param id The ID of the object to update
199
+ * @param payload The changes to apply
200
+ * @param options Additional options
201
+ * @param options.createRevision Whether to create a new revision instead of updating in place
202
+ * @param options.revisionLabel Optional label for the revision (e.g., "v1.2")
203
+ * @returns The updated object or newly created revision
204
+ */
205
+ async update(id, payload, options) {
206
+ const updatePayload = {
207
+ ...payload,
208
+ };
209
+ // Handle file upload if content is provided as File or StreamSource
210
+ if (payload.content instanceof StreamSource ||
211
+ payload.content instanceof File) {
212
+ updatePayload.content = await this.upload(payload.content);
213
+ }
214
+ const headers = {};
215
+ if (options?.processing_priority) {
216
+ headers[ContentObjectApiHeaders.PROCESSING_PRIORITY] = options.processing_priority;
217
+ }
218
+ if (options?.createRevision) {
219
+ headers[ContentObjectApiHeaders.CREATE_REVISION] = "true";
220
+ if (options.revisionLabel) {
221
+ headers[ContentObjectApiHeaders.REVISION_LABEL] = options.revisionLabel;
222
+ }
223
+ }
224
+ return this.put(`/${id}`, {
225
+ payload: updatePayload,
226
+ headers,
227
+ });
228
+ }
229
+ /**
230
+ * Retrieves all revisions of a content object
231
+ *
232
+ * @param id The ID of any revision in the object's history
233
+ * @returns Array of all revisions sharing the same root
234
+ */
235
+ getRevisions(id) {
236
+ return this.get(`/${id}/revisions`);
237
+ }
238
+ /**
239
+ * Retrieves all collections that contain a specific object
240
+ *
241
+ * @param id The ID of the object
242
+ * @returns Array of collections containing this object (both static and dynamic)
243
+ */
244
+ getCollections(id) {
245
+ return this.get(`/${id}/collections`);
246
+ }
247
+ delete(id) {
248
+ return this.del(`/${id}`);
249
+ }
250
+ listWorkflowRuns(documentId) {
251
+ return this.get(`/${documentId}/workflow-runs`);
252
+ }
253
+ listRenditions(documentId) {
254
+ return this.get(`/${documentId}/renditions`);
255
+ }
256
+ getRendition(documentId, options) {
257
+ const query = {
258
+ max_hw: options.max_hw,
259
+ generate_if_missing: options.generate_if_missing,
260
+ sign_url: options.sign_url,
261
+ };
262
+ return this.get(`/${documentId}/renditions/${options.format}`, {
263
+ query,
264
+ });
265
+ }
266
+ exportProperties(payload) {
267
+ return this.post("/export", {
268
+ payload,
269
+ });
270
+ }
271
+ setEmbedding(id, type, payload) {
272
+ return this.put(`/${id}/embeddings/${type}`, {
273
+ payload,
274
+ });
275
+ }
276
+ }
277
+ //# sourceMappingURL=ObjectsApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectsApi.js","sourceRoot":"","sources":["../../../src/store/ObjectsApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { ApiTopic } from "@vertesia/api-fetch-client";
2
+ export class TypesApi extends ApiTopic {
3
+ constructor(parent) {
4
+ super(parent, "/api/v1/types");
5
+ }
6
+ /**
7
+ * The options can be used to include more information in the return objects.
8
+ * You can specify to also include layout information using `layout: true`.
9
+ * By default the layout information is not included.
10
+ * @param payload
11
+ * @param options
12
+ * @returns
13
+ */
14
+ list(payload = {}, options) {
15
+ const limit = payload.limit || 100;
16
+ const offset = payload.offset || 0;
17
+ const query = payload.query || {};
18
+ return this.get("/", {
19
+ query: {
20
+ limit,
21
+ offset,
22
+ layout: options?.layout ? true : false,
23
+ schema: options?.schema ? true : false,
24
+ ...query
25
+ }
26
+ });
27
+ }
28
+ find(payload) {
29
+ return this.post("/find", {
30
+ payload
31
+ });
32
+ }
33
+ retrieve(typeId) {
34
+ return this.get(`/${typeId}`);
35
+ }
36
+ getTypeByName(typeName) {
37
+ return this.get(`/name/${typeName}`);
38
+ }
39
+ update(typeId, payload) {
40
+ return this.put(`/${typeId}`, {
41
+ payload
42
+ });
43
+ }
44
+ create(payload) {
45
+ return this.post(`/`, {
46
+ payload
47
+ });
48
+ }
49
+ delete(id) {
50
+ return this.del(`/${id}`);
51
+ }
52
+ }
53
+ //# sourceMappingURL=TypesApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypesApi.js","sourceRoot":"","sources":["../../../src/store/TypesApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;AAGlE,MAAM,OAAO,QAAS,SAAQ,QAAQ;IAElC,YAAY,MAAkB;QAC1B,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CAAC,UAAmC,EAAE,EAAE,OAAgD;QACxF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;QACnC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAA2B,CAAC;QAE3D,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YACjB,KAAK,EAAE;gBACH,KAAK;gBACL,MAAM;gBACN,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBACtC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBACtC,GAAG,KAAK;aACX;SACJ,CAAC,CAAC;IACP,CAAC;IAED,IAAI,CAAC,OAAoB;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACtB,OAAO;SACV,CAAC,CAAC;IACP,CAAC;IAED,QAAQ,CAAC,MAAc;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,aAAa,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,OAAgD;QACnE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,EAAE;YAC1B,OAAO;SACV,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,OAAuC;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAClB,OAAO;SACV,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,EAAU;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;CAEJ"}
@@ -0,0 +1,259 @@
1
+ import { ApiTopic } from "@vertesia/api-fetch-client";
2
+ import { AgentMessageType, } from "@vertesia/common";
3
+ import { EventSourceProvider } from "../execute.js";
4
+ export class WorkflowsApi extends ApiTopic {
5
+ constructor(parent) {
6
+ super(parent, "/api/v1/workflows");
7
+ }
8
+ getActivityCatalog() {
9
+ return this.get("/activity-catalog");
10
+ }
11
+ listRuns(documentId, eventName, ruleId) {
12
+ return this.post(`/runs`, { payload: { documentId, eventName, ruleId } });
13
+ }
14
+ /** List conversations the users has access to */
15
+ listConversations(payload) {
16
+ return this.post(`/conversations`, {
17
+ payload
18
+ });
19
+ }
20
+ searchRuns(payload) {
21
+ return this.post(`/runs`, { payload: payload });
22
+ }
23
+ sendSignal(workflowId, runId, signal, payload) {
24
+ return this.post(`/runs/${workflowId}/${runId}/signal/${signal}`, { payload });
25
+ }
26
+ getRunDetails(runId, workflowId, includeHistory = false) {
27
+ const query = { include_history: includeHistory };
28
+ return this.get(`/runs/${workflowId}/${runId}`, { query });
29
+ }
30
+ getRunInteraction(workflowId, runId) {
31
+ return this.get(`/runs/${workflowId}/${runId}/interaction`);
32
+ }
33
+ terminate(workflowId, runId, reason) {
34
+ return this.post(`/runs/${workflowId}/${runId}/actions/terminate`, { payload: { reason } });
35
+ }
36
+ cancel(workflowId, runId, reason) {
37
+ return this.post(`/runs/${workflowId}/${runId}/actions/cancel`, { payload: { reason } });
38
+ }
39
+ execute(name, payload = {}) {
40
+ return this.post(`/execute/${name}`, { payload });
41
+ }
42
+ postMessage(runId, msg) {
43
+ if (!runId) {
44
+ throw new Error("runId is required");
45
+ }
46
+ return this.post(`/runs/${runId}/updates`, { payload: msg });
47
+ }
48
+ retrieveMessages(workflowId, runId, since) {
49
+ const query = {
50
+ since,
51
+ };
52
+ return this.get(`/runs/${workflowId}/${runId}/updates`, { query });
53
+ }
54
+ async streamMessages(workflowId, runId, onMessage, since) {
55
+ return new Promise((resolve, reject) => {
56
+ let reconnectAttempts = 0;
57
+ let lastMessageTimestamp = since || 0;
58
+ let isClosed = false;
59
+ let currentSse = null;
60
+ let interval = null;
61
+ const maxReconnectAttempts = 10;
62
+ const baseDelay = 1000; // 1 second base delay
63
+ const maxDelay = 30000; // 30 seconds max delay
64
+ const calculateBackoffDelay = (attempts) => {
65
+ const exponentialDelay = Math.min(baseDelay * Math.pow(2, attempts), maxDelay);
66
+ // Add jitter to prevent thundering herd
67
+ const jitter = Math.random() * 0.1 * exponentialDelay;
68
+ return exponentialDelay + jitter;
69
+ };
70
+ const cleanup = () => {
71
+ if (interval) {
72
+ clearInterval(interval);
73
+ interval = null;
74
+ }
75
+ if (currentSse) {
76
+ currentSse.close();
77
+ currentSse = null;
78
+ }
79
+ };
80
+ const exit = (payload) => {
81
+ if (!isClosed) {
82
+ isClosed = true;
83
+ cleanup();
84
+ resolve(payload);
85
+ }
86
+ };
87
+ const setupStream = async (isReconnect = false) => {
88
+ if (isClosed)
89
+ return;
90
+ try {
91
+ const EventSourceImpl = await EventSourceProvider();
92
+ const client = this.client;
93
+ const streamUrl = new URL(client.workflows.baseUrl + `/runs/${workflowId}/${runId}/stream`);
94
+ // Use the timestamp of the last received message for reconnection
95
+ if (lastMessageTimestamp > 0) {
96
+ streamUrl.searchParams.set("since", lastMessageTimestamp.toString());
97
+ }
98
+ const bearerToken = client._auth ? await client._auth() : undefined;
99
+ if (!bearerToken) {
100
+ reject(new Error("No auth token available"));
101
+ return;
102
+ }
103
+ const token = bearerToken.split(" ")[1];
104
+ streamUrl.searchParams.set("access_token", token);
105
+ if (isReconnect) {
106
+ console.log(`Reconnecting to SSE stream for run ${runId} (attempt ${reconnectAttempts + 1}/${maxReconnectAttempts})`);
107
+ }
108
+ const sse = new EventSourceImpl(streamUrl.href);
109
+ currentSse = sse;
110
+ // Prevent Node from exiting prematurely
111
+ interval = setInterval(() => { }, 1000);
112
+ sse.onopen = () => {
113
+ if (isReconnect) {
114
+ console.log(`Successfully reconnected to SSE stream for run ${runId}`);
115
+ }
116
+ // Reset reconnect attempts on successful connection
117
+ reconnectAttempts = 0;
118
+ };
119
+ sse.onmessage = (ev) => {
120
+ if (!ev.data || ev.data.startsWith(":")) {
121
+ console.log("Received comment or heartbeat; ignoring it.: ", ev.data);
122
+ return;
123
+ }
124
+ try {
125
+ const message = JSON.parse(ev.data);
126
+ // Update last message timestamp for reconnection
127
+ if (message.timestamp) {
128
+ lastMessageTimestamp = Math.max(lastMessageTimestamp, message.timestamp);
129
+ }
130
+ if (onMessage)
131
+ onMessage(message, exit);
132
+ const streamIsOver = message.type === AgentMessageType.TERMINATED ||
133
+ (message.type === AgentMessageType.COMPLETE &&
134
+ (!message.workstream_id || message.workstream_id === 'main'));
135
+ // Only close the stream when the main workstream completes or terminates
136
+ if (streamIsOver) {
137
+ console.log("Closing stream due to COMPLETE message from main workstream");
138
+ if (!isClosed) {
139
+ isClosed = true;
140
+ cleanup();
141
+ resolve(null);
142
+ }
143
+ }
144
+ else if (message.type === AgentMessageType.COMPLETE) {
145
+ console.log(`Received COMPLETE message from non-main workstream: ${message.workstream_id || 'unknown'}, keeping stream open`);
146
+ }
147
+ }
148
+ catch (err) {
149
+ console.error("Failed to parse SSE message:", err, ev.data);
150
+ }
151
+ };
152
+ sse.onerror = (err) => {
153
+ if (isClosed)
154
+ return;
155
+ console.warn(`SSE stream error for run ${runId}:`, err);
156
+ cleanup();
157
+ // Check if we should attempt reconnection
158
+ if (reconnectAttempts < maxReconnectAttempts) {
159
+ const delay = calculateBackoffDelay(reconnectAttempts);
160
+ console.log(`Attempting to reconnect in ${delay}ms (attempt ${reconnectAttempts + 1}/${maxReconnectAttempts})`);
161
+ reconnectAttempts++;
162
+ setTimeout(() => {
163
+ if (!isClosed) {
164
+ setupStream(true);
165
+ }
166
+ }, delay);
167
+ }
168
+ else {
169
+ console.error(`Failed to reconnect to SSE stream for run ${runId} after ${maxReconnectAttempts} attempts`);
170
+ isClosed = true;
171
+ reject(new Error(`SSE connection failed after ${maxReconnectAttempts} reconnection attempts`));
172
+ }
173
+ };
174
+ }
175
+ catch (err) {
176
+ console.error("Error setting up SSE stream:", err);
177
+ if (reconnectAttempts < maxReconnectAttempts) {
178
+ const delay = calculateBackoffDelay(reconnectAttempts);
179
+ reconnectAttempts++;
180
+ setTimeout(() => {
181
+ if (!isClosed) {
182
+ setupStream(true);
183
+ }
184
+ }, delay);
185
+ }
186
+ else {
187
+ reject(err);
188
+ }
189
+ }
190
+ };
191
+ // Start the async setup process
192
+ setupStream(false);
193
+ // Return cleanup function for external cancellation
194
+ return () => {
195
+ isClosed = true;
196
+ cleanup();
197
+ };
198
+ });
199
+ }
200
+ rules = new WorkflowsRulesApi(this);
201
+ definitions = new WorkflowsDefinitionApi(this);
202
+ }
203
+ export class WorkflowsRulesApi extends ApiTopic {
204
+ constructor(parent) {
205
+ super(parent, "/rules");
206
+ }
207
+ list() {
208
+ return this.get("/");
209
+ }
210
+ retrieve(id) {
211
+ return this.get(`/${id}`);
212
+ }
213
+ update(id, payload) {
214
+ return this.put(`/${id}`, {
215
+ payload,
216
+ });
217
+ }
218
+ create(payload) {
219
+ return this.post("/", {
220
+ payload,
221
+ });
222
+ }
223
+ delete(id) {
224
+ return this.del(`/${id}`);
225
+ }
226
+ execute(id, objectIds, vars) {
227
+ const payload = {
228
+ objectIds,
229
+ vars,
230
+ };
231
+ return this.post(`/${id}/execute`, { payload });
232
+ }
233
+ }
234
+ export class WorkflowsDefinitionApi extends ApiTopic {
235
+ //model: DSLWorkflowDefinition;
236
+ constructor(parent) {
237
+ super(parent, "/definitions");
238
+ }
239
+ list() {
240
+ return this.get("/");
241
+ }
242
+ retrieve(id) {
243
+ return this.get(`/${id}`);
244
+ }
245
+ update(id, payload) {
246
+ return this.put(`/${id}`, {
247
+ payload,
248
+ });
249
+ }
250
+ create(payload) {
251
+ return this.post("/", {
252
+ payload,
253
+ });
254
+ }
255
+ delete(id) {
256
+ return this.del(`/${id}`);
257
+ }
258
+ }
259
+ //# sourceMappingURL=WorkflowsApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowsApi.js","sourceRoot":"","sources":["../../../src/store/WorkflowsApi.ts"],"names":[],"mappings":"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"}