@vertesia/client 0.54.0 → 0.56.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 (216) hide show
  1. package/lib/cjs/AccountApi.js +84 -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/CommandsApi.js +19 -0
  10. package/lib/cjs/CommandsApi.js.map +1 -0
  11. package/lib/cjs/EnvironmentsApi.js +58 -0
  12. package/lib/cjs/EnvironmentsApi.js.map +1 -0
  13. package/lib/cjs/IamApi.js +51 -0
  14. package/lib/cjs/IamApi.js.map +1 -0
  15. package/lib/cjs/InteractionBase.js +44 -0
  16. package/lib/cjs/InteractionBase.js.map +1 -0
  17. package/lib/cjs/InteractionsApi.js +209 -0
  18. package/lib/cjs/InteractionsApi.js.map +1 -0
  19. package/lib/cjs/PluginsApi.js +27 -0
  20. package/lib/cjs/PluginsApi.js.map +1 -0
  21. package/lib/cjs/ProjectsApi.js +54 -0
  22. package/lib/cjs/ProjectsApi.js.map +1 -0
  23. package/lib/cjs/PromptsApi.js +133 -0
  24. package/lib/cjs/PromptsApi.js.map +1 -0
  25. package/lib/cjs/RefsApi.js +14 -0
  26. package/lib/cjs/RefsApi.js.map +1 -0
  27. package/lib/cjs/RunsApi.js +105 -0
  28. package/lib/cjs/RunsApi.js.map +1 -0
  29. package/lib/cjs/StreamSource.js +17 -0
  30. package/lib/cjs/StreamSource.js.map +1 -0
  31. package/lib/cjs/TrainingApi.js +54 -0
  32. package/lib/cjs/TrainingApi.js.map +1 -0
  33. package/lib/cjs/UsersApi.js +13 -0
  34. package/lib/cjs/UsersApi.js.map +1 -0
  35. package/lib/cjs/client.js +218 -0
  36. package/lib/cjs/client.js.map +1 -0
  37. package/lib/cjs/execute.js +152 -0
  38. package/lib/cjs/execute.js.map +1 -0
  39. package/lib/cjs/index.js +21 -0
  40. package/lib/cjs/index.js.map +1 -0
  41. package/lib/cjs/nodejs/NodeStreamSource.js +45 -0
  42. package/lib/cjs/nodejs/NodeStreamSource.js.map +1 -0
  43. package/lib/cjs/nodejs/index.js +18 -0
  44. package/lib/cjs/nodejs/index.js.map +1 -0
  45. package/lib/cjs/package.json +3 -0
  46. package/lib/cjs/store/AgentsApi.js +16 -0
  47. package/lib/cjs/store/AgentsApi.js.map +1 -0
  48. package/lib/cjs/store/AnalyzeDocApi.js +56 -0
  49. package/lib/cjs/store/AnalyzeDocApi.js.map +1 -0
  50. package/lib/cjs/store/CollectionsApi.js +77 -0
  51. package/lib/cjs/store/CollectionsApi.js.map +1 -0
  52. package/lib/cjs/store/CommandsApi.js +17 -0
  53. package/lib/cjs/store/CommandsApi.js.map +1 -0
  54. package/lib/cjs/store/EmbeddingsApi.js +29 -0
  55. package/lib/cjs/store/EmbeddingsApi.js.map +1 -0
  56. package/lib/cjs/store/FilesApi.js +128 -0
  57. package/lib/cjs/store/FilesApi.js.map +1 -0
  58. package/lib/cjs/store/ObjectsApi.js +254 -0
  59. package/lib/cjs/store/ObjectsApi.js.map +1 -0
  60. package/lib/cjs/store/TypesApi.js +57 -0
  61. package/lib/cjs/store/TypesApi.js.map +1 -0
  62. package/lib/cjs/store/WorkflowsApi.js +179 -0
  63. package/lib/cjs/store/WorkflowsApi.js.map +1 -0
  64. package/lib/cjs/store/client.js +55 -0
  65. package/lib/cjs/store/client.js.map +1 -0
  66. package/lib/cjs/store/errors.js +11 -0
  67. package/lib/cjs/store/errors.js.map +1 -0
  68. package/lib/cjs/store/index.js +22 -0
  69. package/lib/cjs/store/index.js.map +1 -0
  70. package/lib/esm/AccountApi.js +81 -0
  71. package/lib/esm/AccountApi.js.map +1 -0
  72. package/lib/esm/AccountsApi.js +13 -0
  73. package/lib/esm/AccountsApi.js.map +1 -0
  74. package/lib/esm/AnalyticsApi.js +10 -0
  75. package/lib/esm/AnalyticsApi.js.map +1 -0
  76. package/lib/esm/ApiKeysApi.js +59 -0
  77. package/lib/esm/ApiKeysApi.js.map +1 -0
  78. package/lib/esm/CommandsApi.js +16 -0
  79. package/lib/esm/CommandsApi.js.map +1 -0
  80. package/lib/esm/EnvironmentsApi.js +55 -0
  81. package/lib/esm/EnvironmentsApi.js.map +1 -0
  82. package/lib/esm/IamApi.js +45 -0
  83. package/lib/esm/IamApi.js.map +1 -0
  84. package/lib/esm/InteractionBase.js +40 -0
  85. package/lib/esm/InteractionBase.js.map +1 -0
  86. package/lib/esm/InteractionsApi.js +206 -0
  87. package/lib/esm/InteractionsApi.js.map +1 -0
  88. package/lib/esm/PluginsApi.js +24 -0
  89. package/lib/esm/PluginsApi.js.map +1 -0
  90. package/lib/esm/ProjectsApi.js +51 -0
  91. package/lib/esm/ProjectsApi.js.map +1 -0
  92. package/lib/esm/PromptsApi.js +130 -0
  93. package/lib/esm/PromptsApi.js.map +1 -0
  94. package/lib/esm/RefsApi.js +10 -0
  95. package/lib/esm/RefsApi.js.map +1 -0
  96. package/lib/esm/RunsApi.js +101 -0
  97. package/lib/esm/RunsApi.js.map +1 -0
  98. package/lib/esm/StreamSource.js +13 -0
  99. package/lib/esm/StreamSource.js.map +1 -0
  100. package/lib/esm/TrainingApi.js +51 -0
  101. package/lib/esm/TrainingApi.js.map +1 -0
  102. package/lib/esm/UsersApi.js +10 -0
  103. package/lib/esm/UsersApi.js.map +1 -0
  104. package/lib/esm/client.js +211 -0
  105. package/lib/esm/client.js.map +1 -0
  106. package/lib/esm/execute.js +113 -0
  107. package/lib/esm/execute.js.map +1 -0
  108. package/lib/esm/index.js +5 -0
  109. package/lib/esm/index.js.map +1 -0
  110. package/lib/esm/nodejs/NodeStreamSource.js +41 -0
  111. package/lib/esm/nodejs/NodeStreamSource.js.map +1 -0
  112. package/lib/esm/nodejs/index.js +2 -0
  113. package/lib/esm/nodejs/index.js.map +1 -0
  114. package/lib/esm/store/AgentsApi.js +12 -0
  115. package/lib/esm/store/AgentsApi.js.map +1 -0
  116. package/lib/esm/store/AnalyzeDocApi.js +52 -0
  117. package/lib/esm/store/AnalyzeDocApi.js.map +1 -0
  118. package/lib/esm/store/CollectionsApi.js +73 -0
  119. package/lib/esm/store/CollectionsApi.js.map +1 -0
  120. package/lib/esm/store/CommandsApi.js +13 -0
  121. package/lib/esm/store/CommandsApi.js.map +1 -0
  122. package/lib/esm/store/EmbeddingsApi.js +25 -0
  123. package/lib/esm/store/EmbeddingsApi.js.map +1 -0
  124. package/lib/esm/store/FilesApi.js +123 -0
  125. package/lib/esm/store/FilesApi.js.map +1 -0
  126. package/lib/esm/store/ObjectsApi.js +250 -0
  127. package/lib/esm/store/ObjectsApi.js.map +1 -0
  128. package/lib/esm/store/TypesApi.js +53 -0
  129. package/lib/esm/store/TypesApi.js.map +1 -0
  130. package/lib/esm/store/WorkflowsApi.js +173 -0
  131. package/lib/esm/store/WorkflowsApi.js.map +1 -0
  132. package/lib/esm/store/client.js +51 -0
  133. package/lib/esm/store/client.js.map +1 -0
  134. package/lib/esm/store/errors.js +7 -0
  135. package/lib/esm/store/errors.js.map +1 -0
  136. package/lib/esm/store/index.js +6 -0
  137. package/lib/esm/store/index.js.map +1 -0
  138. package/lib/tsconfig.tsbuildinfo +1 -0
  139. package/lib/types/AccountApi.d.ts +58 -0
  140. package/lib/types/AccountApi.d.ts.map +1 -0
  141. package/lib/types/AccountsApi.d.ts +7 -0
  142. package/lib/types/AccountsApi.d.ts.map +1 -0
  143. package/lib/types/AnalyticsApi.d.ts +6 -0
  144. package/lib/types/AnalyticsApi.d.ts.map +1 -0
  145. package/lib/types/ApiKeysApi.d.ts +42 -0
  146. package/lib/types/ApiKeysApi.d.ts.map +1 -0
  147. package/lib/types/CommandsApi.d.ts +10 -0
  148. package/lib/types/CommandsApi.d.ts.map +1 -0
  149. package/lib/types/EnvironmentsApi.d.ts +30 -0
  150. package/lib/types/EnvironmentsApi.d.ts.map +1 -0
  151. package/lib/types/IamApi.d.ts +39 -0
  152. package/lib/types/IamApi.d.ts.map +1 -0
  153. package/lib/types/InteractionBase.d.ts +22 -0
  154. package/lib/types/InteractionBase.d.ts.map +1 -0
  155. package/lib/types/InteractionsApi.d.ts +150 -0
  156. package/lib/types/InteractionsApi.d.ts.map +1 -0
  157. package/lib/types/PluginsApi.d.ts +12 -0
  158. package/lib/types/PluginsApi.d.ts.map +1 -0
  159. package/lib/types/ProjectsApi.d.ts +21 -0
  160. package/lib/types/ProjectsApi.d.ts.map +1 -0
  161. package/lib/types/PromptsApi.d.ts +106 -0
  162. package/lib/types/PromptsApi.d.ts.map +1 -0
  163. package/lib/types/RefsApi.d.ts +6 -0
  164. package/lib/types/RefsApi.d.ts.map +1 -0
  165. package/lib/types/RunsApi.d.ts +77 -0
  166. package/lib/types/RunsApi.d.ts.map +1 -0
  167. package/lib/types/StreamSource.d.ts +7 -0
  168. package/lib/types/StreamSource.d.ts.map +1 -0
  169. package/lib/types/TrainingApi.d.ts +27 -0
  170. package/lib/types/TrainingApi.d.ts.map +1 -0
  171. package/lib/types/UsersApi.d.ts +6 -0
  172. package/lib/types/UsersApi.d.ts.map +1 -0
  173. package/lib/types/client.d.ts +103 -0
  174. package/lib/types/client.d.ts.map +1 -0
  175. package/lib/types/execute.d.ts +36 -0
  176. package/lib/types/execute.d.ts.map +1 -0
  177. package/lib/types/index.d.ts +7 -0
  178. package/lib/types/index.d.ts.map +1 -0
  179. package/lib/types/nodejs/NodeStreamSource.d.ts +9 -0
  180. package/lib/types/nodejs/NodeStreamSource.d.ts.map +1 -0
  181. package/lib/types/nodejs/index.d.ts +1 -0
  182. package/lib/types/nodejs/index.d.ts.map +1 -0
  183. package/lib/types/store/AgentsApi.d.ts +6 -0
  184. package/lib/types/store/AgentsApi.d.ts.map +1 -0
  185. package/lib/types/store/AnalyzeDocApi.d.ts +17 -0
  186. package/lib/types/store/AnalyzeDocApi.d.ts.map +1 -0
  187. package/lib/types/store/CollectionsApi.d.ts +37 -0
  188. package/lib/types/store/CollectionsApi.d.ts.map +1 -0
  189. package/lib/types/store/CommandsApi.d.ts +10 -0
  190. package/lib/types/store/CommandsApi.d.ts.map +1 -0
  191. package/lib/types/store/EmbeddingsApi.d.ts +12 -0
  192. package/lib/types/store/EmbeddingsApi.d.ts.map +1 -0
  193. package/lib/types/store/FilesApi.d.ts +41 -0
  194. package/lib/types/store/FilesApi.d.ts.map +1 -0
  195. package/lib/types/store/ObjectsApi.d.ts +113 -0
  196. package/lib/types/store/ObjectsApi.d.ts.map +1 -0
  197. package/lib/types/store/TypesApi.d.ts +23 -0
  198. package/lib/types/store/TypesApi.d.ts.map +1 -0
  199. package/lib/types/store/WorkflowsApi.d.ts +47 -0
  200. package/lib/types/store/WorkflowsApi.d.ts.map +1 -0
  201. package/lib/types/store/client.d.ts +29 -0
  202. package/lib/types/store/client.d.ts.map +1 -0
  203. package/lib/types/store/errors.d.ts +4 -0
  204. package/lib/types/store/errors.d.ts.map +1 -0
  205. package/lib/types/store/index.d.ts +5 -0
  206. package/lib/types/store/index.d.ts.map +1 -0
  207. package/lib/vertesia-client.js +2 -0
  208. package/lib/vertesia-client.js.map +1 -0
  209. package/package.json +10 -5
  210. package/src/EnvironmentsApi.ts +1 -1
  211. package/src/PluginsApi.ts +7 -5
  212. package/src/ProjectsApi.ts +2 -2
  213. package/src/RunsApi.ts +1 -1
  214. package/src/TrainingApi.ts +1 -1
  215. package/src/store/ObjectsApi.ts +7 -1
  216. package/src/store/WorkflowsApi.ts +73 -68
@@ -0,0 +1,113 @@
1
+ import { ExecutionRunStatus } from '@vertesia/common';
2
+ export async function EventSourceProvider() {
3
+ if (typeof globalThis.EventSource === 'function') {
4
+ return globalThis.EventSource;
5
+ }
6
+ else {
7
+ return (await import('eventsource')).EventSource;
8
+ }
9
+ }
10
+ /**
11
+ *
12
+ * Execute an interaction and return a promise which will be resolved with the executed run when
13
+ * the run completes or fails.
14
+ * If the onChunk callback is passed then the streaming of the result is enabled.
15
+ * The onChunk callback with be called with the next chunk of the result as soon as it is available.
16
+ * When all chunks are received the function will return the resolved promise
17
+ * @param id of the interaction to execute
18
+ * @param payload InteractionExecutionPayload
19
+ * @param onChunk callback to be called when the next chunk of the response is available
20
+ */
21
+ export async function executeInteraction(client, interactionId, payload = {}, onChunk) {
22
+ const stream = !!onChunk;
23
+ const response = await client.runs.create({
24
+ ...payload, interaction: interactionId, stream
25
+ });
26
+ if (stream) {
27
+ if (response.status === ExecutionRunStatus.failed) {
28
+ return response;
29
+ }
30
+ await handleStreaming(client, response.id, onChunk);
31
+ }
32
+ return response;
33
+ }
34
+ /**
35
+ * Same as executeInteraction but uses the interaction name selector instead of the id.
36
+ * A name selector is the interaction endpoint name suffixed with an optional tag or version which is starting with a `@` character.
37
+ * The special `draft` tag is used to select the draft version of the interaction. If no tag or version is specified then the latest version is selected.
38
+ * Examples of selectors:
39
+ * - `ReviewContract` - select the latest version of the ReviewContract interaction
40
+ * - `ReviewContract@1` - select the version 1 of the ReviewContract interaction
41
+ * - `ReviewContract@draft` - select the draft version of the ReviewContract interaction
42
+ * - `ReviewContract@fixed` - select the ReviewContract interaction which is tagged with 'fixed' tag.
43
+ *
44
+ * @param client
45
+ * @param interaction
46
+ * @param payload
47
+ * @param onChunk
48
+ * @returns
49
+ */
50
+ export async function executeInteractionByName(client, interaction, payload = {}, onChunk) {
51
+ const stream = !!onChunk;
52
+ const response = await client.post('/api/v1/execute', {
53
+ payload: {
54
+ ...payload,
55
+ interaction,
56
+ stream
57
+ },
58
+ });
59
+ if (stream) {
60
+ if (response.status === ExecutionRunStatus.failed) {
61
+ return response;
62
+ }
63
+ await handleStreaming(client, response.id, onChunk);
64
+ }
65
+ return response;
66
+ }
67
+ function handleStreaming(client, runId, onChunk) {
68
+ return new Promise(async (resolve, reject) => {
69
+ try {
70
+ const EventSourceImpl = await EventSourceProvider();
71
+ const streamUrl = new URL(client.runs.baseUrl + '/' + runId + '/stream');
72
+ const bearerToken = client._auth ? await client._auth() : undefined;
73
+ if (bearerToken) {
74
+ const token = bearerToken.split(' ')[1];
75
+ streamUrl.searchParams.set('access_token', token);
76
+ }
77
+ else {
78
+ throw new Error('No auth token available');
79
+ }
80
+ const sse = new EventSourceImpl(streamUrl.href);
81
+ sse.addEventListener("message", ev => {
82
+ try {
83
+ const data = JSON.parse(ev.data);
84
+ if (data) {
85
+ onChunk && onChunk(data);
86
+ }
87
+ }
88
+ catch (err) {
89
+ reject(err);
90
+ }
91
+ });
92
+ sse.addEventListener("close", (ev) => {
93
+ try {
94
+ sse.close();
95
+ const msg = JSON.parse(ev.data);
96
+ resolve(msg);
97
+ }
98
+ catch (err) {
99
+ reject(err);
100
+ }
101
+ });
102
+ }
103
+ catch (err) {
104
+ reject(err);
105
+ }
106
+ });
107
+ }
108
+ export async function executeInteractionAsync(client, payload) {
109
+ return await client.post('/api/v1/execute/async', {
110
+ payload,
111
+ });
112
+ }
113
+ //# sourceMappingURL=execute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/execute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './client.js';
2
+ export * from './InteractionBase.js';
3
+ export * from "./store/index.js";
4
+ export * from "./StreamSource.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AAIrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { ReadableStream as NodeReadableStream } from "node:stream/web";
2
+ import { StreamSource } from "../StreamSource.js";
3
+ /**
4
+ * A stream source that wraps a Node.js Readable stream.
5
+ * This class is only works in Node.js environments.
6
+ */
7
+ export class NodeStreamSource extends StreamSource {
8
+ constructor(stream, name, type, id) {
9
+ super(readableToWebStream(stream), name, type, id);
10
+ }
11
+ }
12
+ function readableToWebStream(stream) {
13
+ if (NodeReadableStream.from) {
14
+ return NodeReadableStream.from(stream);
15
+ }
16
+ else {
17
+ return readableToWebStream_BUN(stream);
18
+ }
19
+ }
20
+ /**
21
+ * Bun implementation since bun is not yet supporting NodeReadableStream.from
22
+ * @returns
23
+ */
24
+ function readableToWebStream_BUN(stream) {
25
+ const it = stream[Symbol.asyncIterator]();
26
+ return new ReadableStream({
27
+ async pull(controller) {
28
+ const { value, done } = await it.next();
29
+ if (done) {
30
+ controller.close();
31
+ }
32
+ else {
33
+ controller.enqueue(value);
34
+ }
35
+ },
36
+ cancel() {
37
+ it.return?.();
38
+ }
39
+ });
40
+ }
41
+ //# sourceMappingURL=NodeStreamSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeStreamSource.js","sourceRoot":"","sources":["../../../src/nodejs/NodeStreamSource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAC9C,YAAY,MAAgB,EAAE,IAAY,EAAE,IAAa,EAAE,EAAW;QAClE,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;CACJ;AAED,SAAS,mBAAmB,CAAsB,MAAgB;IAC9D,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAC1B,OAAO,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAsB,CAAC;IAChE,CAAC;SAAM,CAAC;QACJ,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAsB,MAAgB;IAClE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAC1C,OAAO,IAAI,cAAc,CAAI;QACzB,KAAK,CAAC,IAAI,CAAC,UAAU;YACjB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,IAAI,EAAE,CAAC;gBACP,UAAU,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACJ,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC;QACD,MAAM;YACF,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;QAClB,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./NodeStreamSource.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nodejs/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { ApiTopic } from "@vertesia/api-fetch-client";
2
+ export class AgentsApi extends ApiTopic {
3
+ constructor(parent) {
4
+ super(parent, "/api/v1/agents");
5
+ }
6
+ async deploy(payload) {
7
+ return this.post('/', {
8
+ payload
9
+ });
10
+ }
11
+ }
12
+ //# sourceMappingURL=AgentsApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentsApi.js","sourceRoot":"","sources":["../../../src/store/AgentsApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;AAIlE,MAAM,OAAO,SAAU,SAAQ,QAAQ;IAEnC,YAAY,MAAkB;QAC1B,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAqC;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAClB,OAAO;SACV,CAAC,CAAC;IACP,CAAC;CAEJ"}
@@ -0,0 +1,52 @@
1
+ import { ApiTopic } from "@vertesia/api-fetch-client";
2
+ export class AnalyzeDocApi extends ApiTopic {
3
+ objectId;
4
+ constructor(parent, objectId) {
5
+ super(parent, `/${objectId}/analyze`);
6
+ this.objectId = objectId;
7
+ }
8
+ async start(payload) {
9
+ return this.post("/", { payload });
10
+ }
11
+ async getStatus() {
12
+ return this.get("/status");
13
+ }
14
+ async getResults() {
15
+ return this.get("/results");
16
+ }
17
+ async adaptTables(payload) {
18
+ return this.post("/adapt_tables", { payload });
19
+ }
20
+ async getAdaptedTables(runId, query) {
21
+ const path = runId ? `/adapt_tables/${runId}` : "/adapt_tables";
22
+ // Build query parameters
23
+ const queryParams = {};
24
+ if (query?.format)
25
+ queryParams.format = query.format;
26
+ if (query?.raw !== undefined)
27
+ queryParams.raw = query.raw;
28
+ // If format is CSV, set response type to text to avoid automatic JSON parsing
29
+ const options = { query: queryParams };
30
+ if (query?.format === 'csv') {
31
+ options.responseType = 'text';
32
+ }
33
+ return this.get(path, options);
34
+ }
35
+ async getXml() {
36
+ return this.get("/xml");
37
+ }
38
+ async getTables(format) {
39
+ const options = {};
40
+ if (format) {
41
+ options.query = { format: format };
42
+ }
43
+ return this.get("/tables", options);
44
+ }
45
+ async getImages() {
46
+ return this.get("/images");
47
+ }
48
+ async getAnnotated() {
49
+ return this.get("/annotated");
50
+ }
51
+ }
52
+ //# sourceMappingURL=AnalyzeDocApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnalyzeDocApi.js","sourceRoot":"","sources":["../../../src/store/AnalyzeDocApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;AAGlE,MAAM,OAAO,aAAc,SAAQ,QAAQ;IACA;IAAvC,YAAY,MAAkB,EAAS,QAAgB;QACnD,KAAK,CAAC,MAAM,EAAE,IAAI,QAAQ,UAAU,CAAC,CAAC;QADH,aAAQ,GAAR,QAAQ,CAAQ;IAEvD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAA6B;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,SAAS;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA2B;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAc,EAAE,KAAoC;QACvE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;QAEhE,yBAAyB;QACzB,MAAM,WAAW,GAAQ,EAAE,CAAC;QAC5B,IAAI,KAAK,EAAE,MAAM;YAAE,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACrD,IAAI,KAAK,EAAE,GAAG,KAAK,SAAS;YAAE,WAAW,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QAE1D,8EAA8E;QAC9E,MAAM,OAAO,GAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAC5C,IAAI,KAAK,EAAE,MAAM,KAAK,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAA2B;QACvC,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,GAAG,EAAC,MAAM,EAAE,MAAM,EAAC,CAAA;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,SAAS;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,YAAY;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;CACJ"}
@@ -0,0 +1,73 @@
1
+ import { ApiTopic } from "@vertesia/api-fetch-client";
2
+ export class CollectionsApi extends ApiTopic {
3
+ constructor(parent) {
4
+ super(parent, "/api/v1/collections");
5
+ }
6
+ /**
7
+ * List collections
8
+ * @param payload
9
+ * @returns
10
+ */
11
+ list(payload = {}) {
12
+ return this.get("/", {
13
+ query: {
14
+ limit: 100,
15
+ offset: 0,
16
+ ...payload
17
+ }
18
+ });
19
+ }
20
+ /**
21
+ * Get the collection data without members
22
+ * @param collectionId
23
+ * @returns
24
+ */
25
+ retrieve(collectionId) {
26
+ return this.get(`/${collectionId}`);
27
+ }
28
+ create(payload) {
29
+ return this.post(`/`, {
30
+ payload
31
+ });
32
+ }
33
+ update(collectionId, payload) {
34
+ return this.put(`/${collectionId}`, {
35
+ payload
36
+ });
37
+ }
38
+ addMembers(collectionId, members) {
39
+ return this.post(`/${collectionId}/members`, {
40
+ payload: {
41
+ action: 'add',
42
+ members
43
+ }
44
+ });
45
+ }
46
+ listMembers(collectionId, payload) {
47
+ return this.get(`/${collectionId}/members`, {
48
+ query: {
49
+ ...payload
50
+ }
51
+ });
52
+ }
53
+ computeFacets(collectionId, query) {
54
+ return this.post(`/${collectionId}/facets`, {
55
+ payload: query
56
+ });
57
+ }
58
+ searchMembers(collectionId, payload) {
59
+ return this.post(`/${collectionId}/search`, { payload });
60
+ }
61
+ deleteMembers(collectionId, members) {
62
+ return this.post(`/${collectionId}/members`, {
63
+ payload: {
64
+ action: 'delete',
65
+ members
66
+ }
67
+ });
68
+ }
69
+ delete(id) {
70
+ return this.del(`/${id}`);
71
+ }
72
+ }
73
+ //# sourceMappingURL=CollectionsApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollectionsApi.js","sourceRoot":"","sources":["../../../src/store/CollectionsApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;AAKlE,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAExC,YAAY,MAAkB;QAC1B,KAAK,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,UAAmC,EAAE;QACtC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YACjB,KAAK,EAAE;gBACH,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,CAAC;gBACT,GAAG,OAAO;aACb;SACJ,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,YAAoB;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,OAAgC;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAClB,OAAO;SACV,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,YAAoB,EAAE,OAAyC;QAClE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,EAAE,EAAE;YAChC,OAAO;SACV,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CAAC,YAAoB,EAAE,OAAiB;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,UAAU,EAAE;YACzC,OAAO,EAAE;gBACL,MAAM,EAAE,KAAK;gBACb,OAAO;aACV;SACJ,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CAAC,YAAoB,EAAE,OAKjC;QACG,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,UAAU,EAAE;YACxC,KAAK,EAAE;gBACH,GAAG,OAAO;aACb;SACJ,CAAC,CAAC;IACP,CAAC;IAED,aAAa,CAAC,YAAoB,EAAE,KAAgC;QAChE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,SAAS,EAAE;YACxC,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC;IACP,CAAC;IAED,aAAa,CAAC,YAAoB,EAAE,OAA6B;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,aAAa,CAAC,YAAoB,EAAE,OAAiB;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,UAAU,EAAE;YACzC,OAAO,EAAE;gBACL,MAAM,EAAE,QAAQ;gBAChB,OAAO;aACV;SACJ,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,13 @@
1
+ import { ApiTopic } from "@vertesia/api-fetch-client";
2
+ import { EmbeddingsApi } from "./EmbeddingsApi.js";
3
+ /**
4
+ * @deprecated use EmbeddingsApi instead
5
+ * @see EmbeddingsApi
6
+ */
7
+ export class CommandsApi extends ApiTopic {
8
+ constructor(parent) {
9
+ super(parent, "/api/v1/commands");
10
+ }
11
+ embeddings = new EmbeddingsApi(this, "/embeddings");
12
+ }
13
+ //# sourceMappingURL=CommandsApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandsApi.js","sourceRoot":"","sources":["../../../src/store/CommandsApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,QAAQ;IAErC,YAAY,MAAkB;QAC1B,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,UAAU,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;CACvD"}
@@ -0,0 +1,25 @@
1
+ import { ApiTopic } from "@vertesia/api-fetch-client";
2
+ /**
3
+ * @since 0.52.0
4
+ */
5
+ export class EmbeddingsApi extends ApiTopic {
6
+ constructor(parent, basePath = "/api/v1/embeddings") {
7
+ super(parent, basePath);
8
+ }
9
+ async status(type) {
10
+ return this.get(type + "/status");
11
+ }
12
+ async activate(type, config) {
13
+ if (!config.environment) {
14
+ throw new Error("Invalid configuration: select environment");
15
+ }
16
+ return this.post(type + "/enable", { payload: config });
17
+ }
18
+ async disable(type) {
19
+ return this.post(type + "/disable");
20
+ }
21
+ async recalculate(type) {
22
+ return this.post(type + "/recalculate");
23
+ }
24
+ }
25
+ //# sourceMappingURL=EmbeddingsApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmbeddingsApi.js","sourceRoot":"","sources":["../../../src/store/EmbeddingsApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;AAQlE;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,QAAQ;IAEvC,YAAY,MAAkB,EAAE,WAAmB,oBAAoB;QACnE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAA6B;QACtC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAA6B,EAAE,MAA+C;QAEzF,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAA6B;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAA6B;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC;IAC5C,CAAC;CAEJ"}
@@ -0,0 +1,123 @@
1
+ import { ApiTopic } from "@vertesia/api-fetch-client";
2
+ import { StreamSource } from "../StreamSource.js";
3
+ export const MEMORIES_PREFIX = 'memories';
4
+ export function getMemoryFilePath(name) {
5
+ const nameWithExt = name.endsWith(".tar.gz") ? name : name + ".tar.gz";
6
+ return `${MEMORIES_PREFIX}/${nameWithExt}`;
7
+ }
8
+ export class FilesApi extends ApiTopic {
9
+ constructor(parent) {
10
+ super(parent, "/api/v1/files");
11
+ }
12
+ /**
13
+ * get the metadata of a blob given its URI. Supported URI are:
14
+ * starting with s3:// and gs://.
15
+ * For s3 blobs use #region to specify the region. Ex: s3://bucket/key#us-west-2
16
+ * @param uri
17
+ * @returns
18
+ */
19
+ getMetadata(uri) {
20
+ return this.get("/metadata", {
21
+ query: {
22
+ file: uri
23
+ }
24
+ });
25
+ }
26
+ /**
27
+ * Get or create a bucket for the project. If the bucket already exists, it does nothing.
28
+ * The bucket URI is returned.
29
+ * @returns
30
+ */
31
+ getOrCreateBucket() {
32
+ return this.post('/bucket');
33
+ }
34
+ getUploadUrl(payload) {
35
+ return this.post('/upload-url', {
36
+ payload
37
+ });
38
+ }
39
+ getDownloadUrl(file) {
40
+ return this.post('/download-url', {
41
+ payload: {
42
+ file
43
+ }
44
+ });
45
+ }
46
+ /**
47
+ * Upload content to a file and return the full path (including bucket name) of the uploaded file
48
+ * @param source
49
+ * @returns
50
+ */
51
+ async uploadFile(source) {
52
+ const isStream = source instanceof StreamSource;
53
+ const { url, path } = await this.getUploadUrl(source);
54
+ await fetch(url, {
55
+ method: 'PUT',
56
+ body: isStream ? source.stream : source,
57
+ //@ts-ignore: duplex is not in the types. See https://github.com/node-fetch/node-fetch/issues/1769
58
+ duplex: isStream ? "half" : undefined,
59
+ headers: {
60
+ 'Content-Type': source.type || 'application/gzip'
61
+ }
62
+ }).then((res) => {
63
+ if (res.ok) {
64
+ return res;
65
+ }
66
+ else {
67
+ console.log(res);
68
+ throw new Error(`Failed to upload file: ${res.statusText}`);
69
+ }
70
+ }).catch(err => {
71
+ console.error('Failed to upload file', err);
72
+ throw err;
73
+ });
74
+ return path;
75
+ }
76
+ async downloadFile(name) {
77
+ const { url } = await this.getDownloadUrl(name);
78
+ const res = await fetch(url, {
79
+ method: 'GET',
80
+ }).then((res) => {
81
+ if (res.ok) {
82
+ return res;
83
+ }
84
+ else if (res.status === 404) {
85
+ throw new Error(`File ${name} not found`); //TODO: type fetch error better with a fetch error class
86
+ }
87
+ else if (res.status === 403) {
88
+ throw new Error(`File ${name} is forbidden`);
89
+ }
90
+ else {
91
+ console.log(res);
92
+ throw new Error(`Failed to download file ${name}: ${res.statusText}`);
93
+ }
94
+ }).catch(err => {
95
+ console.error(`Failed to download file ${name}.`, err);
96
+ throw err;
97
+ });
98
+ if (!res.body) {
99
+ throw new Error(`No body in response while downloading memory pack ${name}`);
100
+ }
101
+ return res.body;
102
+ }
103
+ async uploadMemoryPack(source) {
104
+ const fileId = getMemoryFilePath(source.name);
105
+ const nameWithExt = source.name.endsWith(".tar.gz") ? source.name : source.name + ".tar.gz";
106
+ if (source instanceof File) {
107
+ let file = source;
108
+ return this.uploadFile(new StreamSource(file.stream(), nameWithExt, file.type, fileId));
109
+ }
110
+ else {
111
+ return this.uploadFile(new StreamSource(source.stream, nameWithExt, source.type, fileId));
112
+ }
113
+ }
114
+ async downloadMemoryPack(name, gunzip = false) {
115
+ let stream = await this.downloadFile(getMemoryFilePath(name));
116
+ if (gunzip) {
117
+ const ds = new DecompressionStream("gzip");
118
+ stream = stream.pipeThrough(ds);
119
+ }
120
+ return stream;
121
+ }
122
+ }
123
+ //# sourceMappingURL=FilesApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilesApi.js","sourceRoot":"","sources":["../../../src/store/FilesApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;AAE1C,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC;IACvE,OAAO,GAAG,eAAe,IAAI,WAAW,EAAE,CAAC;AAC/C,CAAC;AAGD,MAAM,OAAO,QAAS,SAAQ,QAAQ;IAElC,YAAY,MAAkB;QAC1B,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,GAAW;QAQnB,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;YACzB,KAAK,EAAE;gBACH,IAAI,EAAE,GAAG;aACZ;SACJ,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,OAA4B;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAC5B,OAAO;SACV,CAAC,CAAA;IACN,CAAC;IAED,cAAc,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAC9B,OAAO,EAAE;gBACL,IAAI;aACqB;SAChC,CAAC,CAAA;IACN,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,MAA2B;QACxC,MAAM,QAAQ,GAAG,MAAM,YAAY,YAAY,CAAC;QAChD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAEtD,MAAM,KAAK,CAAC,GAAG,EAAE;YACb,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YACvC,kGAAkG;YAClG,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACrC,OAAO,EAAE;gBACL,cAAc,EAAE,MAAM,CAAC,IAAI,IAAI,kBAAkB;aACpD;SACJ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAa,EAAE,EAAE;YACtB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACT,OAAO,GAAG,CAAC;YACf,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YAChE,CAAC;QACL,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;YAC5C,MAAM,GAAG,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY;QAC3B,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEhD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YACzB,MAAM,EAAE,KAAK;SAChB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAa,EAAE,EAAE;YACtB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACT,OAAO,GAAG,CAAC;YACf,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAC,CAAC,wDAAwD;YACvG,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,eAAe,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YAC1E,CAAC;QACL,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,2BAA2B,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;YACvD,MAAM,GAAG,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,qDAAqD,IAAI,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAA2B;QAC9C,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;QAC5F,IAAI,MAAM,YAAY,IAAI,EAAE,CAAC;YACzB,IAAI,IAAI,GAAG,MAAc,CAAC;YAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9F,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY,EAAE,SAAkB,KAAK;QAC1D,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}