@vertesia/client 0.24.0-dev.202601221707

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 (339) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +110 -0
  3. package/lib/cjs/AccountApi.js +85 -0
  4. package/lib/cjs/AccountApi.js.map +1 -0
  5. package/lib/cjs/AccountsApi.js +16 -0
  6. package/lib/cjs/AccountsApi.js.map +1 -0
  7. package/lib/cjs/AnalyticsApi.js +41 -0
  8. package/lib/cjs/AnalyticsApi.js.map +1 -0
  9. package/lib/cjs/ApiKeysApi.js +63 -0
  10. package/lib/cjs/ApiKeysApi.js.map +1 -0
  11. package/lib/cjs/AppsApi.js +119 -0
  12. package/lib/cjs/AppsApi.js.map +1 -0
  13. package/lib/cjs/CommandsApi.js +19 -0
  14. package/lib/cjs/CommandsApi.js.map +1 -0
  15. package/lib/cjs/EnvironmentsApi.js +72 -0
  16. package/lib/cjs/EnvironmentsApi.js.map +1 -0
  17. package/lib/cjs/GroupsApi.js +78 -0
  18. package/lib/cjs/GroupsApi.js.map +1 -0
  19. package/lib/cjs/IamApi.js +53 -0
  20. package/lib/cjs/IamApi.js.map +1 -0
  21. package/lib/cjs/InteractionBase.js +44 -0
  22. package/lib/cjs/InteractionBase.js.map +1 -0
  23. package/lib/cjs/InteractionCatalogApi.js +64 -0
  24. package/lib/cjs/InteractionCatalogApi.js.map +1 -0
  25. package/lib/cjs/InteractionOutput.js +300 -0
  26. package/lib/cjs/InteractionOutput.js.map +1 -0
  27. package/lib/cjs/InteractionResult.example.js +57 -0
  28. package/lib/cjs/InteractionResult.example.js.map +1 -0
  29. package/lib/cjs/InteractionsApi.js +262 -0
  30. package/lib/cjs/InteractionsApi.js.map +1 -0
  31. package/lib/cjs/MCPOAuthApi.js +62 -0
  32. package/lib/cjs/MCPOAuthApi.js.map +1 -0
  33. package/lib/cjs/ProjectsApi.js +72 -0
  34. package/lib/cjs/ProjectsApi.js.map +1 -0
  35. package/lib/cjs/PromptsApi.js +133 -0
  36. package/lib/cjs/PromptsApi.js.map +1 -0
  37. package/lib/cjs/RefsApi.js +14 -0
  38. package/lib/cjs/RefsApi.js.map +1 -0
  39. package/lib/cjs/RunsApi.js +113 -0
  40. package/lib/cjs/RunsApi.js.map +1 -0
  41. package/lib/cjs/SkillsApi.js +39 -0
  42. package/lib/cjs/SkillsApi.js.map +1 -0
  43. package/lib/cjs/StreamSource.js +17 -0
  44. package/lib/cjs/StreamSource.js.map +1 -0
  45. package/lib/cjs/TrainingApi.js +54 -0
  46. package/lib/cjs/TrainingApi.js.map +1 -0
  47. package/lib/cjs/UsersApi.js +13 -0
  48. package/lib/cjs/UsersApi.js.map +1 -0
  49. package/lib/cjs/client.js +360 -0
  50. package/lib/cjs/client.js.map +1 -0
  51. package/lib/cjs/execute.js +158 -0
  52. package/lib/cjs/execute.js.map +1 -0
  53. package/lib/cjs/index.js +22 -0
  54. package/lib/cjs/index.js.map +1 -0
  55. package/lib/cjs/nodejs/NodeStreamSource.js +45 -0
  56. package/lib/cjs/nodejs/NodeStreamSource.js.map +1 -0
  57. package/lib/cjs/nodejs/index.js +18 -0
  58. package/lib/cjs/nodejs/index.js.map +1 -0
  59. package/lib/cjs/package.json +3 -0
  60. package/lib/cjs/store/AnalyzeDocApi.js +56 -0
  61. package/lib/cjs/store/AnalyzeDocApi.js.map +1 -0
  62. package/lib/cjs/store/CollectionsApi.js +131 -0
  63. package/lib/cjs/store/CollectionsApi.js.map +1 -0
  64. package/lib/cjs/store/CommandsApi.js +17 -0
  65. package/lib/cjs/store/CommandsApi.js.map +1 -0
  66. package/lib/cjs/store/DashboardApi.js +182 -0
  67. package/lib/cjs/store/DashboardApi.js.map +1 -0
  68. package/lib/cjs/store/DataApi.js +433 -0
  69. package/lib/cjs/store/DataApi.js.map +1 -0
  70. package/lib/cjs/store/EmailApi.js +103 -0
  71. package/lib/cjs/store/EmailApi.js.map +1 -0
  72. package/lib/cjs/store/EmbeddingsApi.js +29 -0
  73. package/lib/cjs/store/EmbeddingsApi.js.map +1 -0
  74. package/lib/cjs/store/FilesApi.js +237 -0
  75. package/lib/cjs/store/FilesApi.js.map +1 -0
  76. package/lib/cjs/store/ObjectsApi.js +314 -0
  77. package/lib/cjs/store/ObjectsApi.js.map +1 -0
  78. package/lib/cjs/store/PendingAsksApi.js +43 -0
  79. package/lib/cjs/store/PendingAsksApi.js.map +1 -0
  80. package/lib/cjs/store/SchedulesApi.js +103 -0
  81. package/lib/cjs/store/SchedulesApi.js.map +1 -0
  82. package/lib/cjs/store/ToolsApi.js +21 -0
  83. package/lib/cjs/store/ToolsApi.js.map +1 -0
  84. package/lib/cjs/store/TypesApi.js +57 -0
  85. package/lib/cjs/store/TypesApi.js.map +1 -0
  86. package/lib/cjs/store/WorkersApi.js +16 -0
  87. package/lib/cjs/store/WorkersApi.js.map +1 -0
  88. package/lib/cjs/store/WorkflowsApi.js +596 -0
  89. package/lib/cjs/store/WorkflowsApi.js.map +1 -0
  90. package/lib/cjs/store/client.js +81 -0
  91. package/lib/cjs/store/client.js.map +1 -0
  92. package/lib/cjs/store/errors.js +11 -0
  93. package/lib/cjs/store/errors.js.map +1 -0
  94. package/lib/cjs/store/index.js +27 -0
  95. package/lib/cjs/store/index.js.map +1 -0
  96. package/lib/cjs/store/version.js +6 -0
  97. package/lib/cjs/store/version.js.map +1 -0
  98. package/lib/esm/AccountApi.js +82 -0
  99. package/lib/esm/AccountApi.js.map +1 -0
  100. package/lib/esm/AccountsApi.js +13 -0
  101. package/lib/esm/AccountsApi.js.map +1 -0
  102. package/lib/esm/AnalyticsApi.js +38 -0
  103. package/lib/esm/AnalyticsApi.js.map +1 -0
  104. package/lib/esm/ApiKeysApi.js +59 -0
  105. package/lib/esm/ApiKeysApi.js.map +1 -0
  106. package/lib/esm/AppsApi.js +116 -0
  107. package/lib/esm/AppsApi.js.map +1 -0
  108. package/lib/esm/CommandsApi.js +16 -0
  109. package/lib/esm/CommandsApi.js.map +1 -0
  110. package/lib/esm/EnvironmentsApi.js +69 -0
  111. package/lib/esm/EnvironmentsApi.js.map +1 -0
  112. package/lib/esm/GroupsApi.js +74 -0
  113. package/lib/esm/GroupsApi.js.map +1 -0
  114. package/lib/esm/IamApi.js +47 -0
  115. package/lib/esm/IamApi.js.map +1 -0
  116. package/lib/esm/InteractionBase.js +40 -0
  117. package/lib/esm/InteractionBase.js.map +1 -0
  118. package/lib/esm/InteractionCatalogApi.js +60 -0
  119. package/lib/esm/InteractionCatalogApi.js.map +1 -0
  120. package/lib/esm/InteractionOutput.js +293 -0
  121. package/lib/esm/InteractionOutput.js.map +1 -0
  122. package/lib/esm/InteractionResult.example.js +55 -0
  123. package/lib/esm/InteractionResult.example.js.map +1 -0
  124. package/lib/esm/InteractionsApi.js +259 -0
  125. package/lib/esm/InteractionsApi.js.map +1 -0
  126. package/lib/esm/MCPOAuthApi.js +59 -0
  127. package/lib/esm/MCPOAuthApi.js.map +1 -0
  128. package/lib/esm/ProjectsApi.js +69 -0
  129. package/lib/esm/ProjectsApi.js.map +1 -0
  130. package/lib/esm/PromptsApi.js +130 -0
  131. package/lib/esm/PromptsApi.js.map +1 -0
  132. package/lib/esm/RefsApi.js +10 -0
  133. package/lib/esm/RefsApi.js.map +1 -0
  134. package/lib/esm/RunsApi.js +109 -0
  135. package/lib/esm/RunsApi.js.map +1 -0
  136. package/lib/esm/SkillsApi.js +36 -0
  137. package/lib/esm/SkillsApi.js.map +1 -0
  138. package/lib/esm/StreamSource.js +13 -0
  139. package/lib/esm/StreamSource.js.map +1 -0
  140. package/lib/esm/TrainingApi.js +51 -0
  141. package/lib/esm/TrainingApi.js.map +1 -0
  142. package/lib/esm/UsersApi.js +10 -0
  143. package/lib/esm/UsersApi.js.map +1 -0
  144. package/lib/esm/client.js +351 -0
  145. package/lib/esm/client.js.map +1 -0
  146. package/lib/esm/execute.js +118 -0
  147. package/lib/esm/execute.js.map +1 -0
  148. package/lib/esm/index.js +6 -0
  149. package/lib/esm/index.js.map +1 -0
  150. package/lib/esm/nodejs/NodeStreamSource.js +41 -0
  151. package/lib/esm/nodejs/NodeStreamSource.js.map +1 -0
  152. package/lib/esm/nodejs/index.js +2 -0
  153. package/lib/esm/nodejs/index.js.map +1 -0
  154. package/lib/esm/store/AnalyzeDocApi.js +52 -0
  155. package/lib/esm/store/AnalyzeDocApi.js.map +1 -0
  156. package/lib/esm/store/CollectionsApi.js +127 -0
  157. package/lib/esm/store/CollectionsApi.js.map +1 -0
  158. package/lib/esm/store/CommandsApi.js +13 -0
  159. package/lib/esm/store/CommandsApi.js.map +1 -0
  160. package/lib/esm/store/DashboardApi.js +178 -0
  161. package/lib/esm/store/DashboardApi.js.map +1 -0
  162. package/lib/esm/store/DataApi.js +429 -0
  163. package/lib/esm/store/DataApi.js.map +1 -0
  164. package/lib/esm/store/EmailApi.js +99 -0
  165. package/lib/esm/store/EmailApi.js.map +1 -0
  166. package/lib/esm/store/EmbeddingsApi.js +25 -0
  167. package/lib/esm/store/EmbeddingsApi.js.map +1 -0
  168. package/lib/esm/store/FilesApi.js +231 -0
  169. package/lib/esm/store/FilesApi.js.map +1 -0
  170. package/lib/esm/store/ObjectsApi.js +309 -0
  171. package/lib/esm/store/ObjectsApi.js.map +1 -0
  172. package/lib/esm/store/PendingAsksApi.js +39 -0
  173. package/lib/esm/store/PendingAsksApi.js.map +1 -0
  174. package/lib/esm/store/SchedulesApi.js +99 -0
  175. package/lib/esm/store/SchedulesApi.js.map +1 -0
  176. package/lib/esm/store/ToolsApi.js +17 -0
  177. package/lib/esm/store/ToolsApi.js.map +1 -0
  178. package/lib/esm/store/TypesApi.js +53 -0
  179. package/lib/esm/store/TypesApi.js.map +1 -0
  180. package/lib/esm/store/WorkersApi.js +12 -0
  181. package/lib/esm/store/WorkersApi.js.map +1 -0
  182. package/lib/esm/store/WorkflowsApi.js +590 -0
  183. package/lib/esm/store/WorkflowsApi.js.map +1 -0
  184. package/lib/esm/store/client.js +77 -0
  185. package/lib/esm/store/client.js.map +1 -0
  186. package/lib/esm/store/errors.js +7 -0
  187. package/lib/esm/store/errors.js.map +1 -0
  188. package/lib/esm/store/index.js +11 -0
  189. package/lib/esm/store/index.js.map +1 -0
  190. package/lib/esm/store/version.js +3 -0
  191. package/lib/esm/store/version.js.map +1 -0
  192. package/lib/tsconfig.tsbuildinfo +1 -0
  193. package/lib/types/AccountApi.d.ts +59 -0
  194. package/lib/types/AccountApi.d.ts.map +1 -0
  195. package/lib/types/AccountsApi.d.ts +7 -0
  196. package/lib/types/AccountsApi.d.ts.map +1 -0
  197. package/lib/types/AnalyticsApi.d.ts +11 -0
  198. package/lib/types/AnalyticsApi.d.ts.map +1 -0
  199. package/lib/types/ApiKeysApi.d.ts +42 -0
  200. package/lib/types/ApiKeysApi.d.ts.map +1 -0
  201. package/lib/types/AppsApi.d.ts +65 -0
  202. package/lib/types/AppsApi.d.ts.map +1 -0
  203. package/lib/types/CommandsApi.d.ts +10 -0
  204. package/lib/types/CommandsApi.d.ts.map +1 -0
  205. package/lib/types/EnvironmentsApi.d.ts +40 -0
  206. package/lib/types/EnvironmentsApi.d.ts.map +1 -0
  207. package/lib/types/GroupsApi.d.ts +65 -0
  208. package/lib/types/GroupsApi.d.ts.map +1 -0
  209. package/lib/types/IamApi.d.ts +41 -0
  210. package/lib/types/IamApi.d.ts.map +1 -0
  211. package/lib/types/InteractionBase.d.ts +22 -0
  212. package/lib/types/InteractionBase.d.ts.map +1 -0
  213. package/lib/types/InteractionCatalogApi.d.ts +36 -0
  214. package/lib/types/InteractionCatalogApi.d.ts.map +1 -0
  215. package/lib/types/InteractionOutput.d.ts +174 -0
  216. package/lib/types/InteractionOutput.d.ts.map +1 -0
  217. package/lib/types/InteractionResult.example.d.ts +6 -0
  218. package/lib/types/InteractionResult.example.d.ts.map +1 -0
  219. package/lib/types/InteractionsApi.d.ts +183 -0
  220. package/lib/types/InteractionsApi.d.ts.map +1 -0
  221. package/lib/types/MCPOAuthApi.d.ts +45 -0
  222. package/lib/types/MCPOAuthApi.d.ts.map +1 -0
  223. package/lib/types/ProjectsApi.d.ts +28 -0
  224. package/lib/types/ProjectsApi.d.ts.map +1 -0
  225. package/lib/types/PromptsApi.d.ts +106 -0
  226. package/lib/types/PromptsApi.d.ts.map +1 -0
  227. package/lib/types/RefsApi.d.ts +6 -0
  228. package/lib/types/RefsApi.d.ts.map +1 -0
  229. package/lib/types/RunsApi.d.ts +79 -0
  230. package/lib/types/RunsApi.d.ts.map +1 -0
  231. package/lib/types/SkillsApi.d.ts +26 -0
  232. package/lib/types/SkillsApi.d.ts.map +1 -0
  233. package/lib/types/StreamSource.d.ts +7 -0
  234. package/lib/types/StreamSource.d.ts.map +1 -0
  235. package/lib/types/TrainingApi.d.ts +27 -0
  236. package/lib/types/TrainingApi.d.ts.map +1 -0
  237. package/lib/types/UsersApi.d.ts +6 -0
  238. package/lib/types/UsersApi.d.ts.map +1 -0
  239. package/lib/types/client.d.ts +136 -0
  240. package/lib/types/client.d.ts.map +1 -0
  241. package/lib/types/execute.d.ts +37 -0
  242. package/lib/types/execute.d.ts.map +1 -0
  243. package/lib/types/index.d.ts +10 -0
  244. package/lib/types/index.d.ts.map +1 -0
  245. package/lib/types/nodejs/NodeStreamSource.d.ts +9 -0
  246. package/lib/types/nodejs/NodeStreamSource.d.ts.map +1 -0
  247. package/lib/types/nodejs/index.d.ts +1 -0
  248. package/lib/types/nodejs/index.d.ts.map +1 -0
  249. package/lib/types/store/AnalyzeDocApi.d.ts +17 -0
  250. package/lib/types/store/AnalyzeDocApi.d.ts.map +1 -0
  251. package/lib/types/store/CollectionsApi.d.ts +82 -0
  252. package/lib/types/store/CollectionsApi.d.ts.map +1 -0
  253. package/lib/types/store/CommandsApi.d.ts +10 -0
  254. package/lib/types/store/CommandsApi.d.ts.map +1 -0
  255. package/lib/types/store/DashboardApi.d.ts +149 -0
  256. package/lib/types/store/DashboardApi.d.ts.map +1 -0
  257. package/lib/types/store/DataApi.d.ts +392 -0
  258. package/lib/types/store/DataApi.d.ts.map +1 -0
  259. package/lib/types/store/EmailApi.d.ts +185 -0
  260. package/lib/types/store/EmailApi.d.ts.map +1 -0
  261. package/lib/types/store/EmbeddingsApi.d.ts +12 -0
  262. package/lib/types/store/EmbeddingsApi.d.ts.map +1 -0
  263. package/lib/types/store/FilesApi.d.ts +110 -0
  264. package/lib/types/store/FilesApi.d.ts.map +1 -0
  265. package/lib/types/store/ObjectsApi.d.ts +139 -0
  266. package/lib/types/store/ObjectsApi.d.ts.map +1 -0
  267. package/lib/types/store/PendingAsksApi.d.ts +79 -0
  268. package/lib/types/store/PendingAsksApi.d.ts.map +1 -0
  269. package/lib/types/store/SchedulesApi.d.ts +89 -0
  270. package/lib/types/store/SchedulesApi.d.ts.map +1 -0
  271. package/lib/types/store/ToolsApi.d.ts +13 -0
  272. package/lib/types/store/ToolsApi.d.ts.map +1 -0
  273. package/lib/types/store/TypesApi.d.ts +23 -0
  274. package/lib/types/store/TypesApi.d.ts.map +1 -0
  275. package/lib/types/store/WorkersApi.d.ts +6 -0
  276. package/lib/types/store/WorkersApi.d.ts.map +1 -0
  277. package/lib/types/store/WorkflowsApi.d.ts +167 -0
  278. package/lib/types/store/WorkflowsApi.d.ts.map +1 -0
  279. package/lib/types/store/client.d.ts +45 -0
  280. package/lib/types/store/client.d.ts.map +1 -0
  281. package/lib/types/store/errors.d.ts +4 -0
  282. package/lib/types/store/errors.d.ts.map +1 -0
  283. package/lib/types/store/index.d.ts +10 -0
  284. package/lib/types/store/index.d.ts.map +1 -0
  285. package/lib/types/store/version.d.ts +2 -0
  286. package/lib/types/store/version.d.ts.map +1 -0
  287. package/lib/vertesia-client.js +2 -0
  288. package/lib/vertesia-client.js.map +1 -0
  289. package/package.json +71 -0
  290. package/src/AccountApi.ts +96 -0
  291. package/src/AccountsApi.ts +22 -0
  292. package/src/AnalyticsApi.ts +36 -0
  293. package/src/ApiKeysApi.ts +67 -0
  294. package/src/AppsApi.ts +134 -0
  295. package/src/CommandsApi.ts +23 -0
  296. package/src/EnvironmentsApi.ts +94 -0
  297. package/src/GroupsApi.ts +92 -0
  298. package/src/IamApi.ts +70 -0
  299. package/src/InteractionBase.ts +44 -0
  300. package/src/InteractionCatalogApi.ts +72 -0
  301. package/src/InteractionOutput.test.ts +305 -0
  302. package/src/InteractionOutput.ts +328 -0
  303. package/src/InteractionResult.example.ts +72 -0
  304. package/src/InteractionsApi.ts +308 -0
  305. package/src/MCPOAuthApi.ts +67 -0
  306. package/src/ProjectsApi.ts +85 -0
  307. package/src/PromptsApi.ts +160 -0
  308. package/src/RefsApi.ts +18 -0
  309. package/src/RunsApi.ts +151 -0
  310. package/src/SkillsApi.ts +46 -0
  311. package/src/StreamSource.ts +3 -0
  312. package/src/TrainingApi.ts +71 -0
  313. package/src/UsersApi.ts +18 -0
  314. package/src/client.test.ts +99 -0
  315. package/src/client.ts +419 -0
  316. package/src/execute.ts +126 -0
  317. package/src/index.ts +10 -0
  318. package/src/nodejs/NodeStreamSource.ts +43 -0
  319. package/src/nodejs/index.ts +1 -0
  320. package/src/store/AnalyzeDocApi.ts +61 -0
  321. package/src/store/CollectionsApi.ts +166 -0
  322. package/src/store/CommandsApi.ts +15 -0
  323. package/src/store/DashboardApi.ts +216 -0
  324. package/src/store/DataApi.ts +516 -0
  325. package/src/store/EmailApi.ts +211 -0
  326. package/src/store/EmbeddingsApi.ts +39 -0
  327. package/src/store/FilesApi.ts +288 -0
  328. package/src/store/ObjectsApi.ts +432 -0
  329. package/src/store/PendingAsksApi.ts +98 -0
  330. package/src/store/SchedulesApi.ts +114 -0
  331. package/src/store/ToolsApi.ts +19 -0
  332. package/src/store/TypesApi.ts +65 -0
  333. package/src/store/WorkersApi.ts +17 -0
  334. package/src/store/WorkflowsApi.ts +752 -0
  335. package/src/store/client.ts +95 -0
  336. package/src/store/errors.ts +7 -0
  337. package/src/store/index.ts +11 -0
  338. package/src/store/version.ts +2 -0
  339. package/tsconfig.dist.json +20 -0
@@ -0,0 +1,590 @@
1
+ import { ApiTopic } from "@vertesia/api-fetch-client";
2
+ import { AgentMessageType, parseMessage, toAgentMessage, } 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
+ const payload = { reason };
35
+ return this.post(`/runs/${workflowId}/${runId}/actions/terminate`, { payload });
36
+ }
37
+ cancel(workflowId, runId, reason) {
38
+ const payload = { reason };
39
+ return this.post(`/runs/${workflowId}/${runId}/actions/cancel`, { payload });
40
+ }
41
+ /**
42
+ * Query a workflow for its current state.
43
+ * The workflow must have a query handler registered with the given name.
44
+ * @param workflowId The workflow ID
45
+ * @param runId The run ID
46
+ * @param queryName The name of the query to execute (e.g., "BatchAgentProgress")
47
+ * @returns The query result
48
+ */
49
+ query(workflowId, runId, queryName) {
50
+ return this.get(`/runs/${workflowId}/${runId}/query/${queryName}`);
51
+ }
52
+ execute(name, payload = {}) {
53
+ return this.post(`/execute/${name}`, { payload });
54
+ }
55
+ postMessage(runId, msg) {
56
+ if (!runId) {
57
+ throw new Error("runId is required");
58
+ }
59
+ return this.post(`/runs/${runId}/updates`, { payload: msg });
60
+ }
61
+ /**
62
+ * Retrieve historical messages for a workflow run.
63
+ * Returns messages in AgentMessage format for backward compatibility.
64
+ * This endpoint returns gzip-compressed responses for large payloads (> 3KB).
65
+ */
66
+ async retrieveMessages(workflowId, runId, since) {
67
+ const query = { since };
68
+ const response = await this.get(`/runs/${workflowId}/${runId}/updates`, { query });
69
+ // Convert compact messages to AgentMessage for backward compatibility
70
+ return response.messages.map((m) => toAgentMessage(m, runId));
71
+ }
72
+ /**
73
+ * Stream workflow messages in real-time via SSE.
74
+ *
75
+ * This method fetches historical messages via GET /updates (gzip-compressed for large payloads)
76
+ * then connects to SSE for real-time updates only (skipHistory=true).
77
+ *
78
+ * This approach provides better performance for conversations with large historical messages
79
+ * since HTTP responses are compressed while SSE streams cannot be compressed.
80
+ */
81
+ async streamMessages(workflowId, runId, onMessage, since) {
82
+ return new Promise(async (resolve, reject) => {
83
+ let reconnectAttempts = 0;
84
+ let lastMessageTimestamp = since || 0;
85
+ let isClosed = false;
86
+ let currentSse = null;
87
+ let interval = null;
88
+ const maxReconnectAttempts = 10;
89
+ const baseDelay = 1000; // 1 second base delay
90
+ const maxDelay = 30000; // 30 seconds max delay
91
+ const calculateBackoffDelay = (attempts) => {
92
+ const exponentialDelay = Math.min(baseDelay * Math.pow(2, attempts), maxDelay);
93
+ // Add jitter to prevent thundering herd
94
+ const jitter = Math.random() * 0.1 * exponentialDelay;
95
+ return exponentialDelay + jitter;
96
+ };
97
+ const cleanup = () => {
98
+ if (interval) {
99
+ clearInterval(interval);
100
+ interval = null;
101
+ }
102
+ if (currentSse) {
103
+ currentSse.close();
104
+ currentSse = null;
105
+ }
106
+ };
107
+ const exit = (payload) => {
108
+ if (!isClosed) {
109
+ isClosed = true;
110
+ cleanup();
111
+ resolve(payload);
112
+ }
113
+ };
114
+ // 1. Fetch historical messages via GET /updates (gzip-compressed if > 3KB)
115
+ // This is more efficient than receiving historical over uncompressed SSE
116
+ try {
117
+ const historical = await this.retrieveMessages(workflowId, runId, since);
118
+ for (const msg of historical) {
119
+ // Update timestamp for SSE connection
120
+ lastMessageTimestamp = Math.max(lastMessageTimestamp, msg.timestamp || 0);
121
+ // Deliver historical messages to consumer
122
+ if (onMessage) {
123
+ onMessage(msg, exit);
124
+ }
125
+ // Check if workflow already completed
126
+ const workstreamId = msg.workstream_id || 'main';
127
+ const streamIsOver = msg.type === AgentMessageType.TERMINATED ||
128
+ (msg.type === AgentMessageType.COMPLETE && workstreamId === 'main');
129
+ if (streamIsOver) {
130
+ console.log("Workflow already completed in historical messages");
131
+ resolve(null);
132
+ return;
133
+ }
134
+ }
135
+ }
136
+ catch (err) {
137
+ console.warn("Failed to fetch historical messages, continuing with SSE:", err);
138
+ // Continue to SSE - it will send historical if skipHistory is not set
139
+ }
140
+ // 2. Connect to SSE for real-time updates only (skipHistory=true)
141
+ const setupStream = async (isReconnect = false) => {
142
+ if (isClosed)
143
+ return;
144
+ try {
145
+ const EventSourceImpl = await EventSourceProvider();
146
+ const client = this.client;
147
+ const streamUrl = new URL(client.workflows.baseUrl + `/runs/${workflowId}/${runId}/stream`);
148
+ // Use the timestamp of the last received message for reconnection
149
+ if (lastMessageTimestamp > 0) {
150
+ streamUrl.searchParams.set("since", lastMessageTimestamp.toString());
151
+ }
152
+ // Skip historical messages - we already fetched them via GET /updates
153
+ streamUrl.searchParams.set("skipHistory", "true");
154
+ const bearerToken = client._auth ? await client._auth() : undefined;
155
+ if (!bearerToken) {
156
+ reject(new Error("No auth token available"));
157
+ return;
158
+ }
159
+ const token = bearerToken.split(" ")[1];
160
+ streamUrl.searchParams.set("access_token", token);
161
+ if (isReconnect) {
162
+ console.log(`Reconnecting to SSE stream for run ${runId} (attempt ${reconnectAttempts + 1}/${maxReconnectAttempts})`);
163
+ }
164
+ const sse = new EventSourceImpl(streamUrl.href);
165
+ currentSse = sse;
166
+ // Prevent Node from exiting prematurely
167
+ interval = setInterval(() => { }, 1000);
168
+ sse.onopen = () => {
169
+ if (isReconnect) {
170
+ console.log(`Successfully reconnected to SSE stream for run ${runId}`);
171
+ }
172
+ // Reset reconnect attempts on successful connection
173
+ reconnectAttempts = 0;
174
+ };
175
+ sse.onmessage = (ev) => {
176
+ if (!ev.data || ev.data.startsWith(":")) {
177
+ console.log("Received comment or heartbeat; ignoring it.: ", ev.data);
178
+ return;
179
+ }
180
+ try {
181
+ // Parse message using parseMessage() which handles both compact and legacy formats
182
+ const compactMessage = parseMessage(ev.data);
183
+ // Update last message timestamp for reconnection (use ts field or current time)
184
+ if (compactMessage.ts) {
185
+ lastMessageTimestamp = Math.max(lastMessageTimestamp, compactMessage.ts);
186
+ }
187
+ else {
188
+ lastMessageTimestamp = Date.now();
189
+ }
190
+ // Convert to AgentMessage for consumers (they shouldn't need to know about compact format)
191
+ if (onMessage) {
192
+ const agentMessage = toAgentMessage(compactMessage, runId);
193
+ onMessage(agentMessage, exit);
194
+ }
195
+ // Get workstream ID (defaults to 'main' if not set)
196
+ const workstreamId = compactMessage.w || 'main';
197
+ const streamIsOver = compactMessage.t === AgentMessageType.TERMINATED ||
198
+ (compactMessage.t === AgentMessageType.COMPLETE && workstreamId === 'main');
199
+ // Only close the stream when the main workstream completes or terminates
200
+ if (streamIsOver) {
201
+ console.log("Closing stream due to COMPLETE message from main workstream");
202
+ if (!isClosed) {
203
+ isClosed = true;
204
+ cleanup();
205
+ resolve(null);
206
+ }
207
+ }
208
+ else if (compactMessage.t === AgentMessageType.COMPLETE) {
209
+ console.log(`Received COMPLETE message from non-main workstream: ${workstreamId}, keeping stream open`);
210
+ }
211
+ }
212
+ catch (err) {
213
+ console.error("Failed to parse SSE message:", err, ev.data);
214
+ }
215
+ };
216
+ sse.onerror = (err) => {
217
+ if (isClosed)
218
+ return;
219
+ console.warn(`SSE stream error for run ${runId}:`, err);
220
+ cleanup();
221
+ // Check if we should attempt reconnection
222
+ if (reconnectAttempts < maxReconnectAttempts) {
223
+ const delay = calculateBackoffDelay(reconnectAttempts);
224
+ console.log(`Attempting to reconnect in ${delay}ms (attempt ${reconnectAttempts + 1}/${maxReconnectAttempts})`);
225
+ reconnectAttempts++;
226
+ setTimeout(() => {
227
+ if (!isClosed) {
228
+ setupStream(true);
229
+ }
230
+ }, delay);
231
+ }
232
+ else {
233
+ console.error(`Failed to reconnect to SSE stream for run ${runId} after ${maxReconnectAttempts} attempts`);
234
+ isClosed = true;
235
+ reject(new Error(`SSE connection failed after ${maxReconnectAttempts} reconnection attempts`));
236
+ }
237
+ };
238
+ }
239
+ catch (err) {
240
+ console.error("Error setting up SSE stream:", err);
241
+ if (reconnectAttempts < maxReconnectAttempts) {
242
+ const delay = calculateBackoffDelay(reconnectAttempts);
243
+ reconnectAttempts++;
244
+ setTimeout(() => {
245
+ if (!isClosed) {
246
+ setupStream(true);
247
+ }
248
+ }, delay);
249
+ }
250
+ else {
251
+ reject(err);
252
+ }
253
+ }
254
+ };
255
+ // Start the async setup process
256
+ setupStream(false);
257
+ // Return cleanup function for external cancellation
258
+ return () => {
259
+ isClosed = true;
260
+ cleanup();
261
+ };
262
+ });
263
+ }
264
+ /**
265
+ * Stream workflow messages via WebSocket (for mobile/React Native clients)
266
+ * @param workflowId The workflow ID
267
+ * @param runId The run ID
268
+ * @param onMessage Callback for incoming messages (CompactMessage format)
269
+ * @param since Optional timestamp to resume from
270
+ * @returns Promise that resolves with cleanup function and sendSignal helper
271
+ */
272
+ async streamMessagesWS(workflowId, runId, onMessage, since) {
273
+ return new Promise((resolve, reject) => {
274
+ let reconnectAttempts = 0;
275
+ const maxReconnectAttempts = 10;
276
+ const baseDelay = 1000;
277
+ const maxDelay = 30000;
278
+ let ws = null;
279
+ let lastMessageTimestamp = since || 0;
280
+ let isClosed = false;
281
+ const calculateBackoffDelay = (attempts) => {
282
+ const exponentialDelay = Math.min(baseDelay * Math.pow(2, attempts), maxDelay);
283
+ const jitter = Math.random() * 0.1 * exponentialDelay;
284
+ return exponentialDelay + jitter;
285
+ };
286
+ const connect = async () => {
287
+ if (isClosed)
288
+ return;
289
+ try {
290
+ const client = this.client;
291
+ const wsUrl = new URL(client.workflows.baseUrl + `/runs/${workflowId}/${runId}/ws`);
292
+ // Replace http/https with ws/wss
293
+ wsUrl.protocol = wsUrl.protocol.replace('http', 'ws');
294
+ // Add query parameters
295
+ if (lastMessageTimestamp > 0) {
296
+ wsUrl.searchParams.set('since', lastMessageTimestamp.toString());
297
+ }
298
+ const bearerToken = client._auth ? await client._auth() : undefined;
299
+ if (!bearerToken) {
300
+ reject(new Error('No auth token available'));
301
+ return;
302
+ }
303
+ const token = bearerToken.split(' ')[1];
304
+ wsUrl.searchParams.set('access_token', token);
305
+ if (reconnectAttempts > 0) {
306
+ console.log(`Reconnecting to WebSocket for run ${runId} (attempt ${reconnectAttempts + 1}/${maxReconnectAttempts})`);
307
+ }
308
+ ws = new WebSocket(wsUrl.href);
309
+ ws.onopen = () => {
310
+ if (reconnectAttempts > 0) {
311
+ console.log(`Successfully reconnected to WebSocket for run ${runId}`);
312
+ }
313
+ reconnectAttempts = 0;
314
+ // Resolve with helpers on first successful connection
315
+ if (!isClosed) {
316
+ resolve({
317
+ cleanup: () => {
318
+ isClosed = true;
319
+ if (ws) {
320
+ ws.close();
321
+ ws = null;
322
+ }
323
+ },
324
+ sendSignal: (signalName, data) => {
325
+ if (ws?.readyState === WebSocket.OPEN) {
326
+ const message = {
327
+ type: 'signal',
328
+ signalName,
329
+ data,
330
+ requestId: Date.now()
331
+ };
332
+ ws.send(JSON.stringify(message));
333
+ }
334
+ else {
335
+ console.warn('WebSocket not open, cannot send signal');
336
+ }
337
+ }
338
+ });
339
+ }
340
+ };
341
+ ws.onmessage = (event) => {
342
+ try {
343
+ const rawMessage = JSON.parse(event.data);
344
+ // Handle control messages (pong, ack, error)
345
+ if ('type' in rawMessage && typeof rawMessage.type === 'string') {
346
+ if (rawMessage.type === 'pong') {
347
+ console.debug('Received pong');
348
+ return;
349
+ }
350
+ else if (rawMessage.type === 'ack') {
351
+ console.debug('Signal acknowledged', rawMessage);
352
+ return;
353
+ }
354
+ else if (rawMessage.type === 'error') {
355
+ console.error('WebSocket error message', rawMessage);
356
+ return;
357
+ }
358
+ }
359
+ // Parse agent message (handles both compact and legacy formats)
360
+ const message = parseMessage(rawMessage);
361
+ // Update timestamp for reconnection
362
+ if (message.ts) {
363
+ lastMessageTimestamp = Math.max(lastMessageTimestamp, message.ts);
364
+ }
365
+ else {
366
+ lastMessageTimestamp = Date.now();
367
+ }
368
+ if (onMessage)
369
+ onMessage(message);
370
+ // Get workstream ID (defaults to 'main' if not set)
371
+ const workstreamId = message.w || 'main';
372
+ // Check for stream completion
373
+ const streamIsOver = message.t === AgentMessageType.TERMINATED ||
374
+ (message.t === AgentMessageType.COMPLETE && workstreamId === 'main');
375
+ if (streamIsOver) {
376
+ console.log('Closing WebSocket due to workflow completion');
377
+ isClosed = true;
378
+ if (ws) {
379
+ ws.close();
380
+ ws = null;
381
+ }
382
+ }
383
+ }
384
+ catch (err) {
385
+ console.error('Failed to parse WebSocket message', err);
386
+ }
387
+ };
388
+ ws.onerror = (err) => {
389
+ console.error('WebSocket error', err);
390
+ };
391
+ ws.onclose = () => {
392
+ if (!isClosed && reconnectAttempts < maxReconnectAttempts) {
393
+ const delay = calculateBackoffDelay(reconnectAttempts);
394
+ console.log(`WebSocket closed, reconnecting in ${delay}ms (attempt ${reconnectAttempts + 1}/${maxReconnectAttempts})`);
395
+ reconnectAttempts++;
396
+ setTimeout(connect, delay);
397
+ }
398
+ else if (reconnectAttempts >= maxReconnectAttempts) {
399
+ reject(new Error(`WebSocket connection failed after ${maxReconnectAttempts} attempts`));
400
+ }
401
+ };
402
+ }
403
+ catch (err) {
404
+ console.error('Error setting up WebSocket', err);
405
+ if (reconnectAttempts < maxReconnectAttempts) {
406
+ const delay = calculateBackoffDelay(reconnectAttempts);
407
+ reconnectAttempts++;
408
+ setTimeout(connect, delay);
409
+ }
410
+ else {
411
+ reject(err);
412
+ }
413
+ }
414
+ };
415
+ connect();
416
+ });
417
+ }
418
+ /**
419
+ * Ingest telemetry events for a workflow run.
420
+ * Workers use this to send telemetry to zeno-server for BigQuery storage.
421
+ */
422
+ ingestEvents(workflowId, runId, events) {
423
+ return this.post(`/runs/${workflowId}/${runId}/events`, {
424
+ payload: { events },
425
+ });
426
+ }
427
+ // ========================================================================
428
+ // Analytics API
429
+ // ========================================================================
430
+ /**
431
+ * Get workflow analytics summary.
432
+ * Returns overall metrics including token usage, success rates, and run counts.
433
+ */
434
+ getAnalyticsSummary(query = {}) {
435
+ return this.post('/analytics/summary', { payload: query });
436
+ }
437
+ /**
438
+ * Get token usage analytics.
439
+ * Returns token consumption metrics by model, agent, tool, or over time.
440
+ */
441
+ getTokenUsageAnalytics(query = {}) {
442
+ return this.post('/analytics/tokens', { payload: query });
443
+ }
444
+ /**
445
+ * Get LLM latency analytics.
446
+ * Returns duration/latency metrics for LLM calls.
447
+ */
448
+ getLlmLatencyAnalytics(query = {}) {
449
+ return this.post('/analytics/latency/llm', { payload: query });
450
+ }
451
+ /**
452
+ * Get tool latency analytics.
453
+ * Returns duration/latency metrics for tool calls.
454
+ */
455
+ getToolLatencyAnalytics(query = {}) {
456
+ return this.post('/analytics/latency/tools', { payload: query });
457
+ }
458
+ /**
459
+ * Get agent/workflow latency analytics.
460
+ * Returns duration metrics for complete workflow runs.
461
+ */
462
+ getAgentLatencyAnalytics(query = {}) {
463
+ return this.post('/analytics/latency/agents', { payload: query });
464
+ }
465
+ /**
466
+ * Get error analytics.
467
+ * Returns error rates, types, and trends.
468
+ */
469
+ getErrorAnalytics(query = {}) {
470
+ return this.post('/analytics/errors', { payload: query });
471
+ }
472
+ /**
473
+ * Get tool usage analytics.
474
+ * Returns tool invocation counts, success rates, and performance metrics.
475
+ */
476
+ getToolAnalytics(query = {}) {
477
+ return this.post('/analytics/tools', { payload: query });
478
+ }
479
+ /**
480
+ * Get tool parameter analytics.
481
+ * Returns parameter value distributions for a specific tool.
482
+ */
483
+ getToolParameterAnalytics(query) {
484
+ return this.post('/analytics/tools/parameters', { payload: query });
485
+ }
486
+ /**
487
+ * Get available filter options for analytics.
488
+ * Returns unique agents, environments, and models from telemetry data.
489
+ */
490
+ getAnalyticsFilterOptions(query = {}) {
491
+ return this.post('/analytics/filter-options', { payload: query });
492
+ }
493
+ /**
494
+ * Get average prompt size (input tokens) by agent for startConversation calls.
495
+ * This represents the initial prompt + tools size.
496
+ */
497
+ getPromptSizeAnalytics(query = {}) {
498
+ return this.post('/analytics/prompt-size', { payload: query });
499
+ }
500
+ /**
501
+ * Get top principals (users/API keys) who started the most agent runs.
502
+ * Returns the top N principals sorted by run count descending.
503
+ */
504
+ getTopPrincipalsAnalytics(query = {}) {
505
+ return this.post('/analytics/top-principals', { payload: query });
506
+ }
507
+ /**
508
+ * Get agent run distribution - how many runs per agent/interaction type.
509
+ * Returns the top N agents sorted by run count descending.
510
+ */
511
+ getRunsByAgentAnalytics(query = {}) {
512
+ return this.post('/analytics/runs-by-agent', { payload: query });
513
+ }
514
+ /**
515
+ * Get time to first response analytics.
516
+ * Measures the time from agent start to the completion of the first LLM call.
517
+ * Returns average, min, max, median, p95, and p99 metrics.
518
+ */
519
+ getTimeToFirstResponseAnalytics(query = {}) {
520
+ return this.post('/analytics/time-to-first-response', { payload: query });
521
+ }
522
+ /**
523
+ * Get first response behavior analytics.
524
+ * Analyzes the agent's first LLM response behavior:
525
+ * - Percentage of agents that start by making a plan
526
+ * - Percentage of agents that return no tool calls at start
527
+ */
528
+ getFirstResponseBehaviorAnalytics(query = {}) {
529
+ return this.post('/analytics/first-response-behavior', { payload: query });
530
+ }
531
+ rules = new WorkflowsRulesApi(this);
532
+ definitions = new WorkflowsDefinitionApi(this);
533
+ }
534
+ export class WorkflowsRulesApi extends ApiTopic {
535
+ constructor(parent) {
536
+ super(parent, "/rules");
537
+ }
538
+ list() {
539
+ return this.get("/");
540
+ }
541
+ retrieve(id) {
542
+ return this.get(`/${id}`);
543
+ }
544
+ update(id, payload) {
545
+ return this.put(`/${id}`, {
546
+ payload,
547
+ });
548
+ }
549
+ create(payload) {
550
+ return this.post("/", {
551
+ payload,
552
+ });
553
+ }
554
+ delete(id) {
555
+ return this.del(`/${id}`);
556
+ }
557
+ execute(id, objectIds, vars) {
558
+ const payload = {
559
+ objectIds,
560
+ vars,
561
+ };
562
+ return this.post(`/${id}/execute`, { payload });
563
+ }
564
+ }
565
+ export class WorkflowsDefinitionApi extends ApiTopic {
566
+ //model: DSLWorkflowDefinition;
567
+ constructor(parent) {
568
+ super(parent, "/definitions");
569
+ }
570
+ list() {
571
+ return this.get("/");
572
+ }
573
+ retrieve(id) {
574
+ return this.get(`/${id}`);
575
+ }
576
+ update(id, payload) {
577
+ return this.put(`/${id}`, {
578
+ payload,
579
+ });
580
+ }
581
+ create(payload) {
582
+ return this.post("/", {
583
+ payload,
584
+ });
585
+ }
586
+ delete(id) {
587
+ return this.del(`/${id}`);
588
+ }
589
+ }
590
+ //# 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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"}