@vertesia/client 0.80.1 → 0.81.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 (246) 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/InteractionCatalogApi.js +64 -0
  22. package/lib/cjs/InteractionCatalogApi.js.map +1 -0
  23. package/lib/cjs/InteractionOutput.js +300 -0
  24. package/lib/cjs/InteractionOutput.js.map +1 -0
  25. package/lib/cjs/InteractionResult.example.js +57 -0
  26. package/lib/cjs/InteractionResult.example.js.map +1 -0
  27. package/lib/cjs/InteractionsApi.js +243 -0
  28. package/lib/cjs/InteractionsApi.js.map +1 -0
  29. package/lib/cjs/ProjectsApi.js +53 -0
  30. package/lib/cjs/ProjectsApi.js.map +1 -0
  31. package/lib/cjs/PromptsApi.js +133 -0
  32. package/lib/cjs/PromptsApi.js.map +1 -0
  33. package/lib/cjs/RefsApi.js +14 -0
  34. package/lib/cjs/RefsApi.js.map +1 -0
  35. package/lib/cjs/RunsApi.js +113 -0
  36. package/lib/cjs/RunsApi.js.map +1 -0
  37. package/lib/cjs/SkillsApi.js +39 -0
  38. package/lib/cjs/SkillsApi.js.map +1 -0
  39. package/lib/cjs/StreamSource.js +17 -0
  40. package/lib/cjs/StreamSource.js.map +1 -0
  41. package/lib/cjs/TrainingApi.js +54 -0
  42. package/lib/cjs/TrainingApi.js.map +1 -0
  43. package/lib/cjs/UsersApi.js +13 -0
  44. package/lib/cjs/UsersApi.js.map +1 -0
  45. package/lib/cjs/client.js +351 -0
  46. package/lib/cjs/client.js.map +1 -0
  47. package/lib/cjs/execute.js +158 -0
  48. package/lib/cjs/execute.js.map +1 -0
  49. package/lib/cjs/index.js +22 -0
  50. package/lib/cjs/index.js.map +1 -0
  51. package/lib/cjs/nodejs/NodeStreamSource.js +45 -0
  52. package/lib/cjs/nodejs/NodeStreamSource.js.map +1 -0
  53. package/lib/cjs/nodejs/index.js +18 -0
  54. package/lib/cjs/nodejs/index.js.map +1 -0
  55. package/lib/cjs/package.json +3 -0
  56. package/lib/cjs/store/AnalyzeDocApi.js +56 -0
  57. package/lib/cjs/store/AnalyzeDocApi.js.map +1 -0
  58. package/lib/cjs/store/CollectionsApi.js +131 -0
  59. package/lib/cjs/store/CollectionsApi.js.map +1 -0
  60. package/lib/cjs/store/CommandsApi.js +17 -0
  61. package/lib/cjs/store/CommandsApi.js.map +1 -0
  62. package/lib/cjs/store/EmbeddingsApi.js +29 -0
  63. package/lib/cjs/store/EmbeddingsApi.js.map +1 -0
  64. package/lib/cjs/store/FilesApi.js +225 -0
  65. package/lib/cjs/store/FilesApi.js.map +1 -0
  66. package/lib/cjs/store/ObjectsApi.js +283 -0
  67. package/lib/cjs/store/ObjectsApi.js.map +1 -0
  68. package/lib/cjs/store/TypesApi.js +57 -0
  69. package/lib/cjs/store/TypesApi.js.map +1 -0
  70. package/lib/cjs/store/WorkersApi.js +16 -0
  71. package/lib/cjs/store/WorkersApi.js.map +1 -0
  72. package/lib/cjs/store/WorkflowsApi.js +425 -0
  73. package/lib/cjs/store/WorkflowsApi.js.map +1 -0
  74. package/lib/cjs/store/client.js +71 -0
  75. package/lib/cjs/store/client.js.map +1 -0
  76. package/lib/cjs/store/errors.js +11 -0
  77. package/lib/cjs/store/errors.js.map +1 -0
  78. package/lib/cjs/store/index.js +23 -0
  79. package/lib/cjs/store/index.js.map +1 -0
  80. package/lib/cjs/store/version.js +6 -0
  81. package/lib/cjs/store/version.js.map +1 -0
  82. package/lib/esm/AccountApi.js +82 -0
  83. package/lib/esm/AccountApi.js.map +1 -0
  84. package/lib/esm/AccountsApi.js +13 -0
  85. package/lib/esm/AccountsApi.js.map +1 -0
  86. package/lib/esm/AnalyticsApi.js +10 -0
  87. package/lib/esm/AnalyticsApi.js.map +1 -0
  88. package/lib/esm/ApiKeysApi.js +59 -0
  89. package/lib/esm/ApiKeysApi.js.map +1 -0
  90. package/lib/esm/AppsApi.js +116 -0
  91. package/lib/esm/AppsApi.js.map +1 -0
  92. package/lib/esm/CommandsApi.js +16 -0
  93. package/lib/esm/CommandsApi.js.map +1 -0
  94. package/lib/esm/EnvironmentsApi.js +55 -0
  95. package/lib/esm/EnvironmentsApi.js.map +1 -0
  96. package/lib/esm/GroupsApi.js +74 -0
  97. package/lib/esm/GroupsApi.js.map +1 -0
  98. package/lib/esm/IamApi.js +47 -0
  99. package/lib/esm/IamApi.js.map +1 -0
  100. package/lib/esm/InteractionBase.js +40 -0
  101. package/lib/esm/InteractionBase.js.map +1 -0
  102. package/lib/esm/InteractionCatalogApi.js +60 -0
  103. package/lib/esm/InteractionCatalogApi.js.map +1 -0
  104. package/lib/esm/InteractionOutput.js +293 -0
  105. package/lib/esm/InteractionOutput.js.map +1 -0
  106. package/lib/esm/InteractionResult.example.js +55 -0
  107. package/lib/esm/InteractionResult.example.js.map +1 -0
  108. package/lib/esm/InteractionsApi.js +240 -0
  109. package/lib/esm/InteractionsApi.js.map +1 -0
  110. package/lib/esm/ProjectsApi.js +50 -0
  111. package/lib/esm/ProjectsApi.js.map +1 -0
  112. package/lib/esm/PromptsApi.js +130 -0
  113. package/lib/esm/PromptsApi.js.map +1 -0
  114. package/lib/esm/RefsApi.js +10 -0
  115. package/lib/esm/RefsApi.js.map +1 -0
  116. package/lib/esm/RunsApi.js +109 -0
  117. package/lib/esm/RunsApi.js.map +1 -0
  118. package/lib/esm/SkillsApi.js +36 -0
  119. package/lib/esm/SkillsApi.js.map +1 -0
  120. package/lib/esm/StreamSource.js +13 -0
  121. package/lib/esm/StreamSource.js.map +1 -0
  122. package/lib/esm/TrainingApi.js +51 -0
  123. package/lib/esm/TrainingApi.js.map +1 -0
  124. package/lib/esm/UsersApi.js +10 -0
  125. package/lib/esm/UsersApi.js.map +1 -0
  126. package/lib/esm/client.js +342 -0
  127. package/lib/esm/client.js.map +1 -0
  128. package/lib/esm/execute.js +118 -0
  129. package/lib/esm/execute.js.map +1 -0
  130. package/lib/esm/index.js +6 -0
  131. package/lib/esm/index.js.map +1 -0
  132. package/lib/esm/nodejs/NodeStreamSource.js +41 -0
  133. package/lib/esm/nodejs/NodeStreamSource.js.map +1 -0
  134. package/lib/esm/nodejs/index.js +2 -0
  135. package/lib/esm/nodejs/index.js.map +1 -0
  136. package/lib/esm/store/AnalyzeDocApi.js +52 -0
  137. package/lib/esm/store/AnalyzeDocApi.js.map +1 -0
  138. package/lib/esm/store/CollectionsApi.js +127 -0
  139. package/lib/esm/store/CollectionsApi.js.map +1 -0
  140. package/lib/esm/store/CommandsApi.js +13 -0
  141. package/lib/esm/store/CommandsApi.js.map +1 -0
  142. package/lib/esm/store/EmbeddingsApi.js +25 -0
  143. package/lib/esm/store/EmbeddingsApi.js.map +1 -0
  144. package/lib/esm/store/FilesApi.js +219 -0
  145. package/lib/esm/store/FilesApi.js.map +1 -0
  146. package/lib/esm/store/ObjectsApi.js +279 -0
  147. package/lib/esm/store/ObjectsApi.js.map +1 -0
  148. package/lib/esm/store/TypesApi.js +53 -0
  149. package/lib/esm/store/TypesApi.js.map +1 -0
  150. package/lib/esm/store/WorkersApi.js +12 -0
  151. package/lib/esm/store/WorkersApi.js.map +1 -0
  152. package/lib/esm/store/WorkflowsApi.js +419 -0
  153. package/lib/esm/store/WorkflowsApi.js.map +1 -0
  154. package/lib/esm/store/client.js +67 -0
  155. package/lib/esm/store/client.js.map +1 -0
  156. package/lib/esm/store/errors.js +7 -0
  157. package/lib/esm/store/errors.js.map +1 -0
  158. package/lib/esm/store/index.js +7 -0
  159. package/lib/esm/store/index.js.map +1 -0
  160. package/lib/esm/store/version.js +3 -0
  161. package/lib/esm/store/version.js.map +1 -0
  162. package/lib/tsconfig.tsbuildinfo +1 -0
  163. package/lib/types/AccountApi.d.ts +59 -0
  164. package/lib/types/AccountApi.d.ts.map +1 -0
  165. package/lib/types/AccountsApi.d.ts +7 -0
  166. package/lib/types/AccountsApi.d.ts.map +1 -0
  167. package/lib/types/AnalyticsApi.d.ts +6 -0
  168. package/lib/types/AnalyticsApi.d.ts.map +1 -0
  169. package/lib/types/ApiKeysApi.d.ts +42 -0
  170. package/lib/types/ApiKeysApi.d.ts.map +1 -0
  171. package/lib/types/AppsApi.d.ts +65 -0
  172. package/lib/types/AppsApi.d.ts.map +1 -0
  173. package/lib/types/CommandsApi.d.ts +10 -0
  174. package/lib/types/CommandsApi.d.ts.map +1 -0
  175. package/lib/types/EnvironmentsApi.d.ts +30 -0
  176. package/lib/types/EnvironmentsApi.d.ts.map +1 -0
  177. package/lib/types/GroupsApi.d.ts +65 -0
  178. package/lib/types/GroupsApi.d.ts.map +1 -0
  179. package/lib/types/IamApi.d.ts +41 -0
  180. package/lib/types/IamApi.d.ts.map +1 -0
  181. package/lib/types/InteractionBase.d.ts +22 -0
  182. package/lib/types/InteractionBase.d.ts.map +1 -0
  183. package/lib/types/InteractionCatalogApi.d.ts +36 -0
  184. package/lib/types/InteractionCatalogApi.d.ts.map +1 -0
  185. package/lib/types/InteractionOutput.d.ts +174 -0
  186. package/lib/types/InteractionOutput.d.ts.map +1 -0
  187. package/lib/types/InteractionResult.example.d.ts +6 -0
  188. package/lib/types/InteractionResult.example.d.ts.map +1 -0
  189. package/lib/types/InteractionsApi.d.ts +165 -0
  190. package/lib/types/InteractionsApi.d.ts.map +1 -0
  191. package/lib/types/ProjectsApi.d.ts +18 -0
  192. package/lib/types/ProjectsApi.d.ts.map +1 -0
  193. package/lib/types/PromptsApi.d.ts +106 -0
  194. package/lib/types/PromptsApi.d.ts.map +1 -0
  195. package/lib/types/RefsApi.d.ts +6 -0
  196. package/lib/types/RefsApi.d.ts.map +1 -0
  197. package/lib/types/RunsApi.d.ts +79 -0
  198. package/lib/types/RunsApi.d.ts.map +1 -0
  199. package/lib/types/SkillsApi.d.ts +26 -0
  200. package/lib/types/SkillsApi.d.ts.map +1 -0
  201. package/lib/types/StreamSource.d.ts +7 -0
  202. package/lib/types/StreamSource.d.ts.map +1 -0
  203. package/lib/types/TrainingApi.d.ts +27 -0
  204. package/lib/types/TrainingApi.d.ts.map +1 -0
  205. package/lib/types/UsersApi.d.ts +6 -0
  206. package/lib/types/UsersApi.d.ts.map +1 -0
  207. package/lib/types/client.d.ts +125 -0
  208. package/lib/types/client.d.ts.map +1 -0
  209. package/lib/types/execute.d.ts +37 -0
  210. package/lib/types/execute.d.ts.map +1 -0
  211. package/lib/types/index.d.ts +10 -0
  212. package/lib/types/index.d.ts.map +1 -0
  213. package/lib/types/nodejs/NodeStreamSource.d.ts +9 -0
  214. package/lib/types/nodejs/NodeStreamSource.d.ts.map +1 -0
  215. package/lib/types/nodejs/index.d.ts +1 -0
  216. package/lib/types/nodejs/index.d.ts.map +1 -0
  217. package/lib/types/store/AnalyzeDocApi.d.ts +17 -0
  218. package/lib/types/store/AnalyzeDocApi.d.ts.map +1 -0
  219. package/lib/types/store/CollectionsApi.d.ts +82 -0
  220. package/lib/types/store/CollectionsApi.d.ts.map +1 -0
  221. package/lib/types/store/CommandsApi.d.ts +10 -0
  222. package/lib/types/store/CommandsApi.d.ts.map +1 -0
  223. package/lib/types/store/EmbeddingsApi.d.ts +12 -0
  224. package/lib/types/store/EmbeddingsApi.d.ts.map +1 -0
  225. package/lib/types/store/FilesApi.d.ts +103 -0
  226. package/lib/types/store/FilesApi.d.ts.map +1 -0
  227. package/lib/types/store/ObjectsApi.d.ts +117 -0
  228. package/lib/types/store/ObjectsApi.d.ts.map +1 -0
  229. package/lib/types/store/TypesApi.d.ts +23 -0
  230. package/lib/types/store/TypesApi.d.ts.map +1 -0
  231. package/lib/types/store/WorkersApi.d.ts +6 -0
  232. package/lib/types/store/WorkersApi.d.ts.map +1 -0
  233. package/lib/types/store/WorkflowsApi.d.ts +71 -0
  234. package/lib/types/store/WorkflowsApi.d.ts.map +1 -0
  235. package/lib/types/store/client.d.ts +35 -0
  236. package/lib/types/store/client.d.ts.map +1 -0
  237. package/lib/types/store/errors.d.ts +4 -0
  238. package/lib/types/store/errors.d.ts.map +1 -0
  239. package/lib/types/store/index.d.ts +6 -0
  240. package/lib/types/store/index.d.ts.map +1 -0
  241. package/lib/types/store/version.d.ts +2 -0
  242. package/lib/types/store/version.d.ts.map +1 -0
  243. package/lib/vertesia-client.js +2 -0
  244. package/lib/vertesia-client.js.map +1 -0
  245. package/package.json +4 -4
  246. package/src/store/WorkflowsApi.ts +12 -0
@@ -0,0 +1,342 @@
1
+ import { AbstractFetchClient } from "@vertesia/api-fetch-client";
2
+ import AccountApi from "./AccountApi.js";
3
+ import AccountsApi from "./AccountsApi.js";
4
+ import AnalyticsApi from "./AnalyticsApi.js";
5
+ import { ApiKeysApi } from "./ApiKeysApi.js";
6
+ import AppsApi from "./AppsApi.js";
7
+ import CommandsApi from "./CommandsApi.js";
8
+ import EnvironmentsApi from "./EnvironmentsApi.js";
9
+ import { IamApi } from "./IamApi.js";
10
+ import InteractionsApi from "./InteractionsApi.js";
11
+ import ProjectsApi from "./ProjectsApi.js";
12
+ import SkillsApi from "./SkillsApi.js";
13
+ import PromptsApi from "./PromptsApi.js";
14
+ import { RefsApi } from "./RefsApi.js";
15
+ import { RunsApi } from "./RunsApi.js";
16
+ import { ZenoClient } from "./store/client.js";
17
+ import TrainingApi from "./TrainingApi.js";
18
+ import UsersApi from "./UsersApi.js";
19
+ import { VERSION, VERSION_HEADER } from "./store/version.js";
20
+ /**
21
+ * 1 min threshold constant in ms
22
+ */
23
+ const EXPIRATION_THRESHOLD = 60000;
24
+ export class VertesiaClient extends AbstractFetchClient {
25
+ /**
26
+ * The JWT token linked to the API KEY (sk or pk)
27
+ */
28
+ _jwt = null;
29
+ /**
30
+ * The store client
31
+ */
32
+ store;
33
+ /**
34
+ * The session name will be sent when executing an interaction as a tag
35
+ */
36
+ sessionTags;
37
+ /**
38
+ * tokenServerUrl
39
+ */
40
+ tokenServerUrl;
41
+ /**
42
+ * Create a client from the given token.
43
+ * If you already have the decoded token you can pass it as the second argument to avoid decodinf it again.
44
+ *
45
+ * @param token the raw JWT token
46
+ * @param payload the decoded JWT token as an AuthTokenPayload - optional
47
+ */
48
+ static async fromAuthToken(token, payload) {
49
+ if (!payload) {
50
+ payload = decodeJWT(token);
51
+ }
52
+ const endpoints = decodeEndpoints(payload.endpoints);
53
+ return await new VertesiaClient({
54
+ serverUrl: endpoints.studio,
55
+ storeUrl: endpoints.store,
56
+ tokenServerUrl: payload.iss,
57
+ }).withApiKey(token);
58
+ }
59
+ static decodeEndpoints() { }
60
+ constructor(opts = {
61
+ site: "api.vertesia.io",
62
+ }) {
63
+ let studioServerUrl;
64
+ let zenoServerUrl;
65
+ if (opts.serverUrl) {
66
+ studioServerUrl = opts.serverUrl;
67
+ }
68
+ else if (opts.site) {
69
+ studioServerUrl = `https://${opts.site}`;
70
+ }
71
+ else {
72
+ throw new Error("Parameter 'site' or 'serverUrl' is required for VertesiaClient");
73
+ }
74
+ if (opts.storeUrl) {
75
+ zenoServerUrl = opts.storeUrl;
76
+ }
77
+ else if (opts.site) {
78
+ zenoServerUrl = `https://${opts.site}`;
79
+ }
80
+ else {
81
+ throw new Error("Parameter 'site' or 'storeUrl' is required for VertesiaClient");
82
+ }
83
+ super(studioServerUrl);
84
+ if (opts.tokenServerUrl) {
85
+ this.tokenServerUrl = opts.tokenServerUrl;
86
+ }
87
+ else if (opts.site) {
88
+ // Preview uses production STS, staging uses its own STS
89
+ if (opts.site === "api-preview.vertesia.io" || opts.site === "api.vertesia.io") {
90
+ this.tokenServerUrl = "https://sts.vertesia.io";
91
+ }
92
+ else {
93
+ this.tokenServerUrl = `https://${opts.site.replace(/^api/, "sts")}`;
94
+ }
95
+ }
96
+ else if (opts.serverUrl || opts.storeUrl) {
97
+ // Determine STS URL based on environment in serverUrl or storeUrl
98
+ const urlToCheck = opts.serverUrl || opts.storeUrl || "";
99
+ try {
100
+ const url = new URL(urlToCheck);
101
+ // Check for environment patterns
102
+ if (url.hostname.includes("-production.")) {
103
+ // zeno-server-production.api.vertesia.io -> sts.vertesia.io
104
+ this.tokenServerUrl = "https://sts.vertesia.io";
105
+ }
106
+ else if (url.hostname.includes("-preview.")) {
107
+ // zeno-server-preview.api.vertesia.io -> sts.vertesia.io
108
+ this.tokenServerUrl = "https://sts.vertesia.io";
109
+ }
110
+ else if (url.hostname === "api.vertesia.io") {
111
+ this.tokenServerUrl = "https://sts.vertesia.io";
112
+ }
113
+ else if (url.hostname === "api-preview.vertesia.io") {
114
+ this.tokenServerUrl = "https://sts.vertesia.io";
115
+ }
116
+ else if (url.hostname === "api-staging.vertesia.io") {
117
+ this.tokenServerUrl = "https://sts-staging.vertesia.io";
118
+ }
119
+ else if (url.hostname.startsWith("api")) {
120
+ // Generic api.* pattern replacement
121
+ url.hostname = url.hostname.replace(/^api/, "sts");
122
+ this.tokenServerUrl = url.toString();
123
+ }
124
+ else {
125
+ // Default to staging for everything else
126
+ this.tokenServerUrl = "https://sts-staging.vertesia.io";
127
+ }
128
+ }
129
+ catch (e) {
130
+ // Default to staging if URL parsing fails
131
+ this.tokenServerUrl = "https://sts-staging.vertesia.io";
132
+ }
133
+ }
134
+ else {
135
+ // Default to staging if no URL provided
136
+ this.tokenServerUrl = "https://sts-staging.vertesia.io";
137
+ }
138
+ this.store = new ZenoClient({
139
+ serverUrl: zenoServerUrl,
140
+ tokenServerUrl: this.tokenServerUrl,
141
+ apikey: opts.apikey,
142
+ onRequest: opts.onRequest,
143
+ onResponse: opts.onResponse,
144
+ });
145
+ if (opts.apikey) {
146
+ this.withApiKey(opts.apikey);
147
+ }
148
+ this.onRequest = opts.onRequest;
149
+ this.onResponse = opts.onResponse;
150
+ this.sessionTags = opts.sessionTags;
151
+ }
152
+ withApiVersion(version) {
153
+ if (!version) {
154
+ delete this.headers[VERSION_HEADER];
155
+ }
156
+ else {
157
+ this.headers[VERSION_HEADER] = String(version);
158
+ }
159
+ return this;
160
+ }
161
+ /**
162
+ * Overwrite to keep store and composable clients synchronized on the auth callback
163
+ * @param authCb
164
+ * @returns
165
+ */
166
+ withAuthCallback(authCb) {
167
+ this.store.withAuthCallback(authCb);
168
+ return super.withAuthCallback(authCb);
169
+ }
170
+ async withApiKey(apiKey) {
171
+ return this.withAuthCallback(apiKey
172
+ ? async () => {
173
+ if (!isApiKey(apiKey)) {
174
+ return `Bearer ${apiKey}`;
175
+ }
176
+ if (isTokenExpired(this._jwt)) {
177
+ const jwt = await this.getAuthToken(apiKey);
178
+ this._jwt = jwt.token;
179
+ }
180
+ return `Bearer ${this._jwt}`;
181
+ }
182
+ : undefined);
183
+ }
184
+ async getRawJWT() {
185
+ if (!this._jwt && this._auth) {
186
+ const auth = await this._auth();
187
+ if (!this._jwt) {
188
+ // the _jwt may be set by the auth callback
189
+ this._jwt = auth.trim().split(" ")[1]; // remove Bearer prefix
190
+ }
191
+ }
192
+ return this._jwt || null;
193
+ }
194
+ async getDecodedJWT() {
195
+ const jwt = await this.getRawJWT();
196
+ return jwt ? decodeJWT(jwt) : null;
197
+ }
198
+ async getProject() {
199
+ const jwt = await this.getDecodedJWT();
200
+ return jwt?.project || null;
201
+ }
202
+ async getAccount() {
203
+ const jwt = await this.getDecodedJWT();
204
+ return jwt?.account || null;
205
+ }
206
+ /**
207
+ * Alias for store.workflows
208
+ */
209
+ get workflows() {
210
+ return this.store.workflows;
211
+ }
212
+ /**
213
+ * Alias for store.objects
214
+ */
215
+ get objects() {
216
+ return this.store.objects;
217
+ }
218
+ get files() {
219
+ return this.store.files;
220
+ }
221
+ /**
222
+ * Alias for store.types
223
+ */
224
+ get types() {
225
+ return this.store.types;
226
+ }
227
+ get storeUrl() {
228
+ return this.store.baseUrl;
229
+ }
230
+ /**
231
+ *
232
+ * Generate a token for use with other Vertesia's services
233
+ *
234
+ * @returns AuthTokenResponse
235
+ */
236
+ async getAuthToken(token) {
237
+ return fetch(`${this.tokenServerUrl}/token/issue`, {
238
+ method: "POST",
239
+ headers: {
240
+ "Content-Type": "application/json",
241
+ Authorization: `Bearer ${token}`,
242
+ },
243
+ })
244
+ .then((response) => response.json())
245
+ .then((data) => data)
246
+ .catch((error) => {
247
+ console.error(`Error fetching token from ${this.tokenServerUrl}:`, { error });
248
+ throw error;
249
+ });
250
+ }
251
+ get initialHeaders() {
252
+ return {
253
+ ...super.initialHeaders,
254
+ [VERSION_HEADER]: VERSION
255
+ };
256
+ }
257
+ projects = new ProjectsApi(this);
258
+ environments = new EnvironmentsApi(this);
259
+ interactions = new InteractionsApi(this);
260
+ skills = new SkillsApi(this);
261
+ prompts = new PromptsApi(this);
262
+ runs = new RunsApi(this);
263
+ account = new AccountApi(this);
264
+ accounts = new AccountsApi(this);
265
+ apikeys = new ApiKeysApi(this);
266
+ analytics = new AnalyticsApi(this);
267
+ training = new TrainingApi(this);
268
+ users = new UsersApi(this);
269
+ iam = new IamApi(this);
270
+ refs = new RefsApi(this);
271
+ commands = new CommandsApi(this);
272
+ apps = new AppsApi(this);
273
+ }
274
+ function isApiKey(apiKey) {
275
+ return apiKey.startsWith("pk-") || apiKey.startsWith("sk-");
276
+ }
277
+ function isTokenExpired(token) {
278
+ if (!token) {
279
+ return true;
280
+ }
281
+ const decoded = decodeJWT(token);
282
+ const exp = decoded.exp;
283
+ const currentTime = Date.now();
284
+ return currentTime <= exp * 1000 - EXPIRATION_THRESHOLD;
285
+ }
286
+ export function decodeJWT(jwt) {
287
+ const payloadBase64 = jwt.split(".")[1];
288
+ const decodedJson = base64UrlDecode(payloadBase64);
289
+ return JSON.parse(decodedJson);
290
+ }
291
+ function base64UrlDecode(input) {
292
+ // Convert base64url to base64
293
+ const base64 = input
294
+ .replace(/-/g, "+")
295
+ .replace(/_/g, "/")
296
+ // Pad with '=' to make length a multiple of 4
297
+ .padEnd(Math.ceil(input.length / 4) * 4, "=");
298
+ if (typeof Buffer !== "undefined") {
299
+ // Node.js
300
+ return Buffer.from(base64, "base64").toString("utf-8");
301
+ }
302
+ else if (typeof atob !== "undefined" &&
303
+ typeof TextDecoder !== "undefined") {
304
+ // Browser
305
+ const binary = atob(base64);
306
+ const bytes = Uint8Array.from(binary, (c) => c.charCodeAt(0));
307
+ // decode to utf8
308
+ return new TextDecoder().decode(bytes);
309
+ }
310
+ else {
311
+ throw new Error("No base64 decoder available");
312
+ }
313
+ }
314
+ export function decodeEndpoints(endpoints) {
315
+ if (!endpoints) {
316
+ return getEndpointsFromDomain("api.vertesia.io");
317
+ }
318
+ if (typeof endpoints === "string") {
319
+ return getEndpointsFromDomain(endpoints);
320
+ }
321
+ else {
322
+ return endpoints;
323
+ }
324
+ }
325
+ function getEndpointsFromDomain(domain) {
326
+ if (domain === "local") {
327
+ return {
328
+ studio: `http://localhost:8091`,
329
+ store: `http://localhost:8092`,
330
+ token: process.env.STS_URL ?? "https://sts-staging.vertesia.io",
331
+ };
332
+ }
333
+ else {
334
+ const url = `https://${domain}`;
335
+ return {
336
+ studio: url,
337
+ store: url,
338
+ token: url.replace("api", "sts"),
339
+ };
340
+ }
341
+ }
342
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG7D;;GAEG;AACH,MAAM,oBAAoB,GAAG,KAAK,CAAC;AA6BnC,MAAM,OAAO,cAAe,SAAQ,mBAAmC;IACnE;;OAEG;IACH,IAAI,GAAkB,IAAI,CAAC;IAE3B;;OAEG;IACH,KAAK,CAAa;IAElB;;OAEG;IACH,WAAW,CAAqB;IAEhC;;OAEG;IACH,cAAc,CAAS;IAEvB;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,OAA0B;QAChE,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,OAAO,MAAM,IAAI,cAAc,CAAC;YAC5B,SAAS,EAAE,SAAS,CAAC,MAAM;YAC3B,QAAQ,EAAE,SAAS,CAAC,KAAK;YACzB,cAAc,EAAE,OAAO,CAAC,GAAG;SAC9B,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,eAAe,KAAI,CAAC;IAE3B,YACI,OAA4B;QACxB,IAAI,EAAE,iBAAiB;KAC1B;QAED,IAAI,eAAuB,CAAC;QAC5B,IAAI,aAAqB,CAAC;QAE1B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACnB,eAAe,GAAG,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7C,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CACX,gEAAgE,CACnE,CAAC;QACN,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACnB,aAAa,GAAG,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3C,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CACX,+DAA+D,CAClE,CAAC;QACN,CAAC;QAED,KAAK,CAAC,eAAe,CAAC,CAAC;QAEvB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC9C,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACnB,wDAAwD;YACxD,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAyB,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBAC7E,IAAI,CAAC,cAAc,GAAG,yBAAyB,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,cAAc,GAAG,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YACxE,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,kEAAkE;YAClE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;YACzD,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;gBAChC,iCAAiC;gBACjC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBACxC,4DAA4D;oBAC5D,IAAI,CAAC,cAAc,GAAG,yBAAyB,CAAC;gBACpD,CAAC;qBAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC5C,yDAAyD;oBACzD,IAAI,CAAC,cAAc,GAAG,yBAAyB,CAAC;gBACpD,CAAC;qBAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,iBAAiB,EAAE,CAAC;oBAC5C,IAAI,CAAC,cAAc,GAAG,yBAAyB,CAAC;gBACpD,CAAC;qBAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,yBAAyB,EAAE,CAAC;oBACpD,IAAI,CAAC,cAAc,GAAG,yBAAyB,CAAC;gBACpD,CAAC;qBAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,yBAAyB,EAAE,CAAC;oBACpD,IAAI,CAAC,cAAc,GAAG,iCAAiC,CAAC;gBAC5D,CAAC;qBAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxC,oCAAoC;oBACpC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBACnD,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACJ,yCAAyC;oBACzC,IAAI,CAAC,cAAc,GAAG,iCAAiC,CAAC;gBAC5D,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,0CAA0C;gBAC1C,IAAI,CAAC,cAAc,GAAG,iCAAiC,CAAC;YAC5D,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,wCAAwC;YACxC,IAAI,CAAC,cAAc,GAAG,iCAAiC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC;YACxB,SAAS,EAAE,aAAa;YACxB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACxC,CAAC;IAED,cAAc,CAAC,OAA+B;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,MAAuC;QACpD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAqB;QAClC,OAAO,IAAI,CAAC,gBAAgB,CACxB,MAAM;YACF,CAAC,CAAC,KAAK,IAAI,EAAE;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACpB,OAAO,UAAU,MAAM,EAAE,CAAC;gBAC9B,CAAC;gBAED,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBAC5C,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;gBAC1B,CAAC;gBACD,OAAO,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,CAAC;YACH,CAAC,CAAC,SAAS,CAClB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,SAAS;QACX,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACb,2CAA2C;gBAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB;YAClE,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,aAAa;QACf,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACnC,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,OAAO,GAAG,EAAE,OAAO,IAAI,IAAI,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,OAAO,GAAG,EAAE,OAAO,IAAI,IAAI,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,KAAc;QAC7B,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc,cAAc,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,KAAK,EAAE;aACnC;SACJ,CAAC;aACG,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;aACnC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAyB,CAAC;aACzC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,OAAO,CAAC,KAAK,CACT,6BAA6B,IAAI,CAAC,cAAc,GAAG,EACnD,EAAE,KAAK,EAAE,CACZ,CAAC;YACF,MAAM,KAAK,CAAC;QAChB,CAAC,CAAC,CAAC;IACX,CAAC;IAED,IAAI,cAAc;QACd,OAAO;YACH,GAAG,KAAK,CAAC,cAAc;YACvB,CAAC,cAAc,CAAC,EAAE,OAAO;SAC5B,CAAA;IACL,CAAC;IAED,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3B,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,SAAS,QAAQ,CAAC,MAAc;IAC5B,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CAAC,KAAoB;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,OAAO,WAAW,IAAI,GAAG,GAAG,IAAI,GAAG,oBAAoB,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW;IACjC,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IAClC,8BAA8B;IAC9B,MAAM,MAAM,GAAG,KAAK;SACf,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;QACnB,8CAA8C;SAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAElD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAChC,UAAU;QACV,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;SAAM,IACH,OAAO,IAAI,KAAK,WAAW;QAC3B,OAAO,WAAW,KAAK,WAAW,EACpC,CAAC;QACC,UAAU;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,iBAAiB;QACjB,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACnD,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAC3B,SAAsD;IAEtD,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACJ,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAc;IAC1C,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO;YACH,MAAM,EAAE,uBAAuB;YAC/B,KAAK,EAAE,uBAAuB;YAC9B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,iCAAiC;SAClE,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG,GAAG,WAAW,MAAM,EAAE,CAAC;QAChC,OAAO;YACH,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACnC,CAAC;IACN,CAAC;AACL,CAAC"}
@@ -0,0 +1,118 @@
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
+ export async function checkRateLimit(client, payload) {
114
+ return await client.post('/api/v1/execute/rate-limit/request', {
115
+ payload
116
+ });
117
+ }
118
+ //# 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,6 @@
1
+ export * from './client.js';
2
+ export * from './InteractionBase.js';
3
+ export * from './InteractionOutput.js';
4
+ export * from "./store/index.js";
5
+ export * from "./StreamSource.js";
6
+ //# 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;AACrC,cAAc,wBAAwB,CAAC;AAKvC,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,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"}