@vertesia/client 1.1.1-dev.20260505.163000Z → 1.3.0-dev.20260620.061059Z

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 (582) hide show
  1. package/README.md +29 -0
  2. package/lib/{types/AccountApi.d.ts → AccountApi.d.ts} +5 -10
  3. package/lib/AccountApi.d.ts.map +1 -0
  4. package/lib/{esm/AccountApi.js → AccountApi.js} +5 -13
  5. package/lib/AccountApi.js.map +1 -0
  6. package/lib/{types/AccountsApi.d.ts → AccountsApi.d.ts} +3 -2
  7. package/lib/AccountsApi.d.ts.map +1 -0
  8. package/lib/{esm/AccountsApi.js → AccountsApi.js} +2 -2
  9. package/lib/AccountsApi.js.map +1 -0
  10. package/lib/{types/AnalyticsApi.d.ts → AnalyticsApi.d.ts} +3 -2
  11. package/lib/AnalyticsApi.d.ts.map +1 -0
  12. package/lib/{esm/AnalyticsApi.js → AnalyticsApi.js} +5 -5
  13. package/lib/AnalyticsApi.js.map +1 -0
  14. package/lib/{types/ApiKeysApi.d.ts → ApiKeysApi.d.ts} +3 -2
  15. package/lib/ApiKeysApi.d.ts.map +1 -0
  16. package/lib/ApiKeysApi.js.map +1 -0
  17. package/lib/{types/AppsApi.d.ts → AppsApi.d.ts} +40 -2
  18. package/lib/AppsApi.d.ts.map +1 -0
  19. package/lib/{esm/AppsApi.js → AppsApi.js} +87 -14
  20. package/lib/AppsApi.js.map +1 -0
  21. package/lib/{types/AuditTrailApi.d.ts → AuditTrailApi.d.ts} +2 -1
  22. package/lib/AuditTrailApi.d.ts.map +1 -0
  23. package/lib/{esm/AuditTrailApi.js → AuditTrailApi.js} +1 -1
  24. package/lib/AuditTrailApi.js.map +1 -0
  25. package/lib/{types/CommandsApi.d.ts → CommandsApi.d.ts} +3 -2
  26. package/lib/CommandsApi.d.ts.map +1 -0
  27. package/lib/{esm/CommandsApi.js → CommandsApi.js} +3 -3
  28. package/lib/CommandsApi.js.map +1 -0
  29. package/lib/{types/EnvironmentsApi.d.ts → EnvironmentsApi.d.ts} +5 -4
  30. package/lib/EnvironmentsApi.d.ts.map +1 -0
  31. package/lib/{esm/EnvironmentsApi.js → EnvironmentsApi.js} +13 -13
  32. package/lib/EnvironmentsApi.js.map +1 -0
  33. package/lib/{types/GroupsApi.d.ts → GroupsApi.d.ts} +3 -2
  34. package/lib/GroupsApi.d.ts.map +1 -0
  35. package/lib/{esm/GroupsApi.js → GroupsApi.js} +8 -8
  36. package/lib/GroupsApi.js.map +1 -0
  37. package/lib/IamApi.d.ts +58 -0
  38. package/lib/IamApi.d.ts.map +1 -0
  39. package/lib/IamApi.js +76 -0
  40. package/lib/IamApi.js.map +1 -0
  41. package/lib/{types/InteractionBase.d.ts → InteractionBase.d.ts} +6 -5
  42. package/lib/InteractionBase.d.ts.map +1 -0
  43. package/lib/{esm/InteractionBase.js → InteractionBase.js} +4 -4
  44. package/lib/InteractionBase.js.map +1 -0
  45. package/lib/{types/InteractionCatalogApi.d.ts → InteractionCatalogApi.d.ts} +3 -2
  46. package/lib/InteractionCatalogApi.d.ts.map +1 -0
  47. package/lib/{esm/InteractionCatalogApi.js → InteractionCatalogApi.js} +12 -12
  48. package/lib/InteractionCatalogApi.js.map +1 -0
  49. package/lib/{types/InteractionOutput.d.ts → InteractionOutput.d.ts} +13 -12
  50. package/lib/InteractionOutput.d.ts.map +1 -0
  51. package/lib/{esm/InteractionOutput.js → InteractionOutput.js} +22 -25
  52. package/lib/InteractionOutput.js.map +1 -0
  53. package/lib/{types/InteractionResult.example.d.ts → InteractionResult.example.d.ts} +1 -0
  54. package/lib/InteractionResult.example.d.ts.map +1 -0
  55. package/lib/{esm/InteractionResult.example.js → InteractionResult.example.js} +4 -4
  56. package/lib/InteractionResult.example.js.map +1 -0
  57. package/lib/{types/InteractionsApi.d.ts → InteractionsApi.d.ts} +17 -6
  58. package/lib/InteractionsApi.d.ts.map +1 -0
  59. package/lib/{esm/InteractionsApi.js → InteractionsApi.js} +45 -28
  60. package/lib/InteractionsApi.js.map +1 -0
  61. package/lib/{types/OAuthClientsApi.d.ts → OAuthClientsApi.d.ts} +4 -2
  62. package/lib/OAuthClientsApi.d.ts.map +1 -0
  63. package/lib/{esm/OAuthClientsApi.js → OAuthClientsApi.js} +3 -0
  64. package/lib/OAuthClientsApi.js.map +1 -0
  65. package/lib/{types/OAuthGrantsApi.d.ts → OAuthGrantsApi.d.ts} +2 -1
  66. package/lib/OAuthGrantsApi.d.ts.map +1 -0
  67. package/lib/OAuthGrantsApi.js.map +1 -0
  68. package/lib/{types/OAuthProvidersApi.d.ts → OAuthProvidersApi.d.ts} +3 -2
  69. package/lib/OAuthProvidersApi.d.ts.map +1 -0
  70. package/lib/OAuthProvidersApi.js.map +1 -0
  71. package/lib/OAuthServerApi.d.ts +19 -0
  72. package/lib/OAuthServerApi.d.ts.map +1 -0
  73. package/lib/OAuthServerApi.js +48 -0
  74. package/lib/OAuthServerApi.js.map +1 -0
  75. package/lib/{types/ProjectsApi.d.ts → ProjectsApi.d.ts} +8 -5
  76. package/lib/ProjectsApi.d.ts.map +1 -0
  77. package/lib/{esm/ProjectsApi.js → ProjectsApi.js} +21 -12
  78. package/lib/ProjectsApi.js.map +1 -0
  79. package/lib/{types/PromptsApi.d.ts → PromptsApi.d.ts} +17 -9
  80. package/lib/PromptsApi.d.ts.map +1 -0
  81. package/lib/{esm/PromptsApi.js → PromptsApi.js} +16 -18
  82. package/lib/PromptsApi.js.map +1 -0
  83. package/lib/RefsApi.d.ts +7 -0
  84. package/lib/RefsApi.d.ts.map +1 -0
  85. package/lib/{esm/RefsApi.js → RefsApi.js} +2 -2
  86. package/lib/RefsApi.js.map +1 -0
  87. package/lib/{types/RemoteMcpConnectionsApi.d.ts → RemoteMcpConnectionsApi.d.ts} +3 -2
  88. package/lib/RemoteMcpConnectionsApi.d.ts.map +1 -0
  89. package/lib/{esm/RemoteMcpConnectionsApi.js → RemoteMcpConnectionsApi.js} +3 -3
  90. package/lib/RemoteMcpConnectionsApi.js.map +1 -0
  91. package/lib/{types/RunsApi.d.ts → RunsApi.d.ts} +11 -7
  92. package/lib/RunsApi.d.ts.map +1 -0
  93. package/lib/{esm/RunsApi.js → RunsApi.js} +14 -12
  94. package/lib/RunsApi.js.map +1 -0
  95. package/lib/SecretsApi.d.ts +18 -0
  96. package/lib/SecretsApi.d.ts.map +1 -0
  97. package/lib/SecretsApi.js +30 -0
  98. package/lib/SecretsApi.js.map +1 -0
  99. package/lib/{types/SkillsApi.d.ts → SkillsApi.d.ts} +3 -2
  100. package/lib/SkillsApi.d.ts.map +1 -0
  101. package/lib/{esm/SkillsApi.js → SkillsApi.js} +3 -3
  102. package/lib/SkillsApi.js.map +1 -0
  103. package/lib/{types/StreamSource.d.ts → StreamSource.d.ts} +1 -0
  104. package/lib/StreamSource.d.ts.map +1 -0
  105. package/lib/StreamSource.js.map +1 -0
  106. package/lib/ToolsApi.d.ts +36 -0
  107. package/lib/ToolsApi.d.ts.map +1 -0
  108. package/lib/ToolsApi.js +46 -0
  109. package/lib/ToolsApi.js.map +1 -0
  110. package/lib/{types/TrainingApi.d.ts → TrainingApi.d.ts} +7 -6
  111. package/lib/TrainingApi.d.ts.map +1 -0
  112. package/lib/TrainingApi.js +51 -0
  113. package/lib/TrainingApi.js.map +1 -0
  114. package/lib/{types/UsersApi.d.ts → UsersApi.d.ts} +3 -2
  115. package/lib/UsersApi.d.ts.map +1 -0
  116. package/lib/{esm/UsersApi.js → UsersApi.js} +3 -3
  117. package/lib/UsersApi.js.map +1 -0
  118. package/lib/{types/client.d.ts → client.d.ts} +55 -27
  119. package/lib/client.d.ts.map +1 -0
  120. package/lib/{esm/client.js → client.js} +113 -61
  121. package/lib/client.js.map +1 -0
  122. package/lib/{types/execute.d.ts → execute.d.ts} +5 -4
  123. package/lib/execute.d.ts.map +1 -0
  124. package/lib/{esm/execute.js → execute.js} +29 -11
  125. package/lib/execute.js.map +1 -0
  126. package/lib/{types/index.d.ts → index.d.ts} +9 -8
  127. package/lib/index.d.ts.map +1 -0
  128. package/lib/{esm/index.js → index.js} +4 -2
  129. package/lib/index.js.map +1 -0
  130. package/lib/{types/nodejs → nodejs}/NodeStreamSource.d.ts +3 -2
  131. package/lib/nodejs/NodeStreamSource.d.ts.map +1 -0
  132. package/lib/{esm/nodejs → nodejs}/NodeStreamSource.js +3 -3
  133. package/lib/nodejs/NodeStreamSource.js.map +1 -0
  134. package/lib/nodejs/index.d.ts +2 -0
  135. package/lib/nodejs/index.d.ts.map +1 -0
  136. package/lib/nodejs/index.js +2 -0
  137. package/lib/nodejs/index.js.map +1 -0
  138. package/lib/{types/store → store}/AgentsApi.d.ts +60 -9
  139. package/lib/store/AgentsApi.d.ts.map +1 -0
  140. package/lib/{esm/store → store}/AgentsApi.js +174 -53
  141. package/lib/store/AgentsApi.js.map +1 -0
  142. package/lib/{types/store → store}/AnalyzeDocApi.d.ts +3 -2
  143. package/lib/store/AnalyzeDocApi.d.ts.map +1 -0
  144. package/lib/{esm/store → store}/AnalyzeDocApi.js +10 -10
  145. package/lib/store/AnalyzeDocApi.js.map +1 -0
  146. package/lib/{types/store → store}/CollectionsApi.d.ts +6 -5
  147. package/lib/store/CollectionsApi.d.ts.map +1 -0
  148. package/lib/{esm/store → store}/CollectionsApi.js +22 -22
  149. package/lib/store/CollectionsApi.js.map +1 -0
  150. package/lib/{types/store → store}/CostApi.d.ts +3 -2
  151. package/lib/store/CostApi.d.ts.map +1 -0
  152. package/lib/store/CostApi.js.map +1 -0
  153. package/lib/{types/store → store}/DashboardApi.d.ts +3 -2
  154. package/lib/store/DashboardApi.d.ts.map +1 -0
  155. package/lib/{esm/store → store}/DashboardApi.js +7 -4
  156. package/lib/store/DashboardApi.js.map +1 -0
  157. package/lib/{types/store → store}/DataApi.d.ts +4 -3
  158. package/lib/store/DataApi.d.ts.map +1 -0
  159. package/lib/{esm/store → store}/DataApi.js +6 -6
  160. package/lib/store/DataApi.js.map +1 -0
  161. package/lib/{types/store → store}/EmailApi.d.ts +3 -2
  162. package/lib/store/EmailApi.d.ts.map +1 -0
  163. package/lib/{esm/store → store}/EmailApi.js +5 -5
  164. package/lib/store/EmailApi.js.map +1 -0
  165. package/lib/store/EmbeddingsApi.d.ts +13 -0
  166. package/lib/store/EmbeddingsApi.d.ts.map +1 -0
  167. package/lib/store/EmbeddingsApi.js +25 -0
  168. package/lib/store/EmbeddingsApi.js.map +1 -0
  169. package/lib/{types/store → store}/FilesApi.d.ts +22 -7
  170. package/lib/store/FilesApi.d.ts.map +1 -0
  171. package/lib/{esm/store → store}/FilesApi.js +56 -51
  172. package/lib/store/FilesApi.js.map +1 -0
  173. package/lib/{types/store → store}/HiveMemoryApi.d.ts +3 -2
  174. package/lib/store/HiveMemoryApi.d.ts.map +1 -0
  175. package/lib/{esm/store → store}/HiveMemoryApi.js +11 -11
  176. package/lib/{esm/store → store}/HiveMemoryApi.js.map +1 -1
  177. package/lib/{types/store → store}/IndexingApi.d.ts +16 -10
  178. package/lib/store/IndexingApi.d.ts.map +1 -0
  179. package/lib/{esm/store → store}/IndexingApi.js +57 -45
  180. package/lib/store/IndexingApi.js.map +1 -0
  181. package/lib/{types/store → store}/ObjectsApi.d.ts +16 -11
  182. package/lib/store/ObjectsApi.d.ts.map +1 -0
  183. package/lib/{esm/store → store}/ObjectsApi.js +46 -63
  184. package/lib/store/ObjectsApi.js.map +1 -0
  185. package/lib/{types/store → store}/PendingAsksApi.d.ts +5 -2
  186. package/lib/store/PendingAsksApi.d.ts.map +1 -0
  187. package/lib/{esm/store → store}/PendingAsksApi.js +4 -4
  188. package/lib/store/PendingAsksApi.js.map +1 -0
  189. package/lib/store/ProcessApi.d.ts +25 -0
  190. package/lib/store/ProcessApi.d.ts.map +1 -0
  191. package/lib/store/ProcessApi.js +42 -0
  192. package/lib/store/ProcessApi.js.map +1 -0
  193. package/lib/{types/store → store}/QueryApi.d.ts +2 -1
  194. package/lib/store/QueryApi.d.ts.map +1 -0
  195. package/lib/{esm/store → store}/QueryApi.js +3 -3
  196. package/lib/store/QueryApi.js.map +1 -0
  197. package/lib/{types/store → store}/RenderingApi.d.ts +3 -2
  198. package/lib/store/RenderingApi.d.ts.map +1 -0
  199. package/lib/{esm/store → store}/RenderingApi.js +8 -8
  200. package/lib/store/RenderingApi.js.map +1 -0
  201. package/lib/{types/store → store}/SchedulesApi.d.ts +3 -2
  202. package/lib/store/SchedulesApi.d.ts.map +1 -0
  203. package/lib/{esm/store → store}/SchedulesApi.js +4 -4
  204. package/lib/store/SchedulesApi.js.map +1 -0
  205. package/lib/store/TaskApi.d.ts +16 -0
  206. package/lib/store/TaskApi.d.ts.map +1 -0
  207. package/lib/store/TaskApi.js +42 -0
  208. package/lib/store/TaskApi.js.map +1 -0
  209. package/lib/{types/store → store}/ToolsApi.d.ts +3 -2
  210. package/lib/store/ToolsApi.d.ts.map +1 -0
  211. package/lib/{esm/store → store}/ToolsApi.js +2 -2
  212. package/lib/store/ToolsApi.js.map +1 -0
  213. package/lib/{types/store → store}/TypeCatalogApi.d.ts +4 -3
  214. package/lib/store/TypeCatalogApi.d.ts.map +1 -0
  215. package/lib/{esm/store → store}/TypeCatalogApi.js +5 -5
  216. package/lib/store/TypeCatalogApi.js.map +1 -0
  217. package/lib/{types/store → store}/TypesApi.d.ts +5 -4
  218. package/lib/store/TypesApi.d.ts.map +1 -0
  219. package/lib/{esm/store → store}/TypesApi.js +12 -12
  220. package/lib/store/TypesApi.js.map +1 -0
  221. package/lib/{types/store → store}/WorkflowsApi.d.ts +11 -9
  222. package/lib/store/WorkflowsApi.d.ts.map +1 -0
  223. package/lib/{esm/store → store}/WorkflowsApi.js +62 -52
  224. package/lib/store/WorkflowsApi.js.map +1 -0
  225. package/lib/store/client.d.ts +62 -0
  226. package/lib/store/client.d.ts.map +1 -0
  227. package/lib/store/client.js +106 -0
  228. package/lib/store/client.js.map +1 -0
  229. package/lib/{types/store → store}/errors.d.ts +2 -1
  230. package/lib/store/errors.d.ts.map +1 -0
  231. package/lib/store/errors.js +7 -0
  232. package/lib/store/errors.js.map +1 -0
  233. package/lib/store/index.d.ts +21 -0
  234. package/lib/store/index.d.ts.map +1 -0
  235. package/lib/store/index.js +21 -0
  236. package/lib/store/index.js.map +1 -0
  237. package/lib/store/signed-url.d.ts +39 -0
  238. package/lib/store/signed-url.d.ts.map +1 -0
  239. package/lib/store/signed-url.js +153 -0
  240. package/lib/store/signed-url.js.map +1 -0
  241. package/lib/store/stream-termination.d.ts +4 -0
  242. package/lib/store/stream-termination.d.ts.map +1 -0
  243. package/lib/store/stream-termination.js +31 -0
  244. package/lib/store/stream-termination.js.map +1 -0
  245. package/lib/{types/store → store}/version.d.ts +2 -0
  246. package/lib/store/version.d.ts.map +1 -0
  247. package/lib/{esm/store → store}/version.js +1 -0
  248. package/lib/store/version.js.map +1 -0
  249. package/lib/vertesia-client.js +1 -1
  250. package/lib/vertesia-client.js.map +1 -1
  251. package/package.json +26 -38
  252. package/src/AccountApi.ts +10 -22
  253. package/src/AccountsApi.ts +3 -9
  254. package/src/AnalyticsApi.ts +6 -8
  255. package/src/ApiKeysApi.ts +10 -2
  256. package/src/AppsApi.ts +131 -27
  257. package/src/AuditTrailApi.ts +4 -4
  258. package/src/CommandsApi.ts +7 -8
  259. package/src/EnvironmentsApi.ts +27 -23
  260. package/src/GroupsApi.ts +15 -10
  261. package/src/IamApi.ts +56 -22
  262. package/src/InteractionBase.ts +18 -9
  263. package/src/InteractionCatalogApi.ts +15 -20
  264. package/src/InteractionOutput.test.ts +40 -57
  265. package/src/InteractionOutput.ts +55 -47
  266. package/src/InteractionResult.example.ts +30 -18
  267. package/src/InteractionsApi.ts +113 -59
  268. package/src/OAuthClientsApi.ts +6 -1
  269. package/src/OAuthGrantsApi.ts +1 -1
  270. package/src/OAuthProvidersApi.ts +3 -4
  271. package/src/OAuthServerApi.ts +53 -6
  272. package/src/ProjectsApi.ts +70 -31
  273. package/src/PromptsApi.ts +44 -29
  274. package/src/RefsApi.ts +4 -10
  275. package/src/RemoteMcpConnectionsApi.ts +6 -7
  276. package/src/RunsApi.ts +25 -20
  277. package/src/SecretsApi.ts +56 -0
  278. package/src/SkillsApi.ts +5 -12
  279. package/src/StreamSource.ts +6 -1
  280. package/src/ToolsApi.ts +52 -0
  281. package/src/TrainingApi.ts +27 -25
  282. package/src/UsersApi.ts +6 -8
  283. package/src/client.test.ts +68 -2
  284. package/src/client.ts +160 -103
  285. package/src/execute.ts +60 -20
  286. package/src/index.ts +8 -8
  287. package/src/nodejs/NodeStreamSource.ts +4 -5
  288. package/src/nodejs/index.ts +1 -1
  289. package/src/store/AgentsApi.ts +308 -148
  290. package/src/store/AnalyzeDocApi.ts +39 -21
  291. package/src/store/CollectionsApi.ts +40 -38
  292. package/src/store/CostApi.ts +14 -19
  293. package/src/store/DashboardApi.ts +24 -27
  294. package/src/store/DataApi.ts +29 -32
  295. package/src/store/EmailApi.ts +6 -6
  296. package/src/store/EmbeddingsApi.ts +15 -15
  297. package/src/store/FilesApi.ts +80 -85
  298. package/src/store/HiveMemoryApi.ts +17 -28
  299. package/src/store/IndexingApi.ts +113 -76
  300. package/src/store/ObjectsApi.ts +100 -131
  301. package/src/store/PendingAsksApi.ts +7 -5
  302. package/src/store/ProcessApi.ts +61 -0
  303. package/src/store/QueryApi.ts +3 -4
  304. package/src/store/RenderingApi.ts +14 -17
  305. package/src/store/SchedulesApi.ts +6 -6
  306. package/src/store/TaskApi.ts +45 -0
  307. package/src/store/ToolsApi.ts +3 -3
  308. package/src/store/TypeCatalogApi.ts +56 -53
  309. package/src/store/TypesApi.ts +26 -18
  310. package/src/store/WorkflowsApi.ts +158 -152
  311. package/src/store/client.ts +58 -39
  312. package/src/store/errors.ts +3 -3
  313. package/src/store/index.ts +20 -18
  314. package/src/store/signed-url.test.ts +182 -0
  315. package/src/store/signed-url.ts +184 -0
  316. package/src/store/stream-gap.test.ts +230 -0
  317. package/src/store/stream-termination.test.ts +58 -0
  318. package/src/store/stream-termination.ts +40 -0
  319. package/src/store/version.ts +2 -1
  320. package/lib/cjs/AccountApi.js +0 -85
  321. package/lib/cjs/AccountApi.js.map +0 -1
  322. package/lib/cjs/AccountsApi.js +0 -16
  323. package/lib/cjs/AccountsApi.js.map +0 -1
  324. package/lib/cjs/AnalyticsApi.js +0 -43
  325. package/lib/cjs/AnalyticsApi.js.map +0 -1
  326. package/lib/cjs/ApiKeysApi.js +0 -61
  327. package/lib/cjs/ApiKeysApi.js.map +0 -1
  328. package/lib/cjs/AppsApi.js +0 -137
  329. package/lib/cjs/AppsApi.js.map +0 -1
  330. package/lib/cjs/AuditTrailApi.js +0 -39
  331. package/lib/cjs/AuditTrailApi.js.map +0 -1
  332. package/lib/cjs/CommandsApi.js +0 -19
  333. package/lib/cjs/CommandsApi.js.map +0 -1
  334. package/lib/cjs/EnvironmentsApi.js +0 -72
  335. package/lib/cjs/EnvironmentsApi.js.map +0 -1
  336. package/lib/cjs/GroupsApi.js +0 -86
  337. package/lib/cjs/GroupsApi.js.map +0 -1
  338. package/lib/cjs/IamApi.js +0 -53
  339. package/lib/cjs/IamApi.js.map +0 -1
  340. package/lib/cjs/InteractionBase.js +0 -44
  341. package/lib/cjs/InteractionBase.js.map +0 -1
  342. package/lib/cjs/InteractionCatalogApi.js +0 -64
  343. package/lib/cjs/InteractionCatalogApi.js.map +0 -1
  344. package/lib/cjs/InteractionOutput.js +0 -300
  345. package/lib/cjs/InteractionOutput.js.map +0 -1
  346. package/lib/cjs/InteractionResult.example.js +0 -57
  347. package/lib/cjs/InteractionResult.example.js.map +0 -1
  348. package/lib/cjs/InteractionsApi.js +0 -260
  349. package/lib/cjs/InteractionsApi.js.map +0 -1
  350. package/lib/cjs/OAuthClientsApi.js +0 -25
  351. package/lib/cjs/OAuthClientsApi.js.map +0 -1
  352. package/lib/cjs/OAuthGrantsApi.js +0 -30
  353. package/lib/cjs/OAuthGrantsApi.js.map +0 -1
  354. package/lib/cjs/OAuthProvidersApi.js +0 -43
  355. package/lib/cjs/OAuthProvidersApi.js.map +0 -1
  356. package/lib/cjs/OAuthServerApi.js +0 -22
  357. package/lib/cjs/OAuthServerApi.js.map +0 -1
  358. package/lib/cjs/ProjectsApi.js +0 -105
  359. package/lib/cjs/ProjectsApi.js.map +0 -1
  360. package/lib/cjs/PromptsApi.js +0 -135
  361. package/lib/cjs/PromptsApi.js.map +0 -1
  362. package/lib/cjs/RefsApi.js +0 -14
  363. package/lib/cjs/RefsApi.js.map +0 -1
  364. package/lib/cjs/RemoteMcpConnectionsApi.js +0 -38
  365. package/lib/cjs/RemoteMcpConnectionsApi.js.map +0 -1
  366. package/lib/cjs/RunsApi.js +0 -115
  367. package/lib/cjs/RunsApi.js.map +0 -1
  368. package/lib/cjs/SkillsApi.js +0 -39
  369. package/lib/cjs/SkillsApi.js.map +0 -1
  370. package/lib/cjs/StreamSource.js +0 -17
  371. package/lib/cjs/StreamSource.js.map +0 -1
  372. package/lib/cjs/TrainingApi.js +0 -54
  373. package/lib/cjs/TrainingApi.js.map +0 -1
  374. package/lib/cjs/UsersApi.js +0 -19
  375. package/lib/cjs/UsersApi.js.map +0 -1
  376. package/lib/cjs/client.js +0 -375
  377. package/lib/cjs/client.js.map +0 -1
  378. package/lib/cjs/execute.js +0 -160
  379. package/lib/cjs/execute.js.map +0 -1
  380. package/lib/cjs/index.js +0 -36
  381. package/lib/cjs/index.js.map +0 -1
  382. package/lib/cjs/nodejs/NodeStreamSource.js +0 -45
  383. package/lib/cjs/nodejs/NodeStreamSource.js.map +0 -1
  384. package/lib/cjs/nodejs/index.js +0 -18
  385. package/lib/cjs/nodejs/index.js.map +0 -1
  386. package/lib/cjs/package.json +0 -3
  387. package/lib/cjs/store/AgentsApi.js +0 -663
  388. package/lib/cjs/store/AgentsApi.js.map +0 -1
  389. package/lib/cjs/store/AnalyzeDocApi.js +0 -56
  390. package/lib/cjs/store/AnalyzeDocApi.js.map +0 -1
  391. package/lib/cjs/store/CollectionsApi.js +0 -131
  392. package/lib/cjs/store/CollectionsApi.js.map +0 -1
  393. package/lib/cjs/store/CommandsApi.js +0 -17
  394. package/lib/cjs/store/CommandsApi.js.map +0 -1
  395. package/lib/cjs/store/CostApi.js +0 -62
  396. package/lib/cjs/store/CostApi.js.map +0 -1
  397. package/lib/cjs/store/DashboardApi.js +0 -182
  398. package/lib/cjs/store/DashboardApi.js.map +0 -1
  399. package/lib/cjs/store/DataApi.js +0 -436
  400. package/lib/cjs/store/DataApi.js.map +0 -1
  401. package/lib/cjs/store/EmailApi.js +0 -103
  402. package/lib/cjs/store/EmailApi.js.map +0 -1
  403. package/lib/cjs/store/EmbeddingsApi.js +0 -29
  404. package/lib/cjs/store/EmbeddingsApi.js.map +0 -1
  405. package/lib/cjs/store/FilesApi.js +0 -286
  406. package/lib/cjs/store/FilesApi.js.map +0 -1
  407. package/lib/cjs/store/HiveMemoryApi.js +0 -174
  408. package/lib/cjs/store/HiveMemoryApi.js.map +0 -1
  409. package/lib/cjs/store/IndexingApi.js +0 -308
  410. package/lib/cjs/store/IndexingApi.js.map +0 -1
  411. package/lib/cjs/store/ObjectsApi.js +0 -340
  412. package/lib/cjs/store/ObjectsApi.js.map +0 -1
  413. package/lib/cjs/store/PendingAsksApi.js +0 -43
  414. package/lib/cjs/store/PendingAsksApi.js.map +0 -1
  415. package/lib/cjs/store/QueryApi.js +0 -67
  416. package/lib/cjs/store/QueryApi.js.map +0 -1
  417. package/lib/cjs/store/RenderingApi.js +0 -84
  418. package/lib/cjs/store/RenderingApi.js.map +0 -1
  419. package/lib/cjs/store/SchedulesApi.js +0 -103
  420. package/lib/cjs/store/SchedulesApi.js.map +0 -1
  421. package/lib/cjs/store/ToolsApi.js +0 -21
  422. package/lib/cjs/store/ToolsApi.js.map +0 -1
  423. package/lib/cjs/store/TypeCatalogApi.js +0 -50
  424. package/lib/cjs/store/TypeCatalogApi.js.map +0 -1
  425. package/lib/cjs/store/TypesApi.js +0 -60
  426. package/lib/cjs/store/TypesApi.js.map +0 -1
  427. package/lib/cjs/store/WorkersApi.js +0 -16
  428. package/lib/cjs/store/WorkersApi.js.map +0 -1
  429. package/lib/cjs/store/WorkflowsApi.js +0 -621
  430. package/lib/cjs/store/WorkflowsApi.js.map +0 -1
  431. package/lib/cjs/store/client.js +0 -93
  432. package/lib/cjs/store/client.js.map +0 -1
  433. package/lib/cjs/store/errors.js +0 -11
  434. package/lib/cjs/store/errors.js.map +0 -1
  435. package/lib/cjs/store/index.js +0 -34
  436. package/lib/cjs/store/index.js.map +0 -1
  437. package/lib/cjs/store/version.js +0 -6
  438. package/lib/cjs/store/version.js.map +0 -1
  439. package/lib/esm/AccountApi.js.map +0 -1
  440. package/lib/esm/AccountsApi.js.map +0 -1
  441. package/lib/esm/AnalyticsApi.js.map +0 -1
  442. package/lib/esm/ApiKeysApi.js.map +0 -1
  443. package/lib/esm/AppsApi.js.map +0 -1
  444. package/lib/esm/AuditTrailApi.js.map +0 -1
  445. package/lib/esm/CommandsApi.js.map +0 -1
  446. package/lib/esm/EnvironmentsApi.js.map +0 -1
  447. package/lib/esm/GroupsApi.js.map +0 -1
  448. package/lib/esm/IamApi.js +0 -47
  449. package/lib/esm/IamApi.js.map +0 -1
  450. package/lib/esm/InteractionBase.js.map +0 -1
  451. package/lib/esm/InteractionCatalogApi.js.map +0 -1
  452. package/lib/esm/InteractionOutput.js.map +0 -1
  453. package/lib/esm/InteractionResult.example.js.map +0 -1
  454. package/lib/esm/InteractionsApi.js.map +0 -1
  455. package/lib/esm/OAuthClientsApi.js.map +0 -1
  456. package/lib/esm/OAuthGrantsApi.js.map +0 -1
  457. package/lib/esm/OAuthProvidersApi.js.map +0 -1
  458. package/lib/esm/OAuthServerApi.js +0 -19
  459. package/lib/esm/OAuthServerApi.js.map +0 -1
  460. package/lib/esm/ProjectsApi.js.map +0 -1
  461. package/lib/esm/PromptsApi.js.map +0 -1
  462. package/lib/esm/RefsApi.js.map +0 -1
  463. package/lib/esm/RemoteMcpConnectionsApi.js.map +0 -1
  464. package/lib/esm/RunsApi.js.map +0 -1
  465. package/lib/esm/SkillsApi.js.map +0 -1
  466. package/lib/esm/StreamSource.js.map +0 -1
  467. package/lib/esm/TrainingApi.js +0 -51
  468. package/lib/esm/TrainingApi.js.map +0 -1
  469. package/lib/esm/UsersApi.js.map +0 -1
  470. package/lib/esm/client.js.map +0 -1
  471. package/lib/esm/execute.js.map +0 -1
  472. package/lib/esm/index.js.map +0 -1
  473. package/lib/esm/nodejs/NodeStreamSource.js.map +0 -1
  474. package/lib/esm/nodejs/index.js +0 -2
  475. package/lib/esm/nodejs/index.js.map +0 -1
  476. package/lib/esm/store/AgentsApi.js.map +0 -1
  477. package/lib/esm/store/AnalyzeDocApi.js.map +0 -1
  478. package/lib/esm/store/CollectionsApi.js.map +0 -1
  479. package/lib/esm/store/CommandsApi.js +0 -13
  480. package/lib/esm/store/CommandsApi.js.map +0 -1
  481. package/lib/esm/store/CostApi.js.map +0 -1
  482. package/lib/esm/store/DashboardApi.js.map +0 -1
  483. package/lib/esm/store/DataApi.js.map +0 -1
  484. package/lib/esm/store/EmailApi.js.map +0 -1
  485. package/lib/esm/store/EmbeddingsApi.js +0 -25
  486. package/lib/esm/store/EmbeddingsApi.js.map +0 -1
  487. package/lib/esm/store/FilesApi.js.map +0 -1
  488. package/lib/esm/store/IndexingApi.js.map +0 -1
  489. package/lib/esm/store/ObjectsApi.js.map +0 -1
  490. package/lib/esm/store/PendingAsksApi.js.map +0 -1
  491. package/lib/esm/store/QueryApi.js.map +0 -1
  492. package/lib/esm/store/RenderingApi.js.map +0 -1
  493. package/lib/esm/store/SchedulesApi.js.map +0 -1
  494. package/lib/esm/store/ToolsApi.js.map +0 -1
  495. package/lib/esm/store/TypeCatalogApi.js.map +0 -1
  496. package/lib/esm/store/TypesApi.js.map +0 -1
  497. package/lib/esm/store/WorkersApi.js +0 -12
  498. package/lib/esm/store/WorkersApi.js.map +0 -1
  499. package/lib/esm/store/WorkflowsApi.js.map +0 -1
  500. package/lib/esm/store/client.js +0 -89
  501. package/lib/esm/store/client.js.map +0 -1
  502. package/lib/esm/store/errors.js +0 -7
  503. package/lib/esm/store/errors.js.map +0 -1
  504. package/lib/esm/store/index.js +0 -18
  505. package/lib/esm/store/index.js.map +0 -1
  506. package/lib/esm/store/version.js.map +0 -1
  507. package/lib/tsconfig.tsbuildinfo +0 -1
  508. package/lib/types/AccountApi.d.ts.map +0 -1
  509. package/lib/types/AccountsApi.d.ts.map +0 -1
  510. package/lib/types/AnalyticsApi.d.ts.map +0 -1
  511. package/lib/types/ApiKeysApi.d.ts.map +0 -1
  512. package/lib/types/AppsApi.d.ts.map +0 -1
  513. package/lib/types/AuditTrailApi.d.ts.map +0 -1
  514. package/lib/types/CommandsApi.d.ts.map +0 -1
  515. package/lib/types/EnvironmentsApi.d.ts.map +0 -1
  516. package/lib/types/GroupsApi.d.ts.map +0 -1
  517. package/lib/types/IamApi.d.ts +0 -36
  518. package/lib/types/IamApi.d.ts.map +0 -1
  519. package/lib/types/InteractionBase.d.ts.map +0 -1
  520. package/lib/types/InteractionCatalogApi.d.ts.map +0 -1
  521. package/lib/types/InteractionOutput.d.ts.map +0 -1
  522. package/lib/types/InteractionResult.example.d.ts.map +0 -1
  523. package/lib/types/InteractionsApi.d.ts.map +0 -1
  524. package/lib/types/OAuthClientsApi.d.ts.map +0 -1
  525. package/lib/types/OAuthGrantsApi.d.ts.map +0 -1
  526. package/lib/types/OAuthProvidersApi.d.ts.map +0 -1
  527. package/lib/types/OAuthServerApi.d.ts +0 -10
  528. package/lib/types/OAuthServerApi.d.ts.map +0 -1
  529. package/lib/types/ProjectsApi.d.ts.map +0 -1
  530. package/lib/types/PromptsApi.d.ts.map +0 -1
  531. package/lib/types/RefsApi.d.ts +0 -6
  532. package/lib/types/RefsApi.d.ts.map +0 -1
  533. package/lib/types/RemoteMcpConnectionsApi.d.ts.map +0 -1
  534. package/lib/types/RunsApi.d.ts.map +0 -1
  535. package/lib/types/SkillsApi.d.ts.map +0 -1
  536. package/lib/types/StreamSource.d.ts.map +0 -1
  537. package/lib/types/TrainingApi.d.ts.map +0 -1
  538. package/lib/types/UsersApi.d.ts.map +0 -1
  539. package/lib/types/client.d.ts.map +0 -1
  540. package/lib/types/execute.d.ts.map +0 -1
  541. package/lib/types/index.d.ts.map +0 -1
  542. package/lib/types/nodejs/NodeStreamSource.d.ts.map +0 -1
  543. package/lib/types/nodejs/index.d.ts +0 -1
  544. package/lib/types/nodejs/index.d.ts.map +0 -1
  545. package/lib/types/store/AgentsApi.d.ts.map +0 -1
  546. package/lib/types/store/AnalyzeDocApi.d.ts.map +0 -1
  547. package/lib/types/store/CollectionsApi.d.ts.map +0 -1
  548. package/lib/types/store/CommandsApi.d.ts +0 -10
  549. package/lib/types/store/CommandsApi.d.ts.map +0 -1
  550. package/lib/types/store/CostApi.d.ts.map +0 -1
  551. package/lib/types/store/DashboardApi.d.ts.map +0 -1
  552. package/lib/types/store/DataApi.d.ts.map +0 -1
  553. package/lib/types/store/EmailApi.d.ts.map +0 -1
  554. package/lib/types/store/EmbeddingsApi.d.ts +0 -12
  555. package/lib/types/store/EmbeddingsApi.d.ts.map +0 -1
  556. package/lib/types/store/FilesApi.d.ts.map +0 -1
  557. package/lib/types/store/HiveMemoryApi.d.ts.map +0 -1
  558. package/lib/types/store/IndexingApi.d.ts.map +0 -1
  559. package/lib/types/store/ObjectsApi.d.ts.map +0 -1
  560. package/lib/types/store/PendingAsksApi.d.ts.map +0 -1
  561. package/lib/types/store/QueryApi.d.ts.map +0 -1
  562. package/lib/types/store/RenderingApi.d.ts.map +0 -1
  563. package/lib/types/store/SchedulesApi.d.ts.map +0 -1
  564. package/lib/types/store/ToolsApi.d.ts.map +0 -1
  565. package/lib/types/store/TypeCatalogApi.d.ts.map +0 -1
  566. package/lib/types/store/TypesApi.d.ts.map +0 -1
  567. package/lib/types/store/WorkersApi.d.ts +0 -6
  568. package/lib/types/store/WorkersApi.d.ts.map +0 -1
  569. package/lib/types/store/WorkflowsApi.d.ts.map +0 -1
  570. package/lib/types/store/client.d.ts +0 -57
  571. package/lib/types/store/client.d.ts.map +0 -1
  572. package/lib/types/store/errors.d.ts.map +0 -1
  573. package/lib/types/store/index.d.ts +0 -17
  574. package/lib/types/store/index.d.ts.map +0 -1
  575. package/lib/types/store/version.d.ts.map +0 -1
  576. package/src/store/CommandsApi.ts +0 -15
  577. package/src/store/WorkersApi.ts +0 -17
  578. /package/lib/{esm/ApiKeysApi.js → ApiKeysApi.js} +0 -0
  579. /package/lib/{esm/OAuthGrantsApi.js → OAuthGrantsApi.js} +0 -0
  580. /package/lib/{esm/OAuthProvidersApi.js → OAuthProvidersApi.js} +0 -0
  581. /package/lib/{esm/StreamSource.js → StreamSource.js} +0 -0
  582. /package/lib/{esm/store → store}/CostApi.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"vertesia-client.js","sources":["../../api-fetch-client/lib/esm/errors.js","../../api-fetch-client/lib/esm/sse/TextDecoderStream.js","../../../node_modules/.pnpm/eventsource-parser@1.1.2/node_modules/eventsource-parser/dist/index.js","../../api-fetch-client/lib/esm/sse/EventSourceParserStream.js","../../api-fetch-client/lib/esm/utils.js","../../api-fetch-client/lib/esm/base.js","../../api-fetch-client/lib/esm/sse/index.js","../../api-fetch-client/lib/esm/client.js","../src/AccountApi.ts","../src/AccountsApi.ts","../src/AnalyticsApi.ts","../src/ApiKeysApi.ts","../src/AppsApi.ts","../src/AuditTrailApi.ts","../src/CommandsApi.ts","../src/EnvironmentsApi.ts","../src/GroupsApi.ts","../src/IamApi.ts","../src/execute.ts","../src/InteractionCatalogApi.ts","../src/InteractionOutput.ts","../src/InteractionsApi.ts","../src/OAuthClientsApi.ts","../src/OAuthGrantsApi.ts","../src/OAuthProvidersApi.ts","../src/OAuthServerApi.ts","../src/ProjectsApi.ts","../src/PromptsApi.ts","../src/RefsApi.ts","../src/RemoteMcpConnectionsApi.ts","../src/RunsApi.ts","../src/SkillsApi.ts","../src/store/AgentsApi.ts","../src/store/CollectionsApi.ts","../src/store/CostApi.ts","../src/store/EmbeddingsApi.ts","../src/store/CommandsApi.ts","../src/store/DashboardApi.ts","../src/store/DataApi.ts","../src/store/EmailApi.ts","../src/store/IndexingApi.ts","../src/store/errors.ts","../src/StreamSource.ts","../src/store/FilesApi.ts","../src/store/HiveMemoryApi.ts","../src/store/AnalyzeDocApi.ts","../src/store/ObjectsApi.ts","../src/store/PendingAsksApi.ts","../src/store/QueryApi.ts","../src/store/RenderingApi.ts","../src/store/SchedulesApi.ts","../src/store/ToolsApi.ts","../src/store/TypeCatalogApi.ts","../src/store/TypesApi.ts","../src/store/version.ts","../src/store/WorkersApi.ts","../src/store/WorkflowsApi.ts","../src/store/client.ts","../src/TrainingApi.ts","../src/UsersApi.ts","../src/client.ts","../src/InteractionBase.ts"],"sourcesContent":["function createMessage(message, request, status, payload, displayDetails) {\n let msg = message;\n if (displayDetails) {\n msg += '\\nRequest: ' + request.method + ' ' + request.url + ' => ' + status;\n const details = payload?.details || payload?.error?.details;\n if (details) {\n const detailsType = typeof details;\n if (detailsType === 'string') {\n msg += '\\nDetails: ' + details;\n }\n else if (detailsType === \"object\") {\n msg += '\\nDetails: ' + JSON.stringify(details, undefined, 2);\n }\n }\n msg += '\\nStack Trace: ';\n }\n return msg;\n}\nexport class RequestError extends Error {\n status;\n payload;\n request;\n request_info;\n displayDetails;\n original_message;\n constructor(message, request, status, payload, displayDetails = true) {\n super(createMessage(message, request, status, payload, displayDetails));\n this.original_message = message;\n this.request = request;\n this.status = status;\n this.payload = payload;\n this.request_info = request.method + ' ' + request.url + ' => ' + status;\n this.displayDetails = displayDetails;\n }\n get details() {\n return this.payload?.details || this.payload?.error?.details;\n }\n}\nexport class ServerError extends RequestError {\n constructor(message, req, status, payload, displayDetails = true) {\n super(message, req, status, payload, displayDetails);\n }\n updateDetails(details) {\n if (details !== this.details) {\n return new ServerError(this.original_message, this.request, this.status, { ...this.payload, details }, this.displayDetails);\n }\n else {\n return this;\n }\n }\n}\nexport class ConnectionError extends RequestError {\n constructor(req, err) {\n super(\"Failed to connect to server: \" + err.message, req, 0, err);\n }\n}\n//# sourceMappingURL=errors.js.map","/**\n * Decode a stream of bytes into a stream of characters.\n * Some javascript env like Bun.js doesn't supports the TextDecoderStream (as for jan 2024)\n * This is a polyfill for bunJS\n */\nlet _TextDecoderStream;\nif (globalThis.TextDecoderStream && typeof globalThis.TextDecoderStream === 'function') {\n _TextDecoderStream = globalThis.TextDecoderStream;\n}\nelse {\n class MyTextDecoderStream extends TransformStream {\n _options;\n constructor(encoding = \"utf-8\", { fatal = false, ignoreBOM = false } = {}) {\n super(new TextDecodeTransformer(new TextDecoder(encoding, { fatal, ignoreBOM })));\n this._options = { fatal, ignoreBOM, encoding };\n }\n get encoding() {\n return this._options.encoding;\n }\n get fatal() {\n return this._options.fatal;\n }\n get ignoreBOM() {\n return this._options.ignoreBOM;\n }\n }\n class TextDecodeTransformer {\n decoder;\n constructor(decoder) {\n this.decoder = decoder;\n }\n transform(chunk, controller) {\n if (!(chunk instanceof ArrayBuffer || ArrayBuffer.isView(chunk))) {\n throw new TypeError(\"Input must be a compatible with: ArrayBuffer | Uint8Array\");\n }\n const text = this.decoder.decode(chunk, { stream: true });\n if (text.length !== 0) {\n controller.enqueue(text);\n }\n }\n flush(controller) {\n const text = this.decoder.decode();\n if (text.length !== 0) {\n controller.enqueue(text);\n }\n }\n }\n _TextDecoderStream = MyTextDecoderStream;\n}\nexport { _TextDecoderStream as TextDecoderStream };\n//# sourceMappingURL=TextDecoderStream.js.map","function createParser(onParse) {\n let isFirstChunk;\n let buffer;\n let startingPosition;\n let startingFieldLength;\n let eventId;\n let eventName;\n let data;\n reset();\n return {\n feed,\n reset\n };\n function reset() {\n isFirstChunk = true;\n buffer = \"\";\n startingPosition = 0;\n startingFieldLength = -1;\n eventId = void 0;\n eventName = void 0;\n data = \"\";\n }\n function feed(chunk) {\n buffer = buffer ? buffer + chunk : chunk;\n if (isFirstChunk && hasBom(buffer)) {\n buffer = buffer.slice(BOM.length);\n }\n isFirstChunk = false;\n const length = buffer.length;\n let position = 0;\n let discardTrailingNewline = false;\n while (position < length) {\n if (discardTrailingNewline) {\n if (buffer[position] === \"\\n\") {\n ++position;\n }\n discardTrailingNewline = false;\n }\n let lineLength = -1;\n let fieldLength = startingFieldLength;\n let character;\n for (let index = startingPosition; lineLength < 0 && index < length; ++index) {\n character = buffer[index];\n if (character === \":\" && fieldLength < 0) {\n fieldLength = index - position;\n } else if (character === \"\\r\") {\n discardTrailingNewline = true;\n lineLength = index - position;\n } else if (character === \"\\n\") {\n lineLength = index - position;\n }\n }\n if (lineLength < 0) {\n startingPosition = length - position;\n startingFieldLength = fieldLength;\n break;\n } else {\n startingPosition = 0;\n startingFieldLength = -1;\n }\n parseEventStreamLine(buffer, position, fieldLength, lineLength);\n position += lineLength + 1;\n }\n if (position === length) {\n buffer = \"\";\n } else if (position > 0) {\n buffer = buffer.slice(position);\n }\n }\n function parseEventStreamLine(lineBuffer, index, fieldLength, lineLength) {\n if (lineLength === 0) {\n if (data.length > 0) {\n onParse({\n type: \"event\",\n id: eventId,\n event: eventName || void 0,\n data: data.slice(0, -1)\n // remove trailing newline\n });\n\n data = \"\";\n eventId = void 0;\n }\n eventName = void 0;\n return;\n }\n const noValue = fieldLength < 0;\n const field = lineBuffer.slice(index, index + (noValue ? lineLength : fieldLength));\n let step = 0;\n if (noValue) {\n step = lineLength;\n } else if (lineBuffer[index + fieldLength + 1] === \" \") {\n step = fieldLength + 2;\n } else {\n step = fieldLength + 1;\n }\n const position = index + step;\n const valueLength = lineLength - step;\n const value = lineBuffer.slice(position, position + valueLength).toString();\n if (field === \"data\") {\n data += value ? \"\".concat(value, \"\\n\") : \"\\n\";\n } else if (field === \"event\") {\n eventName = value;\n } else if (field === \"id\" && !value.includes(\"\\0\")) {\n eventId = value;\n } else if (field === \"retry\") {\n const retry = parseInt(value, 10);\n if (!Number.isNaN(retry)) {\n onParse({\n type: \"reconnect-interval\",\n value: retry\n });\n }\n }\n }\n}\nconst BOM = [239, 187, 191];\nfunction hasBom(buffer) {\n return BOM.every((charCode, index) => buffer.charCodeAt(index) === charCode);\n}\nexport { createParser };\n//# sourceMappingURL=index.js.map\n","import { createParser } from 'eventsource-parser';\n/**\n * We copied this file from the eventsource-parser/stream package and made it a part of our project.\n * because importing the eventsource-parser/stream breaks tsc build when building the commonjs version\n * see for a similar error:\n * https://stackoverflow.com/questions/77280140/why-typescript-dont-see-exports-of-package-with-module-commonjs-and-moduleres\n */\n/**\n * A TransformStream that ingests a stream of strings and produces a stream of ParsedEvents.\n *\n * @example\n * ```\n * const eventStream =\n * response.body\n * .pipeThrough(new TextDecoderStream())\n * .pipeThrough(new EventSourceParserStream())\n * ```\n * @public\n */\nexport class EventSourceParserStream extends TransformStream {\n constructor() {\n let parser;\n super({\n start(controller) {\n parser = createParser((event) => {\n if (event.type === 'event') {\n controller.enqueue(event);\n }\n });\n },\n transform(chunk) {\n parser.feed(chunk);\n },\n });\n }\n}\n//# sourceMappingURL=EventSourceParserStream.js.map","export function buildQueryString(query) {\n const parts = [];\n for (const key of Object.keys(query)) {\n const val = query[key];\n if (val != null) {\n parts.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(String(val)));\n }\n }\n return parts.join(\"&\");\n}\nexport function join(left, right) {\n if (left.endsWith('/')) {\n if (right.startsWith('/')) {\n return left + right.substring(1);\n }\n else {\n return left + right;\n }\n }\n else if (right.startsWith('/')) {\n return left + right;\n }\n else {\n return left + '/' + right;\n }\n}\nexport function removeTrailingSlash(path) {\n if (path[path.length - 1] === '/') {\n return path.slice(0, -1);\n }\n return path;\n}\n//# sourceMappingURL=utils.js.map","import { ConnectionError, ServerError } from \"./errors.js\";\nimport { sse } from \"./sse/index.js\";\nimport { buildQueryString, join, removeTrailingSlash } from \"./utils.js\";\nexport function fetchPromise(fetchImpl) {\n if (fetchImpl) {\n return Promise.resolve(fetchImpl);\n }\n else if (typeof globalThis.fetch === 'function') {\n return Promise.resolve(globalThis.fetch);\n }\n else {\n // install an error impl\n return Promise.resolve(() => {\n throw new Error('No Fetch implementation found');\n });\n }\n}\nfunction isInvalidJsonPayload(payload) {\n return payload?.error === \"Not a valid JSON payload\" && typeof payload.text === \"string\";\n}\nexport class ClientBase {\n _fetch;\n baseUrl;\n errorFactory = (err) => err;\n verboseErrors = true;\n constructor(baseUrl, fetchImpl) {\n this.baseUrl = removeTrailingSlash(baseUrl);\n this._fetch = fetchPromise(fetchImpl);\n }\n /**\n * Can be subclassed to map to custom errors\n * @param err\n */\n throwError(err) {\n throw this.errorFactory(err);\n }\n /**\n * Resolve a path to a full URL. If the path is already an absolute URL\n * (starts with http:// or https://), it is returned as-is.\n */\n getUrl(path) {\n if (path.startsWith('http://') || path.startsWith('https://')) {\n return removeTrailingSlash(path);\n }\n return removeTrailingSlash(join(this.baseUrl, path));\n }\n get(path, params) {\n return this.request('GET', path, params);\n }\n del(path, params) {\n return this.request('DELETE', path, params);\n }\n delete(path, params) {\n return this.request('DELETE', path, params);\n }\n post(path, params) {\n return this.request('POST', path, params);\n }\n put(path, params) {\n return this.request('PUT', path, params);\n }\n /**\n * You can customize the json parser by overriding this method\n * @param text\n * @returns\n */\n jsonParse(text) {\n return JSON.parse(text);\n }\n /**\n * Can be overridden to create the request\n * @param fetch\n * @param url\n * @param init\n * @returns\n */\n createRequest(url, init) {\n return Promise.resolve(new Request(url, init));\n }\n createServerError(req, res, payload) {\n const status = res.status;\n let message = 'Server Error: ' + status;\n if (payload) {\n if (isInvalidJsonPayload(payload)) {\n message += res.statusText ? ' ' + res.statusText : '';\n message += ': non-JSON response';\n }\n else if (payload.message) {\n message = String(payload.message);\n }\n else if (payload.error) {\n if (typeof payload.error === 'string') {\n message = String(payload.error);\n }\n else if (typeof payload.error.message === 'string') {\n message = String(payload.error.message);\n }\n }\n }\n return new ServerError(message, req, res.status, payload, this.verboseErrors);\n }\n async readJSONPayload(res) {\n return res.text().then(text => {\n if (!text) {\n return undefined;\n }\n else {\n try {\n return this.jsonParse(text);\n }\n catch (err) {\n return {\n status: res.status,\n error: \"Not a valid JSON payload\",\n message: err.message,\n text: text,\n };\n }\n }\n }).catch((err) => {\n return {\n status: res.status,\n error: \"Unable to load response content\",\n message: err.message,\n };\n });\n }\n /**\n * Subclasses You can override this to do something with the response\n * @param res\n */\n handleResponse(req, res, params) {\n if (params && params.reader) {\n if (params.reader === 'sse') {\n return sse(res);\n }\n else {\n return params.reader.call(this, res);\n }\n }\n else {\n return this.readJSONPayload(res).then((payload) => {\n if (res.ok) {\n return payload;\n }\n else {\n this.throwError(this.createServerError(req, res, payload));\n }\n });\n }\n }\n async request(method, path, params) {\n let url = this.getUrl(path);\n if (params?.query) {\n url += '?' + buildQueryString(params.query);\n }\n const headers = this.headers ? Object.assign({}, this.headers) : {};\n const paramsHeaders = params?.headers;\n if (paramsHeaders) {\n for (const key in paramsHeaders) {\n headers[key.toLowerCase()] = paramsHeaders[key];\n }\n }\n let body;\n const payload = params?.payload;\n if (payload) {\n if (params && params.jsonPayload === false) {\n body = payload;\n }\n else {\n body = (typeof payload !== 'string') ? JSON.stringify(payload) : payload;\n if (!('content-type' in headers)) {\n headers['content-type'] = 'application/json';\n }\n }\n }\n // When using SSE reader, ensure the Accept header requests event-stream\n if (params?.reader === 'sse' && !('accept' in headers)) {\n headers['accept'] = 'text/event-stream';\n }\n const init = {\n method: method,\n headers: headers,\n body: body,\n };\n const req = await this.createRequest(url, init);\n return this._fetch.then(fetch => fetch(req).catch(err => {\n console.error(`Failed to connect to ${url}`, err);\n this.throwError(new ConnectionError(req, err));\n }).then(res => {\n return this.handleResponse(req, res, params);\n }));\n }\n /**\n * Perform a request and consume the response as an SSE stream.\n * Calls `onEvent` for each parsed SSE event, then returns the last event.\n *\n * @param method HTTP method\n * @param path URL path (relative to baseUrl) or absolute URL (http:// or https://)\n * @param params Request parameters (payload, headers, query)\n * @param onEvent Callback for each SSE event\n * @returns The last SSE event received, or undefined if the stream was empty\n */\n async sseRequest(method, path, params, onEvent) {\n const stream = await this.request(method, path, {\n ...params,\n reader: 'sse',\n });\n const reader = stream.getReader();\n let lastEvent;\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n break;\n lastEvent = value;\n onEvent(value);\n }\n }\n finally {\n reader.releaseLock();\n }\n return lastEvent;\n }\n /**\n * Expose the fetch method\n * @param input\n * @param init\n * @returns\n */\n fetch(input, init) {\n return this._fetch.then(fetch => fetch(input, init));\n }\n}\n//# sourceMappingURL=base.js.map","import { TextDecoderStream } from \"./TextDecoderStream.js\";\nimport { EventSourceParserStream } from \"./EventSourceParserStream.js\";\n/**\n * A SSE response reader.\n * Usage client.get('/path', {reader: sse}) or client.post('/path', {reader: sse})\n * where sse is this function\n * @param response\n * @returns\n */\nexport async function sse(response) {\n if (!response.ok) {\n const text = await response.text();\n const error = new Error(\"SSE error: \" + response.status + \". Content:\\n\" + text);\n error.status = response.status;\n throw error;\n }\n if (!response.body) {\n throw new Error('No body in response');\n }\n return response.body.pipeThrough(new TextDecoderStream()).pipeThrough(new EventSourceParserStream());\n}\n// re-export TextDecoderStream (in case it was polyfilled)\nexport { TextDecoderStream };\n//# sourceMappingURL=index.js.map","import { ClientBase } from \"./base.js\";\nfunction isAuthorizationHeaderSet(headers) {\n if (!headers)\n return false;\n return \"authorization\" in headers;\n}\nexport class AbstractFetchClient extends ClientBase {\n headers;\n _auth;\n // callbacks useful to log requests and responses\n onRequest;\n onResponse;\n // the last response. Can be used to inspect the response headers\n response;\n constructor(baseUrl, fetchImpl) {\n super(baseUrl, fetchImpl);\n this.baseUrl = baseUrl[baseUrl.length - 1] === '/' ? baseUrl.substring(0, baseUrl.length - 1) : baseUrl;\n this.headers = this.initialHeaders;\n }\n get initialHeaders() {\n return { accept: 'application/json' };\n }\n /**\n * Install an auth callback. If the callback is undefined or null then remove the auth callback.\n * @param authCb a function returning a promise that resolves to the value to use for the authorization header\n * @returns the client instance\n */\n withAuthCallback(authCb) {\n this._auth = authCb || undefined;\n return this;\n }\n withErrorFactory(factory) {\n this.errorFactory = factory;\n return this;\n }\n withLang(locale) {\n if (locale) {\n this.headers['accept-language'] = locale;\n }\n else {\n delete this.headers['accept-language'];\n }\n return this;\n }\n withHeaders(headers) {\n const thisHeaders = this.headers;\n for (const key in headers) {\n const value = headers[key];\n if (value != null) {\n thisHeaders[key.toLowerCase()] = value;\n }\n }\n return this;\n }\n setHeader(key, value) {\n if (!value) {\n delete this.headers[key.toLowerCase()];\n }\n else {\n this.headers[key.toLowerCase()] = value;\n }\n }\n async createRequest(url, init) {\n if (this._auth && !isAuthorizationHeaderSet(init.headers)) {\n const headers = (init.headers ? init.headers : {});\n init.headers = headers;\n const auth = await this._auth();\n if (auth) {\n init.headers[\"authorization\"] = auth;\n }\n }\n this.response = undefined;\n const request = await super.createRequest(url, init);\n this.onRequest && this.onRequest(request);\n return request;\n }\n async handleResponse(req, res, params) {\n this.response = res; // store last response\n this.onResponse && this.onResponse(res, req);\n return super.handleResponse(req, res, params);\n }\n}\nexport class FetchClient extends AbstractFetchClient {\n constructor(baseUrl, fetchImpl) {\n super(baseUrl, fetchImpl);\n }\n}\nexport class ApiTopic extends ClientBase {\n client;\n constructor(client, basePath) {\n //TODO we should refactor the way ClientBase and ApiTopic is created\n // to avoid cloning all customizations\n super(client.getUrl(basePath), client._fetch);\n this.client = client;\n this.createServerError = client.createServerError;\n this.errorFactory = client.errorFactory;\n this.verboseErrors = client.verboseErrors;\n }\n createRequest(url, init) {\n return this.client.createRequest(url, init);\n }\n handleResponse(req, res, params) {\n return this.client.handleResponse(req, res, params);\n }\n get headers() {\n return this.client.headers;\n }\n}\n//# sourceMappingURL=client.js.map",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["RequestError","Error","status","payload","request","request_info","displayDetails","original_message","constructor","message","super","msg","method","url","details","error","detailsType","JSON","stringify","undefined","createMessage","this","ServerError","req","updateDetails","ConnectionError","err","_TextDecoderStream","globalThis","TextDecoderStream","MyTextDecoderStream","TransformStream","_options","encoding","fatal","ignoreBOM","TextDecodeTransformer","TextDecoder","decoder","transform","chunk","controller","ArrayBuffer","isView","TypeError","text","decode","stream","length","enqueue","flush","BOM","EventSourceParserStream","parser","start","onParse","isFirstChunk","buffer","startingPosition","startingFieldLength","eventId","eventName","data","reset","feed","every","charCode","index","charCodeAt","hasBom","slice","position","discardTrailingNewline","character","lineLength","fieldLength","parseEventStreamLine","lineBuffer","type","id","event","noValue","field","step","valueLength","value","toString","concat","includes","retry","parseInt","Number","isNaN","createParser","removeTrailingSlash","path","ClientBase","_fetch","baseUrl","errorFactory","verboseErrors","fetchImpl","Promise","resolve","fetch","fetchPromise","throwError","getUrl","startsWith","left","right","endsWith","substring","get","params","del","post","put","jsonParse","parse","createRequest","init","Request","createServerError","res","isInvalidJsonPayload","String","statusText","readJSONPayload","then","catch","handleResponse","reader","async","response","ok","body","pipeThrough","sse","call","query","parts","key","Object","keys","val","push","encodeURIComponent","join","buildQueryString","headers","assign","paramsHeaders","toLowerCase","jsonPayload","console","sseRequest","onEvent","getReader","lastEvent","done","read","releaseLock","input","AbstractFetchClient","_auth","onRequest","onResponse","initialHeaders","accept","withAuthCallback","authCb","withErrorFactory","factory","withLang","locale","withHeaders","thisHeaders","setHeader","auth","ApiTopic","client","basePath","AccountApi","parent","info","update","projects","members","inviteUser","listInvites","listInvitation","acceptInvite","rejectInvite","delete","onboardingProgress","getGoogleToken","getStripeBillingStatus","AccountsApi","create","name","list","AnalyticsApi","runsSummary","environmentId","URLSearchParams","set","end","qs","runsTimeSeries","runsTokenUsage","ApiKeysApi","level","retrieve","withValue","getToken","requestPublicKey","AppsApi","manifest","listAppInstallationTools","appInstallId","install","appId","settings","oauthParams","oauthProviderParams","app_id","oauth_params","oauth_provider_params","uninstall","installationId","getAppInstallationByName","appName","getAppInstallationProjects","app","getInstalledApps","kind","getAllAppInstallations","listInstallations","updateInstallationSettings","settingsPayload","updateToolAllowlist","installId","tool_allowlist","validateUrl","AuditTrailApi","actions","resourceTypes","resourceId","principalId","principalType","effectivePrincipalId","hasEffectivePrincipal","projectId","from","to","limit","offset","isNamespaceAvailable","available","initSamples","EnvironmentsApi","all","updateConfig","listModels","listTrainableModels","embeddings","migrateInteractions","GroupsApi","options","groupId","listMembers","addMember","userId","removeMember","syncMembers","IamApi","aces","AcesApi","roles","RolesApi","groups","EventSourceProvider","EventSource","import","executeInteraction","interactionId","onChunk","runs","interaction","ExecutionRunStatus","failed","handleStreaming","runId","reject","EventSourceImpl","streamUrl","URL","bearerToken","token","split","searchParams","href","addEventListener","ev","close","InteractionCatalogApi","listStoredInteractions","listSysInteractions","tag","listAppInteractions","listAllAppInteractions","IS_INTERACTION_OUTPUT","Symbol","enhanceInteractionExecutionResult","r","result","InteractionOutput","enhanceExecutionRun","results","Array","isArray","createInteractionOutput","isInteractionOutputArray","obj","isEmpty","hasObject","some","hasText","hasImage","delimiter","filter","map","texts","object","jsonResult","find","lastError","part","trim","parseCompletionResultAsJson","objects","objectAt","i","image","imageResult","images","separator","indent","toJSON","wrapper","Proxy","target","prop","receiver","bind","Reflect","InteractionsApi","catalog","listEndpoints","listVersionsByName","listTags","computeFacets","listNames","execute","run_id","executeByName","nameWithTag","executeInteractionByName","executeAsync","executeInteractionAsync","publish","fork","generateInteraction","generateTestData","suggestImprovements","suggestPromptImprovements","listVersions","listForks","requestSlot","checkRateLimit","nameOrId","OAuthClientsApi","clientId","remove","toQueryRecord","fromEntries","entries","OAuthGrantsApi","grantId","revoke","revokeBulk","OAuthProvidersApi","authorize","exchange","code","state","getStatus","connect","disconnect","OAuthServerApi","createAuthorizationRequest","retrieveRequest","requestId","approveRequest","denyRequest","ProjectsApi","account","updateConfiguration","integrations","IntegrationsConfigurationApi","getTools","getToolByName","toolName","listAppContentTypes","getAppContentType","typeId","listAppRenderingTemplates","getAppRenderingTemplate","templateUri","getCompositeAppConfiguration","updateCompositeAppConfiguration","integrationId","updatePlugins","plugins","listPlugins","PromptsApi","render","listInteractions","RefsApi","refs","RemoteMcpConnectionsApi","getCollectionStatus","collectionId","getMetadata","getCollectionToken","app_install_id","collection_id","mcpServerUrl","mcp_server_url","RunsApi","filters","retrievePopulated","populate","filterOptions","sessionTags","tags","sendToolResults","sendUserMessage","search","clone","SkillsApi","findRelevant","context","findRelevantForTask","taskDescription","toolNames","task_description","tool_names","AgentsApi","createRecord","started_by","since","toISOString","until","schedule_id","cursor","sort","order","categories","content_type_name","terminate","reason","restart","updateStatus","sendSignal","signalName","queryName","getActiveWorkstreams","retrieveMessages","messages","m","toAgentMessage","postMessage","streamMessages","onMessage","signal","resolveFn","rejectFn","promise","reconnectAttempts","lastMessageTimestamp","isClosed","currentSse","interval","reconnectTimer","abortHandler","calculateBackoffDelay","attempts","exponentialDelay","Math","min","pow","random","cleanup","clearTimeout","clearInterval","removeEventListener","exit","aborted","once","historical","max","timestamp","workstreamId","workstream_id","AgentMessageType","TERMINATED","COMPLETE","warn","setupStream","isReconnect","agents","log","setInterval","connectionOpenedAt","onopen","Date","now","onmessage","compactMessage","parseMessage","ts","agentMessage","w","t","onerror","_err","delay","setTimeout","getInternals","getRunDetails","includeHistory","include_history","streamRunDetails","listChildren","getChildDetails","childWorkflowId","listArtifacts","visibility","getArtifactUrl","disposition","fileName","filename","uploadArtifact","content","contentType","mimeType","downloadArtifact","ingestEvents","agentRunId","events","getAnalyticsSummary","getTokenUsageAnalytics","getLlmLatencyAnalytics","getToolLatencyAnalytics","getAgentLatencyAnalytics","getErrorAnalytics","getToolAnalytics","getToolParameterAnalytics","getAnalyticsFilterOptions","getPromptSizeAnalytics","getTopPrincipalsAnalytics","getRunsByAgentAnalytics","getTimeToFirstResponseAnalytics","getFirstResponseBehaviorAnalytics","CollectionsApi","computeListFacets","addMembers","action","searchMembers","deleteMembers","addChildren","children","deleteChildren","searchChildren","updatePermissions","permissions","propagatePermissions","propagateSharedProperties","CostApi","getAnalytics","getGlobalAnalytics","getModelPrices","getRunPrice","getRunPriceComparison","include_comparison_pricing","getExportUrl","scope","project_id","workflow_id","EmbeddingsApi","activate","config","environment","disable","recalculate","CommandsApi","DashboardApi","storeId","storeHeaders","DataStoreApiHeaders","DATA_STORE_ID","bulkArchive","ids","bulkDelete","dashboardId","snapshotsOnly","getVersion","versionId","createSnapshot","promoteVersion","setVersioningEnabled","enabled","DataApi","getSchema","format","updateSchema","getSchemaHistory","listTables","createTables","getTable","tableName","sample","alterTable","dropTable","getImportStatus","importId","rollback","queryVersion","queryBatch","queries","validateQueries","getDownloadInfo","dashboards","EmailApi","send","resolveRoute","routeKey","route_key","createRoute","getRoute","updateRoute","updates","forwardEmail","IndexingApi","reindex","analyzeDrift","getDriftAnalysis","enableIndexing","disableIndexing","enableQueries","disableQueries","objectId","document","object_id","bulkIndex","documents","targetIndex","target_index","ensureIndex","recreate","createReindexTarget","getStats","getReindexRange","fetchBatch","getNextIndexCursor","count","analyzeDriftBatch","triggerReindex","full_reindex","fullReindex","object_ids","objectIds","recreate_index","recreateIndex","fetchDocumentsByIds","getConfiguration","zenoBulkBaseUrl","storeBaseUrl","replace","zenoBulkPost","computeShards","tenantId","shardSize","tenant_id","shard_size","indexShard","swapAlias","alias","reindexViaBulk","dryRun","bulkUrl","dry_run","lastResult","ZenoClientNotFoundError","StreamSource","MEMORIES_PREFIX","ARTIFACTS_PREFIX","getMemoryFilePath","nameWithExt","getAgentArtifactPath","FilesApi","deleteFile","prefix","uri","file","setFileMetadata","metadata","getOrCreateBucket","getUploadUrl","getDownloadUrl","getDownloadUrlWithOptions","bulkGetUploadUrls","bulkUpload","sources","concurrency","fileDescriptors","s","mime_type","files","batch","source","j","idx","isStream","sourceMimeType","duplex","etag","uploadFile","downloadFile","location","needSign","copyFile","dest","uploadMemoryPack","fileId","File","downloadMemoryPack","gunzip","ds","DecompressionStream","listByPrefix","artifactPath","getArtifactDownloadUrl","HiveMemoryApi","category","queryString","recall","tools","max_results","maxResults","getFormatted","recordUsage","getByCategory","applyDecay","days_threshold","daysThreshold","decay_rate","decayRate","archiveLowConfidence","threshold","AnalyzeDocApi","getResults","adaptTables","getAdaptedTables","queryParams","raw","responseType","getXml","getTables","getImages","getAnnotated","ObjectsApi","analyze","fileUri","getContentSource","select","all_revisions","from_root","listFolders","_path","getObjectText","upload","createPayload","processing_priority","ContentObjectApiHeaders","PROCESSING_PRIORITY","COLLECTION_ID","createFromExternalSource","updatePayload","ifMatch","createRevision","CREATE_REVISION","revisionLabel","REVISION_LABEL","suppressWorkflows","SUPPRESS_WORKFLOWS","getRevisions","getCollections","idOrIds","runOperation","bulkUpdate","bulkCreate","listWorkflowRuns","documentId","listRenditions","getRendition","max_hw","generate_if_missing","sign_url","block_on_generation","getRenditionSafe","canGenerateRendition","exportProperties","setEmbedding","PendingAsksApi","register","askId","QueryApi","sql","esql","dsl","RenderingApi","workflowId","workflowRunId","workflow_run_id","pollIntervalMs","timeoutMs","started","startTime","WorkflowExecutionStatus","COMPLETED","download_url","file_uri","isWorkflowTerminalStatus","statusLabel","sleep","ms","SchedulesApi","trigger","pause","note","resume","ToolsApi","getBuiltinCatalog","TypeCatalogApi","listSysTypes","listAppTypes","listStoredTypes","typeOrRef","TypesApi","layout","schema","getTypeByName","typeName","VERSION","VERSION_HEADER","WorkersApi","deploy","WorkflowsApi","getActivityCatalog","listRuns","ruleId","listConversations","searchRuns","historyFormat","history_format","getRunInteraction","cancel","maxReconnectAttempts","workflows","streamMessagesWS","ws","wsUrl","protocol","WebSocket","readyState","OPEN","rawMessage","debug","onclose","rules","WorkflowsRulesApi","definitions","WorkflowsDefinitionApi","vars","ZenoClient","opts","serverUrl","ensureDefined","apikey","withApiKey","withApiVersion","version","apiKey","cost","types","schedules","commands","workers","collections","email","pendingAsks","indexing","hiveMemory","rendering","TrainingApi","listSessions","listSessionNames","createSession","getSession","sessionId","addToSession","listSessionRuns","buildSession","getDataUrl","getDataUploadUrl","isResumable","resumable","startTraining","cancelTraining","getTrainingJob","jobId","getAndSyncTrainingJob","sync","setDataset","dataset","UsersApi","VertesiaClient","_jwt","store","tokenServerUrl","oauthClients","oauthGrants","oauthServer","oauthProviders","remoteMcpConnections","fromAuthToken","endpoints","decodeJWT","resolvedEndpoints","decodeEndpoints","studio","storeUrl","iss","site","studioServerUrl","zenoServerUrl","stsHost","urlToCheck","hostname","e","isApiKey","exp","isTokenExpired","jwt","getAuthToken","getRawJWT","getDecodedJWT","getProject","project","getAccount","Authorization","json","environments","interactions","skills","prompts","accounts","apikeys","analytics","auditTrail","training","users","iam","apps","decodedJson","base64","padEnd","ceil","runtimeBuffer","Buffer","atob","binary","bytes","Uint8Array","c","base64UrlDecode","getRuntimeStsUrl","runtimeProcess","process","env","STS_URL","getEndpointsFromDomain","domain","InteractionBase","clientOrOpts","_data"],"mappings":"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","x_google_ignoreList":[2]}
1
+ {"version":3,"file":"vertesia-client.js","sources":["../../api-fetch-client/lib/errors.js","../../../node_modules/.pnpm/eventsource-parser@3.1.0/node_modules/eventsource-parser/dist/index.js","../../api-fetch-client/lib/sse/EventSourceParserStream.js","../../api-fetch-client/lib/sse/TextDecoderStream.js","../../api-fetch-client/lib/utils.js","../../api-fetch-client/lib/base.js","../../api-fetch-client/lib/sse/index.js","../../api-fetch-client/lib/client.js","AccountApi.js","AccountsApi.js","AnalyticsApi.js","ApiKeysApi.js","AppsApi.js","AuditTrailApi.js","CommandsApi.js","EnvironmentsApi.js","GroupsApi.js","IamApi.js","execute.js","InteractionCatalogApi.js","InteractionOutput.js","InteractionsApi.js","OAuthClientsApi.js","OAuthGrantsApi.js","OAuthProvidersApi.js","OAuthServerApi.js","ProjectsApi.js","PromptsApi.js","RefsApi.js","RemoteMcpConnectionsApi.js","RunsApi.js","SecretsApi.js","SkillsApi.js","store/signed-url.js","store/stream-termination.js","store/AgentsApi.js","store/CollectionsApi.js","store/CostApi.js","store/DashboardApi.js","store/DataApi.js","store/EmailApi.js","store/EmbeddingsApi.js","store/errors.js","StreamSource.js","store/FilesApi.js","store/HiveMemoryApi.js","store/IndexingApi.js","store/AnalyzeDocApi.js","store/ObjectsApi.js","store/PendingAsksApi.js","store/ProcessApi.js","store/QueryApi.js","store/RenderingApi.js","store/SchedulesApi.js","store/TaskApi.js","store/ToolsApi.js","store/TypeCatalogApi.js","store/TypesApi.js","store/version.js","store/WorkflowsApi.js","store/client.js","ToolsApi.js","TrainingApi.js","UsersApi.js","client.js","InteractionBase.js"],"sourcesContent":["function isRecord(value) {\n return value !== null && typeof value === 'object';\n}\nfunction getDetails(payload) {\n if (!isRecord(payload)) {\n return undefined;\n }\n if (payload.details) {\n return payload.details;\n }\n return isRecord(payload.error) ? payload.error.details : undefined;\n}\nfunction createMessage(message, request, status, payload, displayDetails) {\n let msg = message;\n if (displayDetails) {\n msg += `\\nRequest: ${request.method} ${request.url} => ${status}`;\n const details = getDetails(payload);\n if (details) {\n const detailsType = typeof details;\n if (detailsType === 'string') {\n msg += `\\nDetails: ${details}`;\n }\n else if (detailsType === 'object') {\n msg += `\\nDetails: ${JSON.stringify(details, undefined, 2)}`;\n }\n }\n msg += '\\nStack Trace: ';\n }\n return msg;\n}\nexport class RequestError extends Error {\n status;\n payload;\n request;\n request_info;\n displayDetails;\n original_message;\n constructor(message, request, status, payload, displayDetails = true) {\n super(createMessage(message, request, status, payload, displayDetails));\n this.original_message = message;\n this.request = request;\n this.status = status;\n this.payload = payload;\n this.request_info = `${request.method} ${request.url} => ${status}`;\n this.displayDetails = displayDetails;\n }\n get details() {\n return getDetails(this.payload);\n }\n}\nexport class ServerError extends RequestError {\n constructor(message, req, status, payload, displayDetails = true) {\n super(message, req, status, payload, displayDetails);\n }\n updateDetails(details) {\n if (details !== this.details) {\n const payload = isRecord(this.payload) ? { ...this.payload, details } : { details };\n return new ServerError(this.original_message, this.request, this.status, payload, this.displayDetails);\n }\n else {\n return this;\n }\n }\n}\nexport class ConnectionError extends RequestError {\n constructor(req, err) {\n super(`Failed to connect to server: ${err.message}`, req, 0, err);\n }\n}\n//# sourceMappingURL=errors.js.map","class ParseError extends Error {\n constructor(message, options) {\n super(message), this.name = \"ParseError\", this.type = options.type, this.field = options.field, this.value = options.value, this.line = options.line;\n }\n}\nconst LF = 10, CR = 13, SPACE = 32;\nfunction noop(_arg) {\n}\nfunction createParser(config) {\n if (typeof config == \"function\")\n throw new TypeError(\n \"`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?\"\n );\n const { onEvent = noop, onError = noop, onRetry = noop, onComment, maxBufferSize } = config, pendingFragments = [];\n let pendingFragmentsLength = 0, isFirstChunk = !0, id, data = \"\", dataLines = 0, eventType, terminated = !1;\n function feed(chunk) {\n if (terminated)\n throw new Error(\n \"Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.\"\n );\n if (isFirstChunk && (isFirstChunk = !1, chunk.charCodeAt(0) === 239 && chunk.charCodeAt(1) === 187 && chunk.charCodeAt(2) === 191 && (chunk = chunk.slice(3))), pendingFragments.length === 0) {\n const trailing2 = processLines(chunk);\n trailing2 !== \"\" && (pendingFragments.push(trailing2), pendingFragmentsLength = trailing2.length), checkBufferSize();\n return;\n }\n if (chunk.indexOf(`\n`) === -1 && chunk.indexOf(\"\\r\") === -1) {\n pendingFragments.push(chunk), pendingFragmentsLength += chunk.length, checkBufferSize();\n return;\n }\n pendingFragments.push(chunk);\n const input = pendingFragments.join(\"\");\n pendingFragments.length = 0, pendingFragmentsLength = 0;\n const trailing = processLines(input);\n trailing !== \"\" && (pendingFragments.push(trailing), pendingFragmentsLength = trailing.length), checkBufferSize();\n }\n function checkBufferSize() {\n maxBufferSize !== void 0 && (pendingFragmentsLength + data.length <= maxBufferSize || (terminated = !0, pendingFragments.length = 0, pendingFragmentsLength = 0, id = void 0, data = \"\", dataLines = 0, eventType = void 0, onError(\n new ParseError(`Buffered data exceeded max buffer size of ${maxBufferSize} characters`, {\n type: \"max-buffer-size-exceeded\"\n })\n )));\n }\n function processLines(chunk) {\n let searchIndex = 0;\n if (chunk.indexOf(\"\\r\") === -1) {\n let lfIndex = chunk.indexOf(`\n`, searchIndex);\n for (; lfIndex !== -1; ) {\n if (searchIndex === lfIndex) {\n dataLines > 0 && onEvent({ id, event: eventType, data }), id = void 0, data = \"\", dataLines = 0, eventType = void 0, searchIndex = lfIndex + 1, lfIndex = chunk.indexOf(`\n`, searchIndex);\n continue;\n }\n const firstCharCode = chunk.charCodeAt(searchIndex);\n if (isDataPrefix(chunk, searchIndex, firstCharCode)) {\n const valueStart = chunk.charCodeAt(searchIndex + 5) === SPACE ? searchIndex + 6 : searchIndex + 5, value = chunk.slice(valueStart, lfIndex);\n if (dataLines === 0 && chunk.charCodeAt(lfIndex + 1) === LF) {\n onEvent({ id, event: eventType, data: value }), id = void 0, data = \"\", eventType = void 0, searchIndex = lfIndex + 2, lfIndex = chunk.indexOf(`\n`, searchIndex);\n continue;\n }\n data = dataLines === 0 ? value : `${data}\n${value}`, dataLines++;\n } else isEventPrefix(chunk, searchIndex, firstCharCode) ? eventType = chunk.slice(\n chunk.charCodeAt(searchIndex + 6) === SPACE ? searchIndex + 7 : searchIndex + 6,\n lfIndex\n ) || void 0 : parseLine(chunk, searchIndex, lfIndex);\n searchIndex = lfIndex + 1, lfIndex = chunk.indexOf(`\n`, searchIndex);\n }\n return chunk.slice(searchIndex);\n }\n for (; searchIndex < chunk.length; ) {\n const crIndex = chunk.indexOf(\"\\r\", searchIndex), lfIndex = chunk.indexOf(`\n`, searchIndex);\n let lineEnd = -1;\n if (crIndex !== -1 && lfIndex !== -1 ? lineEnd = crIndex < lfIndex ? crIndex : lfIndex : crIndex !== -1 ? crIndex === chunk.length - 1 ? lineEnd = -1 : lineEnd = crIndex : lfIndex !== -1 && (lineEnd = lfIndex), lineEnd === -1)\n break;\n parseLine(chunk, searchIndex, lineEnd), searchIndex = lineEnd + 1, chunk.charCodeAt(searchIndex - 1) === CR && chunk.charCodeAt(searchIndex) === LF && searchIndex++;\n }\n return chunk.slice(searchIndex);\n }\n function parseLine(chunk, start, end) {\n if (start === end) {\n dispatchEvent();\n return;\n }\n const firstCharCode = chunk.charCodeAt(start);\n if (isDataPrefix(chunk, start, firstCharCode)) {\n const valueStart = chunk.charCodeAt(start + 5) === SPACE ? start + 6 : start + 5, value2 = chunk.slice(valueStart, end);\n data = dataLines === 0 ? value2 : `${data}\n${value2}`, dataLines++;\n return;\n }\n if (isEventPrefix(chunk, start, firstCharCode)) {\n eventType = chunk.slice(chunk.charCodeAt(start + 6) === SPACE ? start + 7 : start + 6, end) || void 0;\n return;\n }\n if (firstCharCode === 105 && chunk.charCodeAt(start + 1) === 100 && chunk.charCodeAt(start + 2) === 58) {\n const value2 = chunk.slice(chunk.charCodeAt(start + 3) === SPACE ? start + 4 : start + 3, end);\n id = value2.includes(\"\\0\") ? void 0 : value2;\n return;\n }\n if (firstCharCode === 58) {\n if (onComment) {\n const line2 = chunk.slice(start, end);\n onComment(line2.slice(chunk.charCodeAt(start + 1) === SPACE ? 2 : 1));\n }\n return;\n }\n const line = chunk.slice(start, end), fieldSeparatorIndex = line.indexOf(\":\");\n if (fieldSeparatorIndex === -1) {\n processField(line, \"\", line);\n return;\n }\n const field = line.slice(0, fieldSeparatorIndex), offset = line.charCodeAt(fieldSeparatorIndex + 1) === SPACE ? 2 : 1, value = line.slice(fieldSeparatorIndex + offset);\n processField(field, value, line);\n }\n function processField(field, value, line) {\n switch (field) {\n case \"event\":\n eventType = value || void 0;\n break;\n case \"data\":\n data = dataLines === 0 ? value : `${data}\n${value}`, dataLines++;\n break;\n case \"id\":\n id = value.includes(\"\\0\") ? void 0 : value;\n break;\n case \"retry\":\n /^\\d+$/.test(value) ? onRetry(parseInt(value, 10)) : onError(\n new ParseError(`Invalid \\`retry\\` value: \"${value}\"`, {\n type: \"invalid-retry\",\n value,\n line\n })\n );\n break;\n default:\n onError(\n new ParseError(\n `Unknown field \"${field.length > 20 ? `${field.slice(0, 20)}\\u2026` : field}\"`,\n { type: \"unknown-field\", field, value, line }\n )\n );\n break;\n }\n }\n function dispatchEvent() {\n dataLines > 0 && onEvent({\n id,\n event: eventType,\n data\n }), id = void 0, data = \"\", dataLines = 0, eventType = void 0;\n }\n function reset(options = {}) {\n if (options.consume && pendingFragments.length > 0) {\n const incompleteLine = pendingFragments.join(\"\");\n parseLine(incompleteLine, 0, incompleteLine.length);\n }\n isFirstChunk = !0, id = void 0, data = \"\", dataLines = 0, eventType = void 0, pendingFragments.length = 0, pendingFragmentsLength = 0, terminated = !1;\n }\n return { feed, reset };\n}\nfunction isDataPrefix(chunk, i, firstCharCode) {\n return firstCharCode === 100 && chunk.charCodeAt(i + 1) === 97 && chunk.charCodeAt(i + 2) === 116 && chunk.charCodeAt(i + 3) === 97 && chunk.charCodeAt(i + 4) === 58;\n}\nfunction isEventPrefix(chunk, i, firstCharCode) {\n return firstCharCode === 101 && chunk.charCodeAt(i + 1) === 118 && chunk.charCodeAt(i + 2) === 101 && chunk.charCodeAt(i + 3) === 110 && chunk.charCodeAt(i + 4) === 116 && chunk.charCodeAt(i + 5) === 58;\n}\nexport {\n ParseError,\n createParser\n};\n//# sourceMappingURL=index.js.map\n","import { createParser } from 'eventsource-parser';\n/**\n * We copied this file from the eventsource-parser/stream package and made it a part of our project.\n * because importing the eventsource-parser/stream breaks tsc build when building the commonjs version\n * see for a similar error:\n * https://stackoverflow.com/questions/77280140/why-typescript-dont-see-exports-of-package-with-module-commonjs-and-moduleres\n */\n/**\n * A TransformStream that ingests a stream of strings and produces a stream of ParsedEvents.\n *\n * @example\n * ```\n * const eventStream =\n * response.body\n * .pipeThrough(new TextDecoderStream())\n * .pipeThrough(new EventSourceParserStream())\n * ```\n * @public\n */\nexport class EventSourceParserStream extends TransformStream {\n constructor() {\n let parser;\n super({\n start(controller) {\n parser = createParser({\n onEvent(event) {\n const parsedEvent = { type: 'event', ...event };\n controller.enqueue(parsedEvent);\n },\n });\n },\n transform(chunk) {\n parser.feed(chunk);\n },\n });\n }\n}\n//# sourceMappingURL=EventSourceParserStream.js.map","/**\n * Decode a stream of bytes into a stream of characters.\n * Some javascript env like Bun.js doesn't supports the TextDecoderStream (as for jan 2024)\n * This is a polyfill for bunJS\n */\nlet _TextDecoderStream;\nif (globalThis.TextDecoderStream && typeof globalThis.TextDecoderStream === 'function') {\n _TextDecoderStream = globalThis.TextDecoderStream;\n}\nelse {\n class MyTextDecoderStream extends TransformStream {\n _options;\n constructor(encoding = 'utf-8', { fatal = false, ignoreBOM = false, } = {}) {\n super(new TextDecodeTransformer(new TextDecoder(encoding, { fatal, ignoreBOM })));\n this._options = { fatal, ignoreBOM, encoding };\n }\n get encoding() {\n return this._options.encoding;\n }\n get fatal() {\n return this._options.fatal;\n }\n get ignoreBOM() {\n return this._options.ignoreBOM;\n }\n }\n class TextDecodeTransformer {\n decoder;\n constructor(decoder) {\n this.decoder = decoder;\n }\n transform(chunk, controller) {\n if (!(chunk instanceof ArrayBuffer || ArrayBuffer.isView(chunk))) {\n throw new TypeError('Input must be a compatible with: ArrayBuffer | Uint8Array');\n }\n const text = this.decoder.decode(chunk, { stream: true });\n if (text.length !== 0) {\n controller.enqueue(text);\n }\n }\n flush(controller) {\n const text = this.decoder.decode();\n if (text.length !== 0) {\n controller.enqueue(text);\n }\n }\n }\n _TextDecoderStream = MyTextDecoderStream;\n}\nexport { _TextDecoderStream as TextDecoderStream };\n//# sourceMappingURL=TextDecoderStream.js.map","export function buildQueryString(query) {\n const parts = [];\n for (const key of Object.keys(query)) {\n const val = query[key];\n if (val != null) {\n parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(val))}`);\n }\n }\n return parts.join('&');\n}\nexport function join(left, right) {\n if (left.endsWith('/')) {\n if (right.startsWith('/')) {\n return left + right.substring(1);\n }\n else {\n return left + right;\n }\n }\n else if (right.startsWith('/')) {\n return left + right;\n }\n else {\n return `${left}/${right}`;\n }\n}\nexport function removeTrailingSlash(path) {\n if (path[path.length - 1] === '/') {\n return path.slice(0, -1);\n }\n return path;\n}\n//# sourceMappingURL=utils.js.map","import { ConnectionError, ServerError } from './errors.js';\nimport { sse } from './sse/index.js';\nimport { buildQueryString, join, removeTrailingSlash } from './utils.js';\nconst DEFAULT_RETRY_METHODS = ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE'];\nconst DEFAULT_RETRY_STATUSES = [502, 503, 504];\nconst DEFAULT_RETRY_ATTEMPTS = 3;\nconst DEFAULT_RETRY_BASE_DELAY_MS = 250;\nconst DEFAULT_RETRY_MAX_DELAY_MS = 4000;\nfunction isRecord(value) {\n return value !== null && typeof value === 'object';\n}\nexport function fetchPromise(fetchImpl) {\n if (fetchImpl) {\n return Promise.resolve(fetchImpl);\n }\n else if (typeof globalThis.fetch === 'function') {\n return Promise.resolve(globalThis.fetch);\n }\n else {\n // install an error impl\n return Promise.resolve(() => {\n throw new Error('No Fetch implementation found');\n });\n }\n}\nfunction isInvalidJsonPayload(payload) {\n return isRecord(payload) && payload.error === 'Not a valid JSON payload' && typeof payload.text === 'string';\n}\nfunction isReplayableBody(body) {\n return !body || typeof ReadableStream === 'undefined' || !(body instanceof ReadableStream);\n}\n/**\n * True for a 5xx whose Content-Type is not JSON. The application serializes its errors as JSON, so a\n * non-JSON 5xx (HTML/text, or no content-type) is an edge/LB/gateway failure — e.g. a Cloud Run\n * \"no available instance\" or GFE \"try again in 30 seconds\" page — which is transient and retryable.\n * Reads only headers (no body consumption), so it is safe to call before deciding to retry.\n */\nfunction isNonJsonServerError(res) {\n if (res.status < 500) {\n return false;\n }\n const contentType = (res.headers.get('content-type') ?? '').toLowerCase();\n return !contentType.includes('json');\n}\nfunction normalizeRetryPolicy(policy) {\n const attempts = Math.max(1, Math.floor(policy.attempts ?? DEFAULT_RETRY_ATTEMPTS));\n const baseDelayMs = Math.max(0, policy.baseDelayMs ?? DEFAULT_RETRY_BASE_DELAY_MS);\n const maxDelayMs = Math.max(baseDelayMs, policy.maxDelayMs ?? DEFAULT_RETRY_MAX_DELAY_MS);\n return {\n attempts,\n methods: new Set((policy.methods ?? DEFAULT_RETRY_METHODS).map((method) => method.toUpperCase())),\n statuses: new Set(policy.statuses ?? DEFAULT_RETRY_STATUSES),\n retryNonJsonServerErrors: policy.retryNonJsonServerErrors ?? true,\n retryOnConnectionError: policy.retryOnConnectionError ?? true,\n baseDelayMs,\n maxDelayMs,\n jitter: policy.jitter ?? true,\n };\n}\nfunction retryAfterDelayMs(res) {\n const retryAfter = res.headers.get('retry-after');\n if (!retryAfter) {\n return undefined;\n }\n const seconds = Number(retryAfter);\n if (Number.isFinite(seconds) && seconds >= 0) {\n return seconds * 1000;\n }\n const retryAt = Date.parse(retryAfter);\n if (!Number.isNaN(retryAt)) {\n return Math.max(0, retryAt - Date.now());\n }\n return undefined;\n}\nfunction retryDelayMs(policy, attempt, res) {\n const retryAfter = res ? retryAfterDelayMs(res) : undefined;\n const delay = retryAfter ?? Math.min(policy.maxDelayMs, policy.baseDelayMs * 2 ** attempt);\n return policy.jitter ? Math.floor(Math.random() * delay) : delay;\n}\nfunction toError(err) {\n return err instanceof Error ? err : new Error(String(err));\n}\n/**\n * True for an AbortSignal-driven failure (caller abort or our timeout). Checks `name` rather than\n * `instanceof Error` because runtimes surface these as a `DOMException` (`TimeoutError`/`AbortError`),\n * which is not always an `Error` subclass in browsers.\n */\nfunction isAbortError(err) {\n return (typeof err === 'object' &&\n err !== null &&\n 'name' in err &&\n (err.name === 'TimeoutError' || err.name === 'AbortError'));\n}\n/**\n * Browser + Node safe `AbortSignal.timeout(ms)`, with a fallback for runtimes that lack it.\n */\nfunction timeoutSignal(ms) {\n const timeoutFn = AbortSignal.timeout;\n if (typeof timeoutFn === 'function') {\n return timeoutFn(ms);\n }\n const controller = new AbortController();\n setTimeout(() => controller.abort(new DOMException('The operation timed out', 'TimeoutError')), ms);\n return controller.signal;\n}\n/**\n * Merge abort signals (caller + timeout). Uses the standard `AbortSignal.any` when available, with a\n * manual fallback for older runtimes. Returns undefined when there is nothing to combine.\n */\nfunction combineAbortSignals(signals) {\n const list = signals.filter((s) => !!s);\n if (list.length === 0) {\n return undefined;\n }\n if (list.length === 1) {\n return list[0];\n }\n const anyFn = AbortSignal.any;\n if (typeof anyFn === 'function') {\n return anyFn(list);\n }\n const controller = new AbortController();\n for (const s of list) {\n if (s.aborted) {\n controller.abort(s.reason);\n break;\n }\n s.addEventListener('abort', () => controller.abort(s.reason), { once: true });\n }\n return controller.signal;\n}\nasync function discardBody(res) {\n try {\n await res.body?.cancel();\n }\n catch {\n // Ignore body cleanup failures while retrying the original request.\n }\n}\nexport class ClientBase {\n _fetch;\n baseUrl;\n errorFactory = (err) => err;\n verboseErrors = true;\n retryPolicy;\n defaultTimeoutMs;\n constructor(baseUrl, fetchImpl) {\n this.baseUrl = removeTrailingSlash(baseUrl);\n this._fetch = fetchPromise(fetchImpl);\n }\n /**\n * Can be subclassed to map to custom errors\n * @param err\n */\n throwError(err) {\n throw this.errorFactory(err);\n }\n withRetryPolicy(policy) {\n this.retryPolicy = policy || undefined;\n return this;\n }\n getRetryPolicy() {\n return this.retryPolicy;\n }\n /**\n * Set a default request timeout (ms) applied to every request unless overridden per-request via\n * `timeoutMs`. Pass `false`/`null`/`0` to clear it. The timeout aborts the whole request\n * (connection + response headers + body consumption) via AbortSignal.\n */\n withTimeout(timeoutMs) {\n this.defaultTimeoutMs = typeof timeoutMs === 'number' && timeoutMs > 0 ? timeoutMs : undefined;\n return this;\n }\n getTimeout() {\n return this.defaultTimeoutMs;\n }\n /**\n * Resolve the effective timeout for a request: per-request `timeoutMs` wins (a positive number\n * sets it; `false`/`null`/`0` disables it), otherwise the client default applies. SSE streams are\n * never given a total-request timeout.\n */\n resolveTimeout(params) {\n if (params?.reader === 'sse') {\n return undefined;\n }\n const requestTimeout = params?.timeoutMs;\n if (requestTimeout === false || requestTimeout === null) {\n return undefined;\n }\n if (typeof requestTimeout === 'number') {\n return requestTimeout > 0 ? requestTimeout : undefined;\n }\n const clientTimeout = this.getTimeout();\n return clientTimeout && clientTimeout > 0 ? clientTimeout : undefined;\n }\n /**\n * Resolve a path to a full URL. If the path is already an absolute URL\n * (starts with http:// or https://), it is returned as-is.\n */\n getUrl(path) {\n if (path.startsWith('http://') || path.startsWith('https://')) {\n return removeTrailingSlash(path);\n }\n return removeTrailingSlash(join(this.baseUrl, path));\n }\n get(path, params) {\n return this.request('GET', path, params);\n }\n del(path, params) {\n return this.request('DELETE', path, params);\n }\n delete(path, params) {\n return this.request('DELETE', path, params);\n }\n post(path, params) {\n return this.request('POST', path, params);\n }\n put(path, params) {\n return this.request('PUT', path, params);\n }\n /**\n * You can customize the json parser by overriding this method\n * @param text\n * @returns\n */\n jsonParse(text) {\n return JSON.parse(text);\n }\n /**\n * Can be overridden to create the request\n * @param fetch\n * @param url\n * @param init\n * @returns\n */\n createRequest(url, init) {\n return Promise.resolve(new Request(url, init));\n }\n handleFetchResponse(_req, _res) { }\n createServerError(req, res, payload) {\n const status = res.status;\n let message = `Server Error: ${status}`;\n if (payload) {\n if (isInvalidJsonPayload(payload)) {\n message += res.statusText ? ` ${res.statusText}` : '';\n message += ': non-JSON response';\n }\n else if (isRecord(payload) && payload.message) {\n message = String(payload.message);\n }\n else if (isRecord(payload) && payload.error) {\n if (typeof payload.error === 'string') {\n message = String(payload.error);\n }\n else if (isRecord(payload.error) && typeof payload.error.message === 'string') {\n message = payload.error.message;\n }\n }\n }\n return new ServerError(message, req, res.status, payload, this.verboseErrors);\n }\n async readJSONPayload(res) {\n return res\n .text()\n .then((text) => {\n if (!text) {\n return undefined;\n }\n else {\n try {\n return this.jsonParse(text);\n }\n catch (err) {\n return {\n status: res.status,\n error: 'Not a valid JSON payload',\n message: err instanceof Error ? err.message : String(err),\n text: text,\n };\n }\n }\n })\n .catch((err) => {\n // A timeout/abort during body consumption is a real failure — surface it instead of\n // swallowing it into an error payload that would otherwise be returned as the result.\n if (isAbortError(err)) {\n throw err;\n }\n return {\n status: res.status,\n error: 'Unable to load response content',\n message: err instanceof Error ? err.message : String(err),\n };\n });\n }\n /**\n * Subclasses You can override this to do something with the response\n * @param res\n */\n handleResponse(req, res, params) {\n if (params?.reader) {\n if (params.reader === 'sse') {\n return sse(res);\n }\n else {\n return params.reader.call(this, res);\n }\n }\n else {\n return this.readJSONPayload(res).then((payload) => {\n if (res.ok) {\n return payload;\n }\n else {\n this.throwError(this.createServerError(req, res, payload));\n }\n });\n }\n }\n async request(method, path, params) {\n let url = this.getUrl(path);\n if (params?.query) {\n url += `?${buildQueryString(params.query)}`;\n }\n const headers = this.headers ? Object.assign({}, this.headers) : {};\n const paramsHeaders = params?.headers;\n if (paramsHeaders) {\n for (const key in paramsHeaders) {\n headers[key.toLowerCase()] = paramsHeaders[key];\n }\n }\n let body;\n const payload = params?.payload;\n if (payload) {\n if (params && params.jsonPayload === false) {\n body = payload;\n }\n else {\n body = typeof payload !== 'string' ? JSON.stringify(payload) : payload;\n if (!('content-type' in headers)) {\n headers['content-type'] = 'application/json';\n }\n }\n }\n // When using SSE reader, ensure the Accept header requests event-stream\n if (params?.reader === 'sse') {\n headers.accept = 'text/event-stream';\n }\n const normalizedMethod = method.toUpperCase();\n // Resolved once; createRequestInit() then mints a FRESH timeout signal per attempt so each\n // retry gets its own deadline. The signal is set on the Request, so it bounds the connection,\n // the wait for response headers, AND body consumption (handleResponse reads res.text()).\n const timeoutMs = this.resolveTimeout(params);\n const createRequestInit = () => {\n const signal = combineAbortSignals([params?.signal, timeoutMs ? timeoutSignal(timeoutMs) : undefined]);\n const init = {\n method: normalizedMethod,\n headers: Object.assign({}, headers),\n body: body,\n };\n if (signal) {\n init.signal = signal;\n }\n return init;\n };\n const retryPolicy = this.resolveRetryPolicy(params);\n const fetch = await this._fetch;\n if (!retryPolicy) {\n const req = await this.createRequest(url, createRequestInit());\n let res;\n try {\n res = await fetch(req);\n }\n catch (err) {\n console.error(`Failed to connect to ${url}`, err);\n this.throwError(new ConnectionError(req, toError(err)));\n }\n this.handleFetchResponse(req, res);\n return this.handleResponse(req, res, params);\n }\n const replayableBody = isReplayableBody(body);\n let lastReq;\n for (let attempt = 0; attempt < retryPolicy.attempts; attempt++) {\n const req = await this.createRequest(url, createRequestInit());\n lastReq = req;\n let res;\n try {\n res = await fetch(req);\n }\n catch (err) {\n if (!this.shouldRetryConnectionError(retryPolicy, normalizedMethod, attempt, replayableBody)) {\n console.error(`Failed to connect to ${url}`, err);\n this.throwError(new ConnectionError(req, toError(err)));\n }\n await this.waitBeforeRetry(retryPolicy, attempt);\n continue;\n }\n this.handleFetchResponse(req, res);\n if (this.shouldRetryResponse(retryPolicy, normalizedMethod, attempt, replayableBody, res)) {\n await discardBody(res);\n await this.waitBeforeRetry(retryPolicy, attempt, res);\n continue;\n }\n return this.handleResponse(req, res, params);\n }\n if (lastReq) {\n this.throwError(new ConnectionError(lastReq, new Error(`Retry attempts exhausted for ${normalizedMethod} ${url}`)));\n }\n throw new Error(`Retry attempts exhausted for ${normalizedMethod} ${url}`);\n }\n resolveRetryPolicy(params) {\n if (params?.reader === 'sse' || params?.retryPolicy === false || params?.retryPolicy === null) {\n return undefined;\n }\n const requestPolicy = params?.retryPolicy;\n const clientPolicy = this.getRetryPolicy();\n if (!requestPolicy && !clientPolicy) {\n return undefined;\n }\n const policy = normalizeRetryPolicy({\n ...clientPolicy,\n ...requestPolicy,\n });\n return policy.attempts > 1 ? policy : undefined;\n }\n shouldRetryResponse(policy, method, attempt, replayableBody, res) {\n const retryableStatus = policy.statuses.has(res.status) || (policy.retryNonJsonServerErrors && isNonJsonServerError(res));\n return attempt < policy.attempts - 1 && replayableBody && policy.methods.has(method) && retryableStatus;\n }\n shouldRetryConnectionError(policy, method, attempt, replayableBody) {\n return (attempt < policy.attempts - 1 &&\n replayableBody &&\n policy.retryOnConnectionError &&\n policy.methods.has(method));\n }\n waitBeforeRetry(policy, attempt, res) {\n const delay = retryDelayMs(policy, attempt, res);\n return new Promise((resolve) => setTimeout(resolve, delay));\n }\n /**\n * Perform a request and consume the response as an SSE stream.\n * Calls `onEvent` for each parsed SSE event, then returns the last event.\n *\n * @param method HTTP method\n * @param path URL path (relative to baseUrl) or absolute URL (http:// or https://)\n * @param params Request parameters (payload, headers, query)\n * @param onEvent Callback for each SSE event\n * @returns The last SSE event received, or undefined if the stream was empty\n */\n async sseRequest(method, path, params, onEvent) {\n const stream = (await this.request(method, path, {\n ...params,\n reader: 'sse',\n }));\n const reader = stream.getReader();\n let lastEvent;\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n break;\n lastEvent = value;\n onEvent(value);\n }\n }\n finally {\n reader.releaseLock();\n }\n return lastEvent;\n }\n /**\n * Expose the fetch method\n * @param input\n * @param init\n * @returns\n */\n fetch(input, init) {\n return this._fetch.then((fetch) => fetch(input, init));\n }\n}\n//# sourceMappingURL=base.js.map","import { EventSourceParserStream } from './EventSourceParserStream.js';\nimport { TextDecoderStream } from './TextDecoderStream.js';\n/**\n * A SSE response reader.\n * Usage client.get('/path', {reader: sse}) or client.post('/path', {reader: sse})\n * where sse is this function\n * @param response\n * @returns\n */\nexport async function sse(response) {\n if (!response.ok) {\n const text = await response.text();\n const error = new Error(`SSE error: ${response.status}. Content:\\n${text}`);\n error.status = response.status;\n throw error;\n }\n if (!response.body) {\n throw new Error('No body in response');\n }\n return response.body.pipeThrough(new TextDecoderStream()).pipeThrough(new EventSourceParserStream());\n}\n// re-export TextDecoderStream (in case it was polyfilled)\nexport { TextDecoderStream };\n//# sourceMappingURL=index.js.map","import { ClientBase } from './base.js';\nfunction isAuthorizationHeaderSet(headers) {\n if (!headers)\n return false;\n return 'authorization' in headers;\n}\nfunction isServerFetchRuntime() {\n const runtime = globalThis;\n return (typeof runtime.window === 'undefined' &&\n (typeof runtime.process?.versions?.node === 'string' ||\n typeof runtime.process?.versions?.bun === 'string' ||\n typeof runtime.Bun !== 'undefined'));\n}\nexport class AbstractFetchClient extends ClientBase {\n headers;\n _auth;\n // callbacks useful to log requests and responses\n onRequest;\n onResponse;\n // the last response. Can be used to inspect the response headers\n response;\n constructor(baseUrl, fetchImpl) {\n super(baseUrl, fetchImpl);\n this.baseUrl = baseUrl[baseUrl.length - 1] === '/' ? baseUrl.substring(0, baseUrl.length - 1) : baseUrl;\n this.headers = this.initialHeaders;\n }\n get initialHeaders() {\n const headers = { accept: 'application/json' };\n if (isServerFetchRuntime()) {\n headers['accept-encoding'] = 'br, gzip, deflate';\n }\n return headers;\n }\n /**\n * Install an auth callback. If the callback is undefined or null then remove the auth callback.\n * @param authCb a function returning a promise that resolves to the value to use for the authorization header\n * @returns the client instance\n */\n withAuthCallback(authCb) {\n this._auth = authCb || undefined;\n return this;\n }\n withErrorFactory(factory) {\n this.errorFactory = factory;\n return this;\n }\n withLang(locale) {\n if (locale) {\n this.headers['accept-language'] = locale;\n }\n else {\n delete this.headers['accept-language'];\n }\n return this;\n }\n withHeaders(headers) {\n const thisHeaders = this.headers;\n for (const key in headers) {\n const value = headers[key];\n if (value != null) {\n thisHeaders[key.toLowerCase()] = value;\n }\n }\n return this;\n }\n setHeader(key, value) {\n if (!value) {\n delete this.headers[key.toLowerCase()];\n }\n else {\n this.headers[key.toLowerCase()] = value;\n }\n }\n async createRequest(url, init) {\n if (this._auth && !isAuthorizationHeaderSet(init.headers)) {\n const headers = (init.headers ? init.headers : {});\n init.headers = headers;\n const auth = await this._auth();\n if (auth) {\n init.headers.authorization = auth;\n }\n }\n this.response = undefined;\n const request = await super.createRequest(url, init);\n this.onRequest?.(request);\n return request;\n }\n handleFetchResponse(req, res) {\n this.response = res; // store last response\n this.onResponse?.(res, req);\n }\n}\nexport class FetchClient extends AbstractFetchClient {\n}\nexport class ApiTopic extends ClientBase {\n client;\n constructor(client, basePath) {\n //TODO we should refactor the way ClientBase and ApiTopic is created\n // to avoid cloning all customizations\n super(client.getUrl(basePath), client._fetch);\n this.client = client;\n this.createServerError = client.createServerError;\n this.errorFactory = client.errorFactory;\n this.verboseErrors = client.verboseErrors;\n }\n createRequest(url, init) {\n return this.client.createRequest(url, init);\n }\n handleResponse(req, res, params) {\n return this.client.handleResponse(req, res, params);\n }\n handleFetchResponse(req, res) {\n this.client.handleFetchResponse(req, res);\n }\n getRetryPolicy() {\n return this.client.getRetryPolicy();\n }\n getTimeout() {\n return this.client.getTimeout();\n }\n get headers() {\n return this.client.headers;\n }\n}\n//# sourceMappingURL=client.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport default class AccountApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/account');\n }\n /**\n * Retrieve all account information for current account\n * @returns Account[]\n */\n info() {\n return this.get('/');\n }\n /**\n * Update account information\n * @returns Account\n */\n update(payload) {\n return this.put('/', { payload });\n }\n /**\n * Get all projects for account\n */\n projects() {\n return this.get('/projects').then((res) => res.data);\n }\n members() {\n return this.get('/members');\n }\n /**\n * Invite User to account\n */\n inviteUser(payload) {\n return this.post('/invites', { payload });\n }\n /**\n * Fetch Invites for Principal\n * @returns UserInviteTokenData[]\n * */\n listInvites() {\n return this.get('/invites');\n }\n /**\n * Fetch Invites for specific account or project\n * @param type Filter for the type of invitation, either \"project\" or \"account\"\n * @returns UserInviteTokenData[]\n * */\n listInvitation(type = 'project') {\n return this.get(`/invites/${type}`);\n }\n /**\n * Accept Invite for account\n * @returns InviteAcceptanceResponse\n * */\n acceptInvite(id) {\n return this.put(`/invites/${id}`);\n }\n /**\n * Delete Invite for account\n * @returns InviteDeclineResponse\n * */\n rejectInvite(id) {\n return this.del(`/invites/${id}`);\n }\n /**\n * Get Onboarding Progress for account\n */\n onboardingProgress() {\n return this.get('/onboarding');\n }\n getStripeBillingStatus() {\n return this.get('/stripe-billing-status');\n }\n}\n//# sourceMappingURL=AccountApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport default class AccountsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/accounts');\n }\n create(name) {\n return this.post('/', { payload: { name } });\n }\n list() {\n return this.get('/');\n }\n}\n//# sourceMappingURL=AccountsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport default class AnalyticsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/analytics');\n }\n runsSummary(query, environmentId) {\n const params = new URLSearchParams();\n if (query?.start)\n params.set('start', query.start);\n if (query?.end)\n params.set('end', query.end);\n if (environmentId)\n params.set('environment', environmentId);\n const qs = params.toString();\n return this.get(`/runs/summary${qs ? `?${qs}` : ''}`);\n }\n runsTimeSeries(query, environmentId) {\n const params = new URLSearchParams();\n if (query?.start)\n params.set('start', query.start);\n if (query?.end)\n params.set('end', query.end);\n if (environmentId)\n params.set('environment', environmentId);\n const qs = params.toString();\n return this.get(`/runs/time-series${qs ? `?${qs}` : ''}`);\n }\n runsTokenUsage(query, environmentId) {\n const params = new URLSearchParams();\n if (query?.start)\n params.set('start', query.start);\n if (query?.end)\n params.set('end', query.end);\n if (environmentId)\n params.set('environment', environmentId);\n const qs = params.toString();\n return this.get(`/runs/token-usage${qs ? `?${qs}` : ''}`);\n }\n}\n//# sourceMappingURL=AnalyticsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport class ApiKeysApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/apikeys');\n }\n /**\n * List all keys for account without values\n * @returns ApiKey[]\n */\n list(level = 'account') {\n return this.get('/', { query: { level } });\n }\n /**\n * Create an new ApiKey for account\n * BE VERY CAREFUL USING THIS API\n * ALL REQUESTS ARE LOGGED IN SECURITY AUDIT LOG\n * @returns ApiKeyWithValue\n */\n create(payload) {\n return this.post('/', { payload });\n }\n /**\n * Update an existing ApiKey for account\n * @returns ApiKey\n */\n update(id, payload) {\n return this.put(`/${id}`, { payload });\n }\n retrieve(id, withValue = false) {\n if (withValue) {\n return this.get(`/${id}`, { query: { withValue: true } });\n }\n return this.get(`/${id}`);\n }\n delete(id) {\n return this.del(`/${id}`);\n }\n getToken(id) {\n return this.get(`/${id}/token`);\n }\n /**\n * get or create a temporary public key which can be used from browser to browse and execute interactions.\n * If a public key already exists for the given project (or for the current organization) then it is returned, otherwise a new one is created.\n * The payload object can contain the following properties:\n * - name: the name of the public key. If not specified a random name is generated.\n * - projectId: the id of the project to which the public key will be associated.\n * If not specified the key is associated with the current organization. (i.e. account).\n * - ttl: the time to live of the public key in seconds.\n * The ttl defaults to 1h.\n * @param opts\n * @returns\n */\n requestPublicKey(payload = {}) {\n return this.get('/pk', { query: payload });\n }\n}\n//# sourceMappingURL=ApiKeysApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport default class AppsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/apps');\n }\n create(manifest) {\n return this.post('/', { payload: manifest });\n }\n update(id, manifest) {\n return this.put(`/${id}`, { payload: manifest });\n }\n /**\n * Preview what the cascade delete would remove. Calls DELETE without confirm,\n * which the server treats as a dry-run and returns counts + paths.\n */\n previewDelete(id) {\n return this.del(`/${id}`);\n }\n /**\n * Cascade-delete an app and everything attached to it (versions,\n * installations + ACEs, git repo on the app-git server). Pass through\n * the dry-run summary; confirm flag is required server-side.\n */\n deleteApp(id) {\n return this.del(`/${id}`, { query: { confirm: 'true' } });\n }\n listVersions(query) {\n return this.get('/versions', {\n query: {\n ...(query?.app_id && { app_id: query.app_id }),\n ...(query?.kind && { kind: query.kind }),\n ...(query?.include_expired !== undefined && { include_expired: query.include_expired }),\n ...(query?.limit !== undefined && { limit: query.limit }),\n },\n });\n }\n upsertVersion(payload) {\n return this.post('/versions', { payload });\n }\n getVersion(recordId) {\n return this.get(`/versions/${recordId}`);\n }\n activateVersion(recordId) {\n return this.post(`/versions/${recordId}/activate`);\n }\n startBuild(appIdOrRecordId, payload) {\n return this.post(`/${encodeURIComponent(appIdOrRecordId)}/builds`, { payload });\n }\n getBuildProgress(appIdOrRecordId, workflowId, runId) {\n return this.get(`/${encodeURIComponent(appIdOrRecordId)}/builds/${encodeURIComponent(workflowId)}/${encodeURIComponent(runId)}/progress`);\n }\n /**\n * Get the list if tools provided by the given app.\n * @param appId\n * @returns\n */\n listAppInstallationTools(appInstallId) {\n return this.get(`/installations/${appInstallId}/tools`);\n }\n /**\n * Inspect an app's registration: resolved manifest state, what the published\n * package actually exposes per capability, endpoint reachability, install\n * state, and diagnostics. Use this to verify what an app registers vs what it\n * declares, instead of inferring it from failed object/import calls.\n */\n inspect(appIdOrName) {\n return this.get(`/${appIdOrName}/inspect`);\n }\n /**\n * Get package capabilities exposed by an app installation.\n */\n getAppInstallationPackage(appInstallId, scope = 'all') {\n return this.get(`/installations/${appInstallId}/package`, {\n query: {\n scope: Array.isArray(scope) ? scope.join(',') : scope,\n },\n });\n }\n /**\n * Fetch the always-on system tools package served by studio-server.\n * Tools and skills (`learn_*`) are returned on separate fields so UIs can\n * render them distinctly. URLs are already resolved per deployment.\n */\n getSystemToolsPackage(scope = 'tools') {\n return this.get('/studio-tools/package', { query: { scope } });\n }\n /**\n * @param ids - ids to filter by\n * @returns the app manifests but without the agent.tool property which can be big.\n */\n list() {\n return this.get('/');\n }\n /**\n * Install the app with the given id in the current project.\n * @param appId - the id of the app to install\n */\n install(appId, settings, oauthParams, oauthProviderParams) {\n return this.post(`/install`, {\n payload: {\n app_id: appId,\n settings,\n oauth_params: oauthParams,\n oauth_provider_params: oauthProviderParams,\n },\n });\n }\n /**\n * Remove the given app from the current project.\n * @param installationId - the id of the app installation\n * @returns\n */\n uninstall(installationId) {\n return this.del(`/install/${installationId}`);\n }\n /**\n * get an app unstallation given its name or null if the app is not installed\n * @returns\n */\n getAppInstallationByName(appName) {\n return this.get(`/installations/name/${appName}`).catch((err) => {\n if (err.status === 404) {\n return null;\n }\n else {\n throw err;\n }\n });\n }\n /**\n * Get the project refs where the application is visible by the current user.\n * The application is specified either by id or by name.\n * @param param0\n * @returns\n */\n getAppInstallationProjects(app) {\n if (!app.id && !app.name) {\n throw new Error('Invalid arguments: appId or appName must be specified');\n }\n const query = app.id\n ? {\n id: app.id,\n }\n : {\n name: app.name,\n };\n return this.get('/installations/projects', {\n query,\n });\n }\n /**\n * Get the apps installed for the current authenticated project\n * @param kind - the kind of app installations to filter by (e.g., 'agent', 'tool', etc.)\n */\n getInstalledApps(kind) {\n return this.get('/installations', {\n query: {\n kind,\n },\n });\n }\n /**\n * This operation will return an array of all the found AppInstallations in the current project\n * including orphaned installations\n * This requires project admin since access is not checked on the insytallations.\n * For a user level list of available installations (with user permission check) use getInstalledApps\n * @returns\n */\n getAllAppInstallations() {\n return this.get('/installations/all');\n }\n /**\n * List the app installations of the current project.\n */\n listInstallations() {\n return this.get('/installations/refs');\n }\n updateInstallationSettings(settingsPayload) {\n return this.put(`/installations/settings/${settingsPayload.app_id}`, {\n payload: {\n app_id: settingsPayload.app_id,\n settings: settingsPayload.settings,\n // Forward access_control when the caller provided it (including explicit null to\n // clear an override). The server uses `'access_control' in payload` to distinguish\n // \"leave unchanged\" from \"clear\", so only spread the key when it was supplied.\n ...('access_control' in settingsPayload ? { access_control: settingsPayload.access_control } : {}),\n },\n });\n }\n /**\n * Update the tool allowlist for an app installation.\n * Pass null to remove all restrictions (all tools permitted).\n */\n updateToolAllowlist(installId, tool_allowlist) {\n return this.put(`/installations/${installId}/tool-allowlist`, {\n payload: { tool_allowlist },\n });\n }\n /**\n * Validate that a URL is safe to use as a remote tool/activity endpoint.\n * Throws a ServerError(400) if the URL is blocked (SSRF protection).\n */\n validateUrl(url) {\n return this.post('/validate-url', { payload: { url } });\n }\n}\n//# sourceMappingURL=AppsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport default class AuditTrailApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/audit-trail');\n }\n list(query) {\n const params = new URLSearchParams();\n if (query?.actions?.length)\n params.set('actions', query.actions.join(','));\n if (query?.resourceTypes?.length)\n params.set('resourceTypes', query.resourceTypes.join(','));\n if (query?.resourceId)\n params.set('resourceId', query.resourceId);\n if (query?.principalId)\n params.set('principalId', query.principalId);\n if (query?.principalType)\n params.set('principalType', query.principalType);\n if (query?.effectivePrincipalId)\n params.set('effectivePrincipalId', query.effectivePrincipalId);\n if (query?.hasEffectivePrincipal !== undefined)\n params.set('hasEffectivePrincipal', String(query.hasEffectivePrincipal));\n if (query?.projectId)\n params.set('projectId', query.projectId);\n if (query?.from)\n params.set('from', query.from);\n if (query?.to)\n params.set('to', query.to);\n if (query?.limit)\n params.set('limit', String(query.limit));\n if (query?.offset)\n params.set('offset', String(query.offset));\n const qs = params.toString();\n return this.get(`/${qs ? `?${qs}` : ''}`);\n }\n}\n//# sourceMappingURL=AuditTrailApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\n/**\n * Various utility commands\n */\nexport default class CommandsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/commands');\n }\n async isNamespaceAvailable(name) {\n return this.get(`/namespaces/${name}/is_available`).then((response) => response.available);\n }\n async initSamples() {\n return this.post('/onboarding/init-samples');\n }\n}\n//# sourceMappingURL=CommandsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport default class EnvironmentsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/environments');\n }\n /**\n * List all environments for the current project\n * @param all if true, list all environments, otherwise only the ones for the current project\n */\n list(all = false) {\n const query = all ? { all: true } : undefined;\n return this.get('/', { query });\n }\n create(payload) {\n return this.post('/', {\n payload,\n });\n }\n retrieve(id) {\n return this.get(`/${id}`);\n }\n update(id, payload) {\n return this.put(`/${id}`, {\n payload,\n });\n }\n /**\n * Update enabled models and / or config. If enabled_models is not provided, the existing enabled models will not change.\n * Same, if config is not provided the exiting config is not changed.\n * If the config is provided then it will be updated without removing fields that are not provided.\n *\n * @param id\n * @param payload\n * @returns\n */\n updateConfig(id, payload) {\n return this.put(`/${id}/config`, {\n payload,\n });\n }\n listModels(id, payload) {\n return this.get(`/${id}/models`, {\n query: payload ? { ...payload } : undefined,\n });\n }\n listTrainableModels(id) {\n return this.get(`/${id}/trainable-models`);\n }\n embeddings(id, payload) {\n return this.post(`/${id}/embeddings`, {\n payload,\n });\n }\n /**\n * Batch update the LLM Environment for multiple Interactions, including the model used and the\n * Environment that they belong to.\n *\n * It only updates Interactions that are in draft status.\n *\n * @param payload - The migration payload containing modelId and interactionIds\n * @returns The count of matched and modified interactions\n */\n migrateInteractions(payload) {\n return this.post(`/migrate-interactions`, {\n payload,\n });\n }\n}\n//# sourceMappingURL=EnvironmentsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport class GroupsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/groups');\n }\n /**\n * List all groups in the current account\n * @param options Query options for filtering and pagination\n * @returns Array of UserGroup objects\n */\n list(options) {\n return this.get('/', { query: options });\n }\n /**\n * Create a new group\n * @param payload The group data to create\n * @returns The created UserGroup object\n */\n create(payload) {\n return this.post('/', { payload });\n }\n /**\n * Retrieve a specific group by ID\n * @param groupId The ID of the group to retrieve\n * @returns The UserGroup object\n */\n retrieve(groupId) {\n return this.get(`/${groupId}`);\n }\n /**\n * Update a group\n * @param groupId The ID of the group to update\n * @param payload The group data to update\n * @returns The updated UserGroup object\n */\n update(groupId, payload) {\n return this.put(`/${groupId}`, { payload });\n }\n /**\n * Delete a group\n * @param groupId The ID of the group to delete\n * @returns Object with the deleted group ID\n */\n delete(groupId) {\n return this.del(`/${groupId}`);\n }\n /**\n * List members of a group\n * @param groupId The ID of the group\n * @returns Array of UserRef objects representing group members\n */\n listMembers(groupId) {\n return this.get(`/${groupId}/members`);\n }\n /**\n * Add a member to a group\n * @param groupId The ID of the group\n * @param userId The ID of the user to add\n * @returns The updated UserGroup object\n */\n addMember(groupId, userId) {\n return this.post(`/${groupId}/members/${userId}`);\n }\n /**\n * Remove a member from a group\n * @param groupId The ID of the group\n * @param userId The ID of the user to remove\n * @returns The updated UserGroup object\n */\n removeMember(groupId, userId) {\n return this.del(`/${groupId}/members/${userId}`);\n }\n /**\n * Sync the account's members group with current organization members.\n * Creates the group if it doesn't exist.\n * @returns The synced UserGroup object\n */\n syncMembers() {\n return this.post('/sync-members');\n }\n}\n//# sourceMappingURL=GroupsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nimport { GroupsApi } from './GroupsApi.js';\nexport class IamApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/iam');\n }\n aces = new AcesApi(this);\n roles = new RolesApi(this);\n groups = new GroupsApi(this);\n /**\n * Fetch the current user's principal identity — the id plus the merged\n * ABAC principal context (clearance, compartments, email, tags, properties).\n *\n * Rejects with HTTP 400 if the caller is not a user principal\n * (API keys, service accounts, etc. — they have no underlying user context).\n */\n getPrincipalIdentity() {\n return this.get('/users/identity');\n }\n}\nexport class RolesApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/roles');\n }\n /** List every built-in role across all partitions. Permissions are loosely typed (`string[]`). */\n list() {\n return this.get('/');\n }\n /**\n * List system-domain roles only. Permissions are tightly typed as `Permission[]` —\n * suited for client-side permission gating (button visibility, route guards).\n * ABAC roles are excluded and must be consumed via the JWT `content_security` claim.\n */\n listSystem() {\n return this.get('/system');\n }\n}\nexport class AcesApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/aces');\n }\n /**\n * Get the list of all runs\n * @param project optional project id to filter by\n * @param interaction optional interaction id to filter by\n * @returns InteractionResult[]\n **/\n list(options) {\n return this.get('/', { query: { ...options } });\n }\n /**\n * List all ACEs scoped to the current project.\n * Returns both regular project ACEs and dynamic (content_set/principal_set) ACEs.\n */\n listProjectAces() {\n return this.get('/project');\n }\n /**\n * Get an ACE by its Id\n * @param id\n * @returns InteractionResult\n **/\n retrieve(id) {\n return this.get(`/${id}`);\n }\n create(payload) {\n return this.post('/', { payload });\n }\n update(id, payload) {\n return this.put(`/${id}`, { payload });\n }\n delete(id) {\n return this.del(`/${id}`);\n }\n}\n//# sourceMappingURL=IamApi.js.map","import { ExecutionRunStatus, } from '@vertesia/common';\n/**\n * Client-side timeout for a synchronous (non-streaming) interaction execution. The request blocks on\n * studio-server until the model finishes — and the LLM (e.g. image generation) can legitimately take\n * minutes — so the per-request timeout here is long, overriding any short client default. Override\n * via the VERTESIA_INTERACTION_TIMEOUT_MS env var.\n */\nconst INTERACTION_EXECUTION_TIMEOUT_MS = (() => {\n const raw = typeof process !== 'undefined' ? process.env?.VERTESIA_INTERACTION_TIMEOUT_MS : undefined;\n const parsed = raw ? Number.parseInt(raw, 10) : NaN;\n return Number.isFinite(parsed) && parsed > 0 ? parsed : 30 * 60 * 1000; // 30 minutes\n})();\nexport async function EventSourceProvider() {\n if (typeof globalThis.EventSource === 'function') {\n return globalThis.EventSource;\n }\n else {\n return (await import('eventsource')).EventSource;\n }\n}\n/**\n *\n * Execute an interaction and return a promise which will be resolved with the executed run when\n * the run completes or fails.\n * If the onChunk callback is passed then the streaming of the result is enabled.\n * The onChunk callback with be called with the next chunk of the result as soon as it is available.\n * When all chunks are received the function will return the resolved promise\n * @param id of the interaction to execute\n * @param payload InteractionExecutionPayload\n * @param onChunk callback to be called when the next chunk of the response is available\n */\nexport async function executeInteraction(client, interactionId, payload = {}, onChunk) {\n const stream = !!onChunk;\n const response = (await client.runs.create({\n ...payload,\n interaction: interactionId,\n stream,\n }, \n // Synchronous interaction execution blocks on the model; keep a long client timeout.\n // (Streaming returns the run immediately, then streams over a separate channel — see below.)\n { timeoutMs: stream ? undefined : INTERACTION_EXECUTION_TIMEOUT_MS }));\n if (stream) {\n if (response.status === ExecutionRunStatus.failed) {\n return response;\n }\n await handleStreaming(client, response.id, onChunk);\n }\n return response;\n}\n/**\n * Same as executeInteraction but uses the interaction name selector instead of the id.\n * A name selector is the interaction endpoint name suffixed with an optional tag or version which is starting with a `@` character.\n * 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.\n * Examples of selectors:\n * - `ReviewContract` - select the latest version of the ReviewContract interaction\n * - `ReviewContract@1` - select the version 1 of the ReviewContract interaction\n * - `ReviewContract@draft` - select the draft version of the ReviewContract interaction\n * - `ReviewContract@fixed` - select the ReviewContract interaction which is tagged with 'fixed' tag.\n *\n * @param client\n * @param interaction\n * @param payload\n * @param onChunk\n * @returns\n */\nexport async function executeInteractionByName(client, interaction, payload = {}, onChunk) {\n const stream = !!onChunk;\n const response = await client.post('/api/v1/execute', {\n payload: {\n ...payload,\n interaction,\n stream,\n },\n // Synchronous interaction execution blocks on the model; keep a long client timeout.\n timeoutMs: stream ? undefined : INTERACTION_EXECUTION_TIMEOUT_MS,\n });\n if (stream) {\n if (response.status === ExecutionRunStatus.failed) {\n return response;\n }\n await handleStreaming(client, response.id, onChunk);\n }\n return response;\n}\nfunction handleStreaming(client, runId, onChunk) {\n return new Promise((resolve, reject) => {\n void (async () => {\n try {\n const EventSourceImpl = await EventSourceProvider();\n const streamUrl = new URL(`${client.runs.baseUrl}/${runId}/stream`);\n const bearerToken = client._auth ? await client._auth() : undefined;\n if (bearerToken) {\n const token = bearerToken.split(' ')[1];\n streamUrl.searchParams.set('access_token', token);\n }\n else {\n throw new Error('No auth token available');\n }\n const sse = new EventSourceImpl(streamUrl.href);\n sse.addEventListener('message', (ev) => {\n try {\n const data = JSON.parse(ev.data);\n if (data) {\n onChunk?.(data);\n }\n }\n catch (err) {\n reject(err);\n }\n });\n sse.addEventListener('close', (ev) => {\n try {\n sse.close();\n const msg = JSON.parse(ev.data);\n resolve(msg);\n }\n catch (err) {\n reject(err);\n }\n });\n }\n catch (err) {\n reject(err);\n }\n })();\n });\n}\nexport async function executeInteractionAsync(client, payload) {\n return await client.post('/api/v1/execute/async', {\n payload,\n });\n}\nexport async function checkRateLimit(client, payload) {\n return await client.post('/api/v1/execute/rate-limit/request', {\n payload,\n });\n}\n//# sourceMappingURL=execute.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport class InteractionCatalogApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/interactions/catalog');\n }\n /**\n * List all project interactions\n */\n list(query = {}) {\n return this.get('/', {\n query,\n });\n }\n /**\n * List all stored interactions\n */\n listStoredInteractions(query = {}) {\n return this.get('/stored', {\n query,\n });\n }\n /**\n * List sys interactions\n */\n listSysInteractions(tag) {\n return this.get(`/sys`, {\n query: {\n tag,\n },\n });\n }\n /**\n * List sys interactions\n */\n listAppInteractions(appName, tag) {\n return this.get(`/apps/${appName}`, {\n query: {\n tag,\n },\n });\n }\n /**\n * List all app interactions\n */\n listAllAppInteractions(tag) {\n return this.get(`/apps`, {\n query: {\n tag,\n },\n });\n }\n /**\n * Resolve an interaction given its id to a InCodeInteraction\n * @param id Interaction id\n */\n resolve(id) {\n return this.get(`/resolve/${id}`);\n }\n}\n//# sourceMappingURL=InteractionCatalogApi.js.map","/**\n * Symbol used to mark InteractionOutputArray instances.\n * This allows us to detect if a CompletionResult[] has already been wrapped.\n */\nexport const IS_INTERACTION_OUTPUT = Symbol('InteractionOutput');\nexport function enhanceInteractionExecutionResult(r) {\n r.result = InteractionOutput.from(r.result);\n return r;\n}\nexport function enhanceExecutionRun(r) {\n r.result = InteractionOutput.from(r.result);\n return r;\n}\n/**\n * A convenient wrapper around CompletionResult[] that provides ergonomic accessors\n * for different result types (text, JSON/objects, images) from interaction executions.\n *\n * Use the static from() method to create a proxied array that acts as both\n * an array and has these convenience methods.\n *\n * @template T - The expected type of JSON/object results. Defaults to any.\n *\n * @example\n * ```typescript\n * // Recommended: Using the static from() method\n * const output = InteractionOutput.from<MyResponse>(run.result);\n * output[0]; // CompletionResult (array access)\n * output.length; // number (array property)\n * const obj = output.object(); // MyResponse (custom method)\n * const text = output.text(); // string (custom getter)\n *\n * // Alternative: Using the class directly (less common)\n * const output = new InteractionOutput<MyResponse>(run.result);\n * const obj = output.object(); // Returns MyResponse\n * const objs = output.objects(); // Returns MyResponse[]\n *\n * // Override type for specific objects\n * interface OtherType { title: string; }\n * ```\n */\nexport class InteractionOutput {\n results;\n /**\n * The raw completion results array.\n * Access this when you need to work with the underlying CompletionResult[] directly.\n */\n constructor(results) {\n this.results = results;\n }\n /**\n * Create an interaction output that acts as both an array and has convenience methods.\n * This is the recommended way to work with interaction execution results.\n *\n * @template T - The expected type of JSON/object results. Defaults to any.\n * @param results - The raw CompletionResult array from an interaction execution\n * @returns A proxied array with convenience methods\n *\n * @example\n * ```typescript\n * interface MyResponse { name: string; age: number; }\n * const output = InteractionOutput.from<MyResponse>(run.result);\n *\n * // Array access\n * output[0]; // CompletionResult\n * output.length; // number\n *\n * // Convenience methods\n * const obj = output.object(); // MyResponse\n * const text = output.text(); // string\n * ```\n */\n static from(results) {\n if (!results) {\n return createInteractionOutput([]);\n }\n // Check if already wrapped using the symbol marker\n if (isInteractionOutputMarker(results)) {\n return results;\n }\n if (Array.isArray(results)) {\n return createInteractionOutput(results);\n }\n else if (typeof results === 'object') {\n return createInteractionOutput([{ type: 'json', value: results }]);\n }\n else {\n return createInteractionOutput([{ type: 'text', value: String(results) }]);\n }\n }\n static isInteractionOutputArray(obj) {\n return isInteractionOutputMarker(obj);\n }\n get isEmpty() {\n return this.results.length === 0;\n }\n hasObject() {\n return this.results.some((r) => r.type === 'json');\n }\n hasText() {\n return this.results.some((r) => r.type === 'text');\n }\n hasImage() {\n return this.results.some((r) => r.type === 'image');\n }\n /**\n * Get the concatenated text from all text results.\n * Returns an empty string if no text results exist.\n */\n text(delimiter = '\\n') {\n return this.results\n .filter((r) => r.type === 'text')\n .map((r) => r.value)\n .join(delimiter);\n }\n /**\n * Get an array of all text values from text results.\n */\n texts() {\n return this.results.filter((r) => r.type === 'text').map((r) => r.value);\n }\n /**\n * Get the first JSON result as a parsed object.\n * If no JSON result exists, attempts to parse the concatenated text as JSON.\n * @returns The first JSON result typed as T (the class generic type)\n * @throws Error if no JSON result found and text cannot be parsed as JSON\n */\n object() {\n const jsonResult = this.results.find((r) => r.type === 'json');\n if (jsonResult) {\n return jsonResult.value;\n }\n // Fallback: try to parse the other text parts as JSON\n return parseCompletionResultAsJson(this.results);\n }\n /**\n * Get all JSON results as parsed objects.\n * @returns An array of all JSON results typed as T[] (the class generic type)\n */\n objects() {\n return this.results.filter((r) => r.type === 'json').map((r) => r.value);\n }\n /**\n * Get a specific JSON result by index as a parsed object.\n * @template U - The type of the object at this index. Defaults to T (the class generic).\n * @param index - The zero-based index of the JSON result\n * @returns The JSON result at the specified index typed as U\n * @throws Error if the index is out of bounds\n */\n objectAt(index) {\n let i = 0;\n for (const result of this.results) {\n if (result.type === 'json') {\n if (i === index) {\n return result.value;\n }\n i++;\n }\n }\n throw new Error(`Object at index ${index} not found`);\n }\n /**\n * Get the first image result (base64 data URL or URL).\n * @throws Error if no image result exists\n */\n image() {\n const imageResult = this.results.find((r) => r.type === 'image');\n if (!imageResult) {\n throw new Error('No image result found');\n }\n return imageResult.value;\n }\n /**\n * Get an array of all image values (base64 data URLs or URLs).\n */\n images() {\n return this.results.filter((r) => r.type === 'image').map((r) => r.value);\n }\n /**\n * Convert all results to a string representation.\n * Text and image results are used as-is, JSON results are stringified with the specified indent.\n * All parts are joined using the specified separator.\n *\n * @param separator - The separator to use between parts (default: '\\n')\n * @param indent - The indentation to use for JSON.stringify (default: 0 = no formatting)\n * @returns A string representation of all results\n *\n * @example\n * ```typescript\n * const output = InteractionOutput.from(results);\n * output.stringify(); // Each part on a new line, compact JSON\n * output.stringify('\\n\\n', 2); // Double newlines between parts, formatted JSON\n * output.stringify(' '); // Space-separated, compact JSON\n * ```\n */\n stringify(separator = '\\n', indent = 2) {\n return this.results\n .map((r) => {\n switch (r.type) {\n case 'json':\n return JSON.stringify(r.value, null, indent);\n default:\n return String(r.value);\n }\n })\n .join(separator);\n }\n /**\n * Convert to string representation (concatenated text).\n * Useful for template literals or string coercion.\n */\n toString() {\n return this.text();\n }\n /**\n * Convert to JSON representation.\n * Attempts to return the first JSON object, falls back to concatenated text.\n */\n toJSON() {\n return this.results;\n }\n}\nfunction isInteractionOutputMarker(obj) {\n return !!obj && typeof obj === 'object' && obj[IS_INTERACTION_OUTPUT] === true;\n}\n/**\n * Creates a proxied array that acts as both a CompletionResult[] and has InteractionOutput convenience methods.\n * Note: It's recommended to use InteractionOutput.from() instead of calling this function directly.\n *\n * @template T - The expected type of JSON/object results. Defaults to any.\n * @param results - The raw CompletionResult array from the interaction execution\n * @returns A proxy that behaves as both an array and has convenience methods\n *\n * @example\n * ```typescript\n * interface MyResponse { name: string; age: number; }\n * const output = createInteractionOutput<MyResponse>(run.result);\n *\n * // Array access\n * output[0]; // CompletionResult\n * output.length; // number\n * output.map(r => r.type) // string[]\n *\n * // Convenience methods\n * const obj = output.object(); // MyResponse\n * const text = output.text(); // string\n * const img = output.image(); // string\n * ```\n */\nexport function createInteractionOutput(results) {\n const wrapper = new InteractionOutput(results);\n return new Proxy(results, {\n get(target, prop, receiver) {\n // Return the marker symbol to identify wrapped arrays\n if (prop === IS_INTERACTION_OUTPUT) {\n return true;\n }\n // Check if the wrapper has this property/method\n if (prop in wrapper) {\n const value = Reflect.get(wrapper, prop, wrapper);\n // If it's a function, bind it to the wrapper so 'this' works correctly\n if (typeof value === 'function') {\n return value.bind(wrapper);\n }\n // For getters and regular properties, just return the value\n return value;\n }\n // Otherwise delegate to the array\n return Reflect.get(target, prop, receiver);\n },\n });\n}\nfunction parseCompletionResultAsJson(data) {\n let lastError;\n for (const part of data) {\n if (part.type === 'text') {\n const text = part.value.trim();\n try {\n return JSON.parse(text);\n }\n catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n }\n }\n }\n if (!lastError) {\n lastError = new Error('No JSON result found and no text available to parse');\n }\n throw lastError;\n}\n//# sourceMappingURL=InteractionOutput.js.map","import { ApiTopic, ServerError } from '@vertesia/api-fetch-client';\nimport { checkRateLimit, executeInteraction, executeInteractionAsync, executeInteractionByName } from './execute.js';\nimport { InteractionCatalogApi } from './InteractionCatalogApi.js';\nimport { enhanceInteractionExecutionResult } from './InteractionOutput.js';\nfunction hasIdPayload(payload) {\n return !!payload && typeof payload === 'object' && 'id' in payload && typeof payload.id === 'string';\n}\nexport default class InteractionsApi extends ApiTopic {\n catalog;\n constructor(parent) {\n super(parent, '/api/v1/interactions');\n this.catalog = new InteractionCatalogApi(parent);\n }\n /**\n * Get the list of all interactions in the current project\n * @returns InteractionRef[]\n **/\n list(payload = {}) {\n const query = payload.query || {};\n return this.get('/', {\n query: {\n ...query,\n },\n });\n }\n /**\n * Find interactions given a mongo match query.\n * You can also specify if prompts schemas are included in the result\n */\n listEndpoints(payload) {\n return this.post('/endpoints', {\n payload,\n });\n }\n /**\n * List all interaction versions in the project having the given endpoint name.\n * This is useful to list orphaned versions\n * @param name\n */\n listVersionsByName(name) {\n return this.get(`/versions/${name}`);\n }\n /**\n * Get the list of all interaction tags in the current project\n * @param query optional query parameters to filter the tags\n * @returns InteractionTags[]\n **/\n listTags(query) {\n return this.get('/tags', {\n query: {\n ...query,\n },\n });\n }\n /**\n * Get the list of all interactions facets\n * @param payload query payload to filter facet search\n * @returns ComputedFacetResponse\n **/\n computeFacets(query) {\n return this.post('/facets', {\n payload: query,\n });\n }\n /**\n * List interaction names in the current project\n * @returns\n */\n listNames() {\n return this.get('/names');\n }\n /**\n * Get the list of all interactions in the current project. Schemas will be returned too.\n * @returns InteractionRefWithSchema[]\n **/\n export(payload) {\n return this.post('/export', { payload });\n }\n /**\n * Create a new interaction\n * @param payload InteractionCreatePayload\n * @returns Interaction\n * @throws ApiError\n * @throws 400 if payload is invalid\n * @throws 500 if interaction creation fails\n **/\n create(payload) {\n return this.post('/', {\n payload,\n });\n }\n /**\n * Retrieve an existing interaction definition\n * @param id of the interaction to retrieve\n * @returns Interaction\n **/\n retrieve(id) {\n return this.get(`/${id}`);\n }\n /**\n * Update an existing interaction definition\n * @param id of the interaction to update\n * @param payload InteractionUpdatePayload\n * @returns Interaction\n * @throws ApiError\n * @throws 400 if payload is invalid\n * @throws 500 if interaction update fails\n * @throws 404 if interaction not found\n **/\n update(id, payload) {\n return this.put(`/${id}`, {\n payload,\n });\n }\n /**\n * Delete an interaction. Pass `{ cascade: true }` to also delete every interaction in the\n * target's family — see {@link InteractionDeletePayload}.\n *\n * The signature must stay assignment-compatible with the inherited\n * `ApiTopic.delete(path, params)`, so the parameter is `IRequestParams & InteractionDeletePayload`.\n * Callers can keep passing only the payload (`{ cascade: true }`); IRequestParams fields are all\n * optional.\n */\n delete(id, payload) {\n const { cascade, query, ...rest } = payload ?? {};\n const mergedQuery = cascade ? { ...(query ?? {}), cascade: 'true' } : (query ?? undefined);\n return super.delete(`/${id}`, { ...rest, query: mergedQuery });\n }\n /**\n * Execute an interaction and return a promise which will be resolved with the executed run when\n * the run completes or fails.\n * If the onChunk callback is passed then the streaming of the result is enabled.\n * The onChunk callback with be called with the next chunk of the result as soon as it is available.\n * When all chunks are received the function will return the resolved promise\n * @param id of the interaction to execute\n * @param payload InteractionExecutionPayload\n * @param onChunk callback to be called when the next chunk of the response is available\n * @returns Promise<ExecutionRun>\n * @throws ApiError\n * @throws 404 if interaction not found\n * @throws 400 if payload is invalid\n * @throws 500 if interaction execution fails\n * @throws 500 if interaction execution times out\n **/\n async execute(id, payload = {}, onChunk) {\n const r = await executeInteraction(this.client, id, payload, onChunk).catch((err) => {\n if (err instanceof ServerError && hasIdPayload(err.payload)) {\n throw err.updateDetails({ run_id: err.payload.id });\n }\n else {\n throw err;\n }\n });\n return enhanceInteractionExecutionResult(r);\n }\n /**\n * Same as execute but uses the interaction name selector instead of the id.\n *\n * A name selector is the interaction endpoint name suffixed with an optional tag or version which is starting with a `@` character.\n * 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.\n * Examples of selectors:\n * - `ReviewContract` - select the latest version of the ReviewContract interaction\n * - `ReviewContract@1` - select the version 1 of the ReviewContract interaction\n * - `ReviewContract@draft` - select the draft version of the ReviewContract interaction\n * - `ReviewContract@fixed` - select the ReviewContract interaction which is tagged with 'fixed' tag.\n * @param nameWithTag\n * @param payload\n * @param onChunk\n * @returns\n */\n async executeByName(nameWithTag, payload = {}, onChunk) {\n const r = await executeInteractionByName(this.client, nameWithTag, payload, onChunk).catch((err) => {\n if (err instanceof ServerError && hasIdPayload(err.payload)) {\n throw err.updateDetails({ run_id: err.payload.id });\n }\n else {\n throw err;\n }\n });\n return enhanceInteractionExecutionResult(r);\n }\n /**\n * Execute an interaction in an workflow\n * @param payload\n * @returns\n */\n executeAsync(payload) {\n return executeInteractionAsync(this.client, payload);\n }\n publish(id, payload) {\n return this.post(`/${id}/publish`, {\n payload,\n });\n }\n fork(id, payload) {\n return this.post(`/${id}/fork`, {\n payload,\n });\n }\n /**\n * Generate Composable definition of an interaction\n **/\n generateInteraction(id, payload) {\n return this.post(`${id}/generate-interaction`, {\n payload,\n });\n }\n /**\n * Generate Test Data for an interaction\n **/\n generateTestData(id, payload) {\n return this.post(`${id}/generate-test-data`, {\n payload,\n });\n }\n /**\n * Suggest Improvement for a prompt\n * @deprecated use suggestPromptImprovements instead\n */\n suggestImprovements(id, payload) {\n return this.post(`${id}/suggest-prompt-improvements`, {\n payload,\n });\n }\n suggestPromptImprovements(payload) {\n return this.post(`/improve`, {\n payload,\n });\n }\n /**\n * List the versions of the interaction. Returns an empty array if no versions are found\n * @param id\n * @returns the versions list or an empty array if no versions are found\n */\n listVersions(id) {\n return this.get(`/${id}/versions`);\n }\n /**\n * List the forks of the interaction. Returns an empty array if no forks are found\n * @param id\n * @returns the versions list or an empty array if no forks are found\n */\n listForks(id) {\n return this.get(`/${id}/forks`);\n }\n /**\n * Request a time slot to execute an interaction with a given environment / model\n * @param payload RateLimitRequestPayload\n * @returns RateLimitRequestResponse with delay_ms\n */\n requestSlot(payload) {\n return checkRateLimit(this.client, payload);\n }\n /**\n * Resolve an interaction by ID or name and return the resolved execution info.\n * This includes the interaction ID, name, version, tags, and the resolved\n * environment/model that would be used at execution time.\n *\n * The nameOrId parameter can be:\n * - A MongoDB ObjectId (e.g., \"66b9149c26dc74d6b5187d27\")\n * - An endpoint name (e.g., \"ReviewContract\")\n * - An endpoint name with version/tag (e.g., \"ReviewContract@1\", \"ReviewContract@draft\")\n *\n * @param nameOrId The interaction ID or name (with optional @version/@tag)\n * @param options Optional environment and/or model to resolve with\n * @returns ResolvedInteractionExecutionInfo with the resolved environment and model\n */\n resolve(nameOrId, options) {\n return this.get(`/resolve/${encodeURIComponent(nameOrId)}`, {\n query: options,\n });\n }\n}\n//# sourceMappingURL=InteractionsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport default class OAuthClientsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/oauth-clients');\n }\n list() {\n return this.get('/');\n }\n retrieve(clientId) {\n return this.get(`/${clientId}`);\n }\n scopeMetadata() {\n return this.get('/scope-metadata');\n }\n create(payload) {\n return this.post('/', { payload });\n }\n update(clientId, payload) {\n return this.put(`/${clientId}`, { payload });\n }\n remove(clientId) {\n return this.del(`/${clientId}`);\n }\n}\n//# sourceMappingURL=OAuthClientsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nfunction toQueryRecord(query) {\n if (!query) {\n return undefined;\n }\n return Object.fromEntries(Object.entries(query)\n .filter(([, value]) => value !== undefined)\n .map(([key, value]) => [key, String(value)]));\n}\nexport default class OAuthGrantsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/oauth-grants');\n }\n list(query) {\n return this.get('/', { query: toQueryRecord(query) });\n }\n retrieve(grantId) {\n return this.get(`/${grantId}`);\n }\n revoke(grantId, query) {\n return this.del(`/${grantId}`, { query });\n }\n revokeBulk(payload) {\n return this.post('/revoke', { payload });\n }\n}\n//# sourceMappingURL=OAuthGrantsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport default class OAuthProvidersApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/oauth-providers');\n }\n list() {\n return this.get('/');\n }\n retrieve(id) {\n return this.get(`/${id}`);\n }\n create(payload) {\n return this.post('/', { payload });\n }\n update(id, payload) {\n return this.put(`/${id}`, { payload });\n }\n remove(id) {\n return this.del(`/${id}`);\n }\n authorize(id) {\n return this.get(`/${id}/authorize`);\n }\n exchange(code, state) {\n return this.post('/exchange', { payload: { code, state } });\n }\n getStatus(id) {\n return this.get(`/${id}/status`);\n }\n connect(id) {\n return this.post(`/${id}/connect`, { payload: {} });\n }\n getToken(id) {\n return this.post(`/${id}/token`, { payload: {} });\n }\n disconnect(id) {\n return this.del(`/${id}/disconnect`);\n }\n}\n//# sourceMappingURL=OAuthProvidersApi.js.map","import { ClientBase } from '@vertesia/api-fetch-client';\nexport default class OAuthServerApi extends ClientBase {\n parent;\n constructor(parent, baseUrl) {\n super(new URL('/oauth', `${baseUrl || parent.baseUrl}/`).toString(), parent._fetch);\n this.parent = parent;\n this.createServerError = parent.createServerError;\n this.errorFactory = parent.errorFactory;\n this.verboseErrors = parent.verboseErrors;\n }\n get headers() {\n return this.parent.headers;\n }\n createRequest(url, init) {\n return this.parent.createRequest(url, init);\n }\n handleResponse(req, res, params) {\n return this.parent.handleResponse(req, res, params);\n }\n handleFetchResponse(req, res) {\n this.parent.handleFetchResponse(req, res);\n }\n getRetryPolicy() {\n return this.parent.getRetryPolicy();\n }\n createAuthorizationRequest(payload) {\n return this.post('/requests', { payload });\n }\n createDeviceAuthorization(payload) {\n return this.post('/device_authorization', { payload });\n }\n retrieveDeviceRequest(userCode) {\n return this.get(`/device/${encodeURIComponent(userCode)}`);\n }\n retrieveRequest(requestId) {\n return this.get(`/requests/${requestId}`);\n }\n retrieveGrantableScopes(requestId, projectId) {\n return this.get(`/requests/${requestId}/grantable-scopes`, { query: { project_id: projectId } });\n }\n approveRequest(requestId, payload) {\n return this.post(`/requests/${requestId}/approve`, { payload });\n }\n denyRequest(requestId) {\n return this.post(`/requests/${requestId}/deny`, { payload: {} });\n }\n}\n//# sourceMappingURL=OAuthServerApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport default class ProjectsApi extends ApiTopic {\n integrations;\n constructor(parent) {\n super(parent, '/api/v1/projects');\n this.integrations = new IntegrationsConfigurationApi(this);\n }\n list(account) {\n return this.get('/', { query: { account } });\n }\n retrieve(projectId) {\n return this.get(`/${projectId}`);\n }\n create(payload) {\n return this.post('/', {\n payload,\n });\n }\n update(projectId, payload) {\n return this.put(`/${projectId}`, {\n payload,\n });\n }\n delete(projectId) {\n return this.del(`/${projectId}`);\n }\n updateConfiguration(projectId, payload) {\n return this.put(`/${projectId}/configuration`, {\n payload,\n });\n }\n /**\n * List all tools available in the project with their app installation info.\n * Settings are only included for agent tokens (security: may contain API keys).\n */\n getTools(projectId) {\n return this.get(`/${projectId}/tools`);\n }\n /**\n * Get a specific tool by name with its app installation info.\n * Returns null if the tool is not found.\n */\n getToolByName(projectId, toolName) {\n return this.get(`/${projectId}/tools/${toolName}`).catch((err) => {\n if (err.status === 404) {\n return null;\n }\n throw err;\n });\n }\n listAppContentTypes(projectId, tag) {\n return this.get(`/${projectId}/app-types`, {\n query: { tag },\n });\n }\n getAppContentType(projectId, typeId) {\n return this.get(`/${projectId}/app-types/${typeId}`);\n }\n listAppProcesses(projectId, tag) {\n return this.get(`/${projectId}/app-processes`, {\n query: { tag },\n });\n }\n getAppProcess(projectId, processId) {\n return this.get(`/${projectId}/app-processes/${processId}`);\n }\n listAppRenderingTemplates(projectId, tag) {\n return this.get(`/${projectId}/app-templates`, {\n query: { tag },\n });\n }\n getAppRenderingTemplate(projectId, templateUri) {\n return this.get(`/${projectId}/app-templates/${templateUri}`);\n }\n getCompositeAppConfiguration(projectId) {\n return this.get(`/${projectId}/composite-app`);\n }\n updateCompositeAppConfiguration(projectId, payload) {\n return this.put(`/${projectId}/composite-app`, {\n payload,\n });\n }\n}\nclass IntegrationsConfigurationApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/');\n }\n list(projectId) {\n return this.get(`/${projectId}/integrations`).then((res) => res.integrations);\n }\n retrieve(projectId, integrationId) {\n return this.get(`/${projectId}/integrations/${integrationId}`).catch((err) => {\n if (err.status === 404) {\n return undefined;\n }\n throw err;\n });\n }\n update(projectId, integrationId, payload) {\n return this.put(`/${projectId}/integrations/${integrationId}`, {\n payload,\n });\n }\n updatePlugins(projectId, plugins) {\n return this.post(`/${projectId}/plugins`, { payload: { plugins } });\n }\n listPlugins(projectId) {\n return this.get(`/${projectId}/plugins`);\n }\n}\n//# sourceMappingURL=ProjectsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport default class PromptsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/prompts');\n }\n /**\n * Get the list of all prompt templates\n * @param payload query payload to filter search\n * @returns PromptTemplateRef[]\n **/\n list(payload = {}) {\n const query = payload.query || {};\n return this.get('/', {\n query: {\n ...query,\n },\n });\n }\n /**\n * Get the list of all prompt facets\n * @param payload query payload to filter facet search\n * @returns ComputePromptFacetsResponse[]\n **/\n computeFacets(query) {\n return this.post('/facets', {\n payload: query,\n });\n }\n /**\n * Create a new prompt template\n * @param payload PromptTemplateCreatePayload\n * @returns PromptTemplate\n * @throws ApiError\n * @throws 400 if payload is invalid\n * @throws 500 if creation fails\n **/\n create(payload) {\n return this.post('/', {\n payload,\n });\n }\n /**\n * Retrieve an existing prompt template\n * @param id of the prompt template to retrieve\n * @returns PromptTemplate\n **/\n retrieve(id) {\n return this.get(`/${id}`);\n }\n /**\n * Update an existing prompt template\n * @param id of the prompt template to update\n * @param payload PromptTemplateCreatePayload\n * @returns PromptTemplate\n * @throws ApiError\n * @throws 400 if payload is invalid\n * @throws 500 if update fails\n * @throws 404 if not found\n **/\n update(id, payload) {\n return this.put(`/${id}`, {\n payload,\n });\n }\n /**\n * Delete an existing prompt template\n * @param id of the prompt template to delete\n * @returns void\n */\n delete(id) {\n return this.del(`/${id}`);\n }\n /**\n * Fork an existing prompt template\n * @param id of the prompt template to fork\n * @param payload PromptTemplateForkPayload\n * @returns Forked PromptTemplate\n */\n fork(id, payload) {\n return this.post(`/${id}/fork`, {\n payload,\n });\n }\n /**\n * Render a prompt template with the given variables.\n * @param id of the prompt template to render\n * @param payload variables to apply to the template\n * @returns { id, name, role, content_type, rendered }\n * @throws ApiError\n * @throws 404 if not found\n * @throws 403 if the prompt is not in the current project\n */\n render(id, payload) {\n return this.post(`/${id}/render`, {\n payload,\n });\n }\n //TODO - Does this exist?\n /**\n * Get options for a field\n * @param field name to get options for\n * @returns string[]\n */\n options(field) {\n return this.get(`/options/${field}`);\n }\n /**\n * List the versions of the prompt template. Returns an empty array if no versions are found\n * @param id\n * @returns the versions list or an empty array if no versions are found\n */\n listVersions(id) {\n return this.get(`/${id}/versions`);\n }\n /**\n * Retrieve list of interactions that use the prompt template\n */\n listInteractions(id) {\n return this.get(`/${id}/interactions`);\n }\n /**\n * List the forks of the prompt. Returns an empty array if no forks are found\n * @param id of the prompt to search forks\n * @returns the versions list or an empty array if no forks are found\n */\n listForks(id) {\n return this.get(`/${id}/forks`);\n }\n}\n//# sourceMappingURL=PromptsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport class RefsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/refs');\n }\n resolve(refs) {\n return this.post('/resolve', { payload: { refs } });\n }\n}\n//# sourceMappingURL=RefsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport default class RemoteMcpConnectionsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/remote-mcp-connections');\n }\n getStatus(appInstallId) {\n return this.get(`/status/${appInstallId}`);\n }\n getCollectionStatus(appInstallId, collectionId) {\n return this.get(`/status/${appInstallId}/${collectionId}`);\n }\n getMetadata(appInstallId, collectionId) {\n return this.get(`/metadata/${appInstallId}/${collectionId}`);\n }\n authorize(appInstallId, collectionId) {\n return this.get(`/authorize/${appInstallId}/${collectionId}`);\n }\n connect(appInstallId, collectionId) {\n return this.post(`/connect/${appInstallId}/${collectionId}`, {});\n }\n disconnect(appInstallId, collectionId) {\n return this.del(`/disconnect/${appInstallId}/${collectionId}`);\n }\n getCollectionToken(appInstallId, collectionId) {\n return this.post('/token', {\n payload: { app_install_id: appInstallId, collection_id: collectionId },\n });\n }\n getToken(mcpServerUrl) {\n return this.post('/token', {\n payload: { mcp_server_url: mcpServerUrl },\n });\n }\n}\n//# sourceMappingURL=RemoteMcpConnectionsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nimport { enhanceExecutionRun } from './InteractionOutput.js';\nexport class RunsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/runs');\n }\n /**\n * Get the list of all runs\n * @param project optional project id to filter by\n * @param interaction optional interaction id to filter by\n * @returns InteractionResult[]\n **/\n list({ limit, offset, filters }) {\n const query = {\n limit,\n offset,\n ...filters,\n };\n return this.get('/', { query: query });\n }\n find(payload) {\n return this.post('/find', {\n payload,\n });\n }\n /**\n * Get a run by id\n *\n * @param id\n * @returns InteractionResult\n **/\n async retrieve(id) {\n const r = await this.get(`/${id}`);\n return enhanceExecutionRun(r);\n }\n retrievePopulated(id) {\n return this.get(`/${id}`, {\n query: { populate: 'true' },\n });\n }\n /**\n * Get filter options for a field\n * return FilterOption[]\n */\n filterOptions(field, filters) {\n const query = {\n ...filters,\n };\n return this.get(`/filter-options/${field}`, { query });\n }\n async create(payload, options) {\n const sessionTags = this.client.sessionTags;\n if (sessionTags) {\n let tags = Array.isArray(sessionTags) ? sessionTags : [sessionTags];\n if (Array.isArray(payload.tags)) {\n tags = tags.concat(payload.tags);\n }\n else if (payload.tags) {\n tags = tags.concat([payload.tags]);\n }\n payload = { ...payload, tags };\n }\n const r = await this.post('/', {\n payload,\n timeoutMs: options?.timeoutMs,\n signal: options?.signal,\n });\n return enhanceExecutionRun(r);\n }\n /**\n * Send tool results and continues the conversation\n * @param payload\n * @returns\n */\n sendToolResults(payload) {\n return this.post(`/tool-results`, {\n payload,\n });\n }\n /**\n *\n * @param payload\n * @returns\n */\n sendUserMessage(payload) {\n return this.post(`/user-message`, {\n payload,\n });\n }\n /**\n * Get the list of all runs facets\n * @param payload query payload to filter facet search\n * @returns ComputeRunFacetsResponse[]\n **/\n computeFacets(query) {\n return this.post('/facets', {\n payload: query,\n });\n }\n search(payload) {\n return this.post('/search', {\n payload,\n });\n }\n /**\n * Clone an existing ExecutionRun for fork workflows.\n * Creates a new run with the same interaction/config but fresh status.\n */\n clone(payload) {\n return this.post('/clone', { payload });\n }\n}\n//# sourceMappingURL=RunsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport default class SecretsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/secrets');\n }\n list(projectId, query) {\n return this.get('/', { query: { ...query, project_id: projectId } }).then((res) => res.secrets);\n }\n retrieve(projectId, secretId, query) {\n return this.get(`/${secretId}`, { query: { ...query, project_id: projectId } }).catch((err) => {\n if (err.status === 404) {\n return undefined;\n }\n throw err;\n });\n }\n create(projectId, payload) {\n return this.post('/', { query: { project_id: projectId }, payload });\n }\n update(projectId, secretId, payload, query) {\n return this.put(`/${secretId}`, { query: { ...query, project_id: projectId }, payload });\n }\n remove(projectId, secretId, query) {\n return this.del(`/${secretId}`, { query: { ...query, project_id: projectId } });\n }\n fillWebsiteCredential(projectId, secretId, payload) {\n return this.post(`/${secretId}/actions/fill-browser`, { query: { project_id: projectId }, payload });\n }\n}\n//# sourceMappingURL=SecretsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\n/**\n * API client for skill operations.\n * Skills are interactions with agent_runner_options.is_skill = true.\n * They provide contextual instructions to agents by executing/rendering\n * the interaction and returning the result.\n */\nexport default class SkillsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/skills');\n }\n /**\n * Find skills relevant to a given context.\n * This is the core skill matching API for auto-injection.\n * @param context The context to match against\n * @param limit Maximum number of skills to return (default: 5)\n * @returns Array of injected skills with match scores\n */\n findRelevant(context, limit) {\n const payload = { context, limit };\n return this.post('/find-relevant', { payload });\n }\n /**\n * Convenience method to find relevant skills by task description\n * @param taskDescription The task or prompt to match\n * @param toolNames Optional list of tools being used\n * @returns Array of injected skills\n */\n findRelevantForTask(taskDescription, toolNames) {\n return this.findRelevant({\n task_description: taskDescription,\n tool_names: toolNames,\n });\n }\n}\n//# sourceMappingURL=SkillsApi.js.map","/**\n * Helpers for transferring file content to/from cloud-storage signed URLs\n * (GCS, S3, Azure Blob) with retry + backoff on transient failures.\n *\n * Signed-URL transfers go straight to the storage backend and therefore bypass\n * the Vertesia API client (`AbstractFetchClient`), which means they normally get\n * none of its retry policy. A single transient `503 Service Unavailable` from the\n * storage backend would otherwise fail the whole upload/download. This helper\n * restores retry behaviour for those storage hops.\n *\n * Note on streamed bodies: a `ReadableStream` body cannot be replayed once it has\n * been consumed, so it is buffered into memory before the first attempt to make\n * retries safe. Callers transferring very large streams should be aware of this\n * memory cost.\n */\n/** HTTP statuses that storage backends return for transient, retryable conditions. */\nconst DEFAULT_RETRYABLE_STATUSES = new Set([429, 500, 502, 503, 504]);\nconst DEFAULT_ATTEMPTS = 4;\nconst DEFAULT_BASE_DELAY_MS = 500;\nconst DEFAULT_MAX_DELAY_MS = 8_000;\nfunction sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\nfunction retryAfterMs(res) {\n const header = res.headers.get('retry-after');\n if (!header) {\n return undefined;\n }\n const seconds = Number(header);\n if (Number.isFinite(seconds) && seconds >= 0) {\n return seconds * 1000;\n }\n const date = Date.parse(header);\n if (!Number.isNaN(date)) {\n return Math.max(0, date - Date.now());\n }\n return undefined;\n}\nfunction backoffMs(attempt, baseDelayMs, maxDelayMs, res) {\n const retryAfter = res ? retryAfterMs(res) : undefined;\n if (retryAfter !== undefined) {\n return Math.min(maxDelayMs, retryAfter);\n }\n // Exponential backoff with full jitter.\n const capped = Math.min(maxDelayMs, baseDelayMs * 2 ** attempt);\n return Math.floor(Math.random() * capped);\n}\nconst textEncoder = new TextEncoder();\n/**\n * Normalize one `ReadableStream` chunk to a byte-backed `BlobPart`.\n *\n * A web stream produced from a Node `Readable.from(<string>)` (e.g. via\n * `Readable.toWeb`, which `NodeStreamSource` uses) yields *string* chunks. Buffering\n * such a stream with `new Response(stream).blob()` throws under undici with\n * \"TypeError: Received non-Uint8Array chunk\", which breaks every signed-URL upload of\n * a text/JSON body (extracted text previews, agent artifacts, tool storage). Encoding\n * chunks ourselves keeps both string and binary bodies uploadable.\n */\nfunction chunkToBlobPart(chunk) {\n if (typeof chunk === 'string') {\n return textEncoder.encode(chunk);\n }\n if (chunk instanceof Blob) {\n return chunk;\n }\n if (chunk instanceof ArrayBuffer) {\n return new Uint8Array(chunk);\n }\n // Covers Uint8Array and every other typed-array / DataView view.\n if (ArrayBuffer.isView(chunk)) {\n return new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength);\n }\n // Fail loud rather than uploading e.g. \"[object Object]\" from an accidental\n // object-mode stream — silently corrupting the stored content is worse than a clear error.\n throw new TypeError(`Unsupported signed-URL upload chunk of type \"${typeof chunk}\"; ` +\n `body streams must yield string or binary (Uint8Array/ArrayBuffer/DataView/Blob) chunks.`);\n}\n/**\n * Buffer a `ReadableStream` body into a `Blob` so the request can be safely\n * replayed across retries. Other body types (`Blob`/`File`, `ArrayBuffer`,\n * typed arrays, strings, `URLSearchParams`) are already replayable and pass\n * through unchanged.\n *\n * The stream is drained manually (rather than `new Response(stream).blob()`) so that\n * string chunks are encoded to bytes — see {@link chunkToBlobPart}.\n */\nasync function toReplayableBody(body) {\n if (body == null) {\n return undefined;\n }\n if (typeof ReadableStream !== 'undefined' && body instanceof ReadableStream) {\n const reader = body.getReader();\n const parts = [];\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n // Normalize every chunk (a stray null/undefined is rejected by\n // chunkToBlobPart) so a malformed stream fails loudly instead of\n // silently uploading a truncated body.\n parts.push(chunkToBlobPart(value));\n }\n }\n catch (err) {\n // Signal the producer to stop and release its resources before propagating.\n await reader.cancel(err).catch(() => undefined);\n throw err;\n }\n finally {\n reader.releaseLock();\n }\n return new Blob(parts);\n }\n return body;\n}\n/**\n * `fetch()` a cloud-storage signed URL, retrying transient failures (connection\n * errors and retryable HTTP statuses) with exponential backoff. Honors a\n * `Retry-After` response header when present.\n *\n * The returned `Response` is only guaranteed to be retried while it carries a\n * retryable status; a non-retryable error response (e.g. 403, 404) is returned\n * as-is for the caller to handle.\n */\nexport async function fetchSignedUrl(url, options = {}) {\n const { method = 'GET', headers, attempts = DEFAULT_ATTEMPTS, baseDelayMs = DEFAULT_BASE_DELAY_MS, maxDelayMs = DEFAULT_MAX_DELAY_MS, retryableStatuses = DEFAULT_RETRYABLE_STATUSES, } = options;\n const body = await toReplayableBody(options.body);\n let lastError;\n for (let attempt = 0; attempt < attempts; attempt++) {\n const isLastAttempt = attempt === attempts - 1;\n try {\n const res = await fetch(url, { method, headers, body });\n if (res.ok || !retryableStatuses.has(res.status) || isLastAttempt) {\n return res;\n }\n // Retryable status: drain the body so the connection can be reused, then back off.\n await res.body?.cancel().catch(() => undefined);\n await sleep(backoffMs(attempt, baseDelayMs, maxDelayMs, res));\n }\n catch (err) {\n lastError = err;\n if (isLastAttempt) {\n throw err;\n }\n await sleep(backoffMs(attempt, baseDelayMs, maxDelayMs));\n }\n }\n // Unreachable: the loop always returns a Response or throws on the last attempt.\n throw lastError instanceof Error ? lastError : new Error(`Failed to fetch signed URL: ${url}`);\n}\n//# sourceMappingURL=signed-url.js.map","import { AgentMessageType } from '@vertesia/common';\nfunction readProcessRunId(details) {\n if (!details || typeof details !== 'object') {\n return undefined;\n }\n const value = details.process_run_id;\n return typeof value === 'string' ? value : undefined;\n}\nfunction isRootProcessMessage(details, rootRunId) {\n const processRunId = readProcessRunId(details);\n return !processRunId || processRunId === rootRunId;\n}\nexport function shouldCloseAgentRunStream(message, rootRunId) {\n if (message.type === AgentMessageType.TERMINATED) {\n return isRootProcessMessage(message.details, rootRunId);\n }\n if (message.type === AgentMessageType.COMPLETE && (message.workstream_id ?? 'main') === 'main') {\n return isRootProcessMessage(message.details, rootRunId);\n }\n return false;\n}\nexport function shouldCloseCompactRunStream(message, rootRunId) {\n if (message.t === AgentMessageType.TERMINATED) {\n return isRootProcessMessage(message.d, rootRunId);\n }\n if (message.t === AgentMessageType.COMPLETE && (message.w ?? 'main') === 'main') {\n return isRootProcessMessage(message.d, rootRunId);\n }\n return false;\n}\n//# sourceMappingURL=stream-termination.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nimport { parseMessage, toAgentMessage, } from '@vertesia/common';\nimport { EventSourceProvider } from '../execute.js';\nimport { fetchSignedUrl } from './signed-url.js';\nimport { shouldCloseAgentRunStream, shouldCloseCompactRunStream } from './stream-termination.js';\nexport class AgentsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/agents');\n }\n start(payload) {\n return this.post('/', { payload });\n }\n recordRun(payload) {\n return this.post('/record', { payload });\n }\n createRecord(payload) {\n return this.recordRun(payload);\n }\n /**\n * Get agent run by id.\n */\n retrieve(id) {\n return this.get(`/${id}`);\n }\n /**\n * Get any agent run by id, preserving the agent/process discriminator.\n */\n retrieveRun(id) {\n return this.get(`/${id}`);\n }\n retrieveProcess(id) {\n return this.get(`/${id}`);\n }\n /**\n * List agent runs with optional filters.\n */\n list(query) {\n return this.get('/', { query: this.buildListQueryParams(query) });\n }\n async listProcessRuns(query) {\n const response = await this.get('/', {\n query: this.buildListQueryParams({ ...query, run_kind: 'process' }),\n });\n return response.items.filter(isProcessRunResponse);\n }\n buildListQueryParams(query) {\n const params = {};\n if (query?.id)\n params.id = query.id;\n if (query?.status) {\n params.status = Array.isArray(query.status) ? query.status.join(',') : query.status;\n }\n if (query?.interaction)\n params.interaction = query.interaction;\n if (query?.started_by)\n params.started_by = query.started_by;\n if (query?.since)\n params.since = query.since.toISOString();\n if (query?.until)\n params.until = query.until.toISOString();\n if (query?.schedule_id)\n params.schedule_id = query.schedule_id;\n if (query?.type)\n params.type = query.type;\n if (query?.run_type)\n params.run_type = Array.isArray(query.run_type) ? query.run_type.join(',') : query.run_type;\n if (query?.run_kind)\n params.run_kind = query.run_kind;\n if (query?.limit)\n params.limit = String(query.limit);\n if (query?.offset)\n params.offset = String(query.offset);\n if (query?.cursor)\n params.cursor = query.cursor;\n if (query?.sort)\n params.sort = query.sort;\n if (query?.order)\n params.order = query.order;\n return params;\n }\n /**\n * Search agent runs via Elasticsearch (full-text + filters).\n */\n search(query) {\n const params = {};\n if (query?.query)\n params.query = query.query;\n if (query?.status) {\n params.status = Array.isArray(query.status) ? query.status.join(',') : query.status;\n }\n if (query?.interaction)\n params.interaction = query.interaction;\n if (query?.started_by)\n params.started_by = query.started_by;\n if (query?.categories?.length)\n params.categories = query.categories.join(',');\n if (query?.tags?.length)\n params.tags = query.tags.join(',');\n if (query?.content_type_name)\n params.content_type_name = query.content_type_name;\n if (query?.since)\n params.since = query.since.toISOString();\n if (query?.until)\n params.until = query.until.toISOString();\n if (query?.limit)\n params.limit = String(query.limit);\n if (query?.offset)\n params.offset = String(query.offset);\n if (query?.sort?.length)\n params.sort = query.sort.join(',');\n return this.get('/search', { query: params });\n }\n /**\n * Cancel/terminate an agent run.\n */\n terminate(id, reason) {\n const query = reason ? { reason } : undefined;\n return this.del(`/${id}`, { query });\n }\n /**\n * Restart a completed/failed/cancelled agent run.\n * Continues the SAME AgentRun — starts a new workflow that loads\n * the conversation history from where it left off.\n * Returns the updated AgentRun (same id, status back to running).\n */\n restart(id) {\n return this.post(`/${id}/restart`, {});\n }\n /**\n * Fork a conversation into a new agent run.\n */\n fork(id) {\n return this.post(`/${id}/fork`, {});\n }\n getContext(id) {\n return this.get(`/${id}/context`);\n }\n getHistory(id) {\n return this.get(`/${id}/history`);\n }\n advance(id, payload) {\n return this.post(`/${id}/advance`, { payload: payload ?? {} });\n }\n retryNode(id, payload) {\n return this.post(`/${id}/retry-node`, { payload: payload ?? {} });\n }\n answerTask(id, taskId, result) {\n return this.post(`/${id}/answer-task`, { payload: { task_id: taskId, result } });\n }\n /**\n * Update agent run status/metadata.\n * Called by workflow activities to sync lifecycle state.\n */\n updateStatus(id, update) {\n return this.post(`/${id}/status`, { payload: update });\n }\n /**\n * Attach Temporal workflow run ids to a pre-created run record.\n *\n * @internal\n */\n bindWorkflowRun(id, payload) {\n return this.post(`/${id}/workflow`, { payload });\n }\n // ========================================================================\n // Communication\n // ========================================================================\n /**\n * Send a signal to a running agent.\n * Signals: \"UserInput\", \"Stop\", \"FileUploaded\", \"FileRemoved\"\n */\n sendSignal(id, signalName, payload) {\n return this.post(`/${id}/signal/${signalName}`, { payload });\n }\n /**\n * Query a running agent's state.\n * Queries: \"ActiveWorkstreams\", \"AgentPlan\", \"AvailableTools\"\n */\n query(id, queryName) {\n return this.get(`/${id}/query/${queryName}`);\n }\n /**\n * Get active workstreams (convenience wrapper).\n */\n getActiveWorkstreams(id) {\n return this.query(id, 'ActiveWorkstreams');\n }\n // ========================================================================\n // Messages\n // ========================================================================\n /**\n * Retrieve stored messages for an agent run.\n * Returns gzip-compressed responses for large payloads.\n */\n async retrieveMessages(id, since) {\n const query = since ? { since } : undefined;\n const response = (await this.get(`/${id}/updates`, { query }));\n return response.messages.map((m) => toAgentMessage(parseMessage(m), id));\n }\n /**\n * Post a message/update to an agent run.\n */\n postMessage(id, msg) {\n return this.post(`/${id}/updates`, { payload: msg });\n }\n // ========================================================================\n // Streaming\n // ========================================================================\n /**\n * Stream messages via SSE. Returns a promise that resolves on stream end.\n *\n * Fetches historical messages via GET /updates (gzip-compressed),\n * then connects to SSE for real-time updates only.\n */\n async streamMessages(id, onMessage, since, signal, options) {\n let resolveFn = () => { };\n let rejectFn = () => { };\n const promise = new Promise((resolve, reject) => {\n resolveFn = resolve;\n rejectFn = reject;\n });\n let reconnectAttempts = 0;\n let lastMessageTimestamp = since || 0;\n const historyFetchStartedAt = Date.now();\n let isClosed = false;\n let currentSse = null;\n let interval = null;\n let reconnectTimer = null;\n let abortHandler = null;\n const maxReconnectAttempts = 10;\n const baseDelay = 1000;\n const maxDelay = 30000;\n const calculateBackoffDelay = (attempts) => {\n const exponentialDelay = Math.min(baseDelay * 2 ** attempts, maxDelay);\n const jitter = Math.random() * 0.1 * exponentialDelay;\n return exponentialDelay + jitter;\n };\n const cleanup = () => {\n if (reconnectTimer) {\n clearTimeout(reconnectTimer);\n reconnectTimer = null;\n }\n if (interval) {\n clearInterval(interval);\n interval = null;\n }\n if (currentSse) {\n currentSse.close();\n currentSse = null;\n }\n if (signal && abortHandler) {\n signal.removeEventListener('abort', abortHandler);\n abortHandler = null;\n }\n };\n const exit = (payload) => {\n if (!isClosed) {\n isClosed = true;\n cleanup();\n resolveFn(payload);\n }\n };\n // SSE reconnection exhausted. The run is durable and still executing\n // server-side — only the live view dropped. Failing fatally here aborts\n // headless consumers (CLI `agents stream`, agent test harnesses) before\n // they can read the result. Instead degrade gracefully: poll GET /updates\n // for any messages we missed and exit cleanly once the run is terminal,\n // even if the terminal message never streamed.\n const POLL_INTERVAL_MS = 5000;\n const isTerminalStatus = (status) => typeof status === 'string' && ['completed', 'failed', 'cancelled'].includes(status);\n const degradeToPolling = (reason) => {\n if (isClosed)\n return;\n cleanup();\n console.warn(`Agent stream ${id}: SSE unavailable after ${maxReconnectAttempts} attempts; falling back to /updates polling.`, reason instanceof Error ? reason.message : reason);\n const tick = async () => {\n if (isClosed)\n return;\n try {\n const recent = await this.retrieveMessages(id, lastMessageTimestamp || undefined);\n for (const msg of recent) {\n if (isClosed)\n return;\n if ((msg.timestamp || 0) <= lastMessageTimestamp)\n continue;\n lastMessageTimestamp = msg.timestamp || lastMessageTimestamp;\n if (onMessage)\n onMessage(msg, exit);\n if (isClosed)\n return;\n if (shouldCloseAgentRunStream(msg, id)) {\n exit(null);\n return;\n }\n }\n }\n catch {\n // transient poll error — retry next tick\n }\n if (isClosed)\n return;\n // Exit even when no terminal message ever streams, by reading the run record.\n try {\n const run = (await this.get(`/${id}`));\n if (isTerminalStatus(run?.status)) {\n exit(null);\n return;\n }\n }\n catch {\n // ignore — retry next tick\n }\n if (!isClosed) {\n reconnectTimer = setTimeout(() => {\n reconnectTimer = null;\n void tick();\n }, POLL_INTERVAL_MS);\n }\n };\n void tick();\n };\n if (signal) {\n if (signal.aborted) {\n isClosed = true;\n cleanup();\n resolveFn(null);\n return promise;\n }\n abortHandler = () => {\n exit(null);\n };\n signal.addEventListener('abort', abortHandler, { once: true });\n }\n // 1. Fetch historical messages via GET /updates (gzip-compressed)\n try {\n if (!isClosed) {\n const historical = await this.retrieveMessages(id, since);\n options?.onHistoryLoaded?.(historical);\n let shouldCloseAfterHistory = false;\n for (let index = 0; index < historical.length; index++) {\n const msg = historical[index];\n if (isClosed)\n break;\n lastMessageTimestamp = Math.max(lastMessageTimestamp, msg.timestamp || 0);\n if (onMessage)\n onMessage(msg, exit);\n if (isClosed)\n break;\n shouldCloseAfterHistory = index === historical.length - 1 && shouldCloseAgentRunStream(msg, id);\n }\n if (shouldCloseAfterHistory) {\n exit(null);\n return promise;\n }\n }\n }\n catch (err) {\n if (!isClosed) {\n options?.onHistoryError?.(err);\n console.warn('Failed to fetch historical messages, continuing with SSE:', err);\n }\n }\n if (!isClosed && lastMessageTimestamp <= 0) {\n // The server only replays the GET-to-SSE handoff gap when `since > 0`.\n // New runs often have no history yet, so use the GET start time as the\n // cursor to avoid dropping messages emitted before the SSE subscription\n // is active.\n lastMessageTimestamp = Math.max(1, historyFetchStartedAt - 1);\n }\n // 2. Connect to SSE for real-time updates\n const setupStream = async (isReconnect = false) => {\n if (isClosed)\n return;\n try {\n const EventSourceImpl = await EventSourceProvider();\n if (isClosed)\n return;\n const client = this.client;\n const streamUrl = new URL(`${client.agents.baseUrl}/${id}/stream`);\n if (lastMessageTimestamp > 0) {\n streamUrl.searchParams.set('since', lastMessageTimestamp.toString());\n }\n streamUrl.searchParams.set('skipHistory', 'true');\n const bearerToken = client._auth ? await client._auth() : undefined;\n if (isClosed)\n return;\n if (!bearerToken) {\n isClosed = true;\n cleanup();\n rejectFn(new Error('No auth token available'));\n return;\n }\n const token = bearerToken.split(' ')[1];\n streamUrl.searchParams.set('access_token', token);\n if (isReconnect) {\n console.log(`Reconnecting to agent stream ${id} (attempt ${reconnectAttempts + 1}/${maxReconnectAttempts})`);\n }\n if (isClosed)\n return;\n const sse = new EventSourceImpl(streamUrl.href);\n currentSse = sse;\n interval = setInterval(() => { }, 1000);\n let connectionOpenedAt = 0;\n sse.onopen = () => {\n if (isReconnect)\n console.log(`Reconnected to agent stream ${id}`);\n connectionOpenedAt = Date.now();\n };\n sse.onmessage = (ev) => {\n if (isClosed)\n return;\n if (!ev.data || ev.data.startsWith(':'))\n return;\n try {\n const compactMessage = parseMessage(ev.data);\n if (compactMessage.ts) {\n lastMessageTimestamp = Math.max(lastMessageTimestamp, compactMessage.ts);\n }\n else {\n lastMessageTimestamp = Date.now();\n }\n if (onMessage) {\n const agentMessage = toAgentMessage(compactMessage, id);\n onMessage(agentMessage, exit);\n }\n if (shouldCloseCompactRunStream(compactMessage, id)) {\n exit(null);\n }\n }\n catch (err) {\n console.error('Failed to parse SSE message:', err, ev.data);\n }\n };\n sse.onerror = (_err) => {\n if (isClosed)\n return;\n cleanup();\n // Only reset reconnect attempts if the connection was stable\n // for at least 5 seconds. This prevents infinite rapid polling\n // when the connection opens (200) but drops immediately (e.g.\n // proxy/load-balancer timeout).\n const connectionDuration = connectionOpenedAt ? Date.now() - connectionOpenedAt : 0;\n if (connectionDuration > 5000) {\n reconnectAttempts = 0;\n }\n if (reconnectAttempts < maxReconnectAttempts) {\n const delay = calculateBackoffDelay(reconnectAttempts);\n reconnectAttempts++;\n reconnectTimer = setTimeout(() => {\n reconnectTimer = null;\n if (!isClosed)\n void setupStream(true);\n }, delay);\n }\n else {\n degradeToPolling(new Error(`SSE connection failed after ${maxReconnectAttempts} reconnection attempts`));\n }\n };\n }\n catch (err) {\n if (isClosed)\n return;\n if (reconnectAttempts < maxReconnectAttempts) {\n const delay = calculateBackoffDelay(reconnectAttempts);\n reconnectAttempts++;\n reconnectTimer = setTimeout(() => {\n reconnectTimer = null;\n if (!isClosed)\n void setupStream(true);\n }, delay);\n }\n else {\n degradeToPolling(err);\n }\n }\n };\n void setupStream(false);\n return promise;\n }\n // ========================================================================\n // Observability\n // ========================================================================\n /**\n * Get internal/Temporal details for an agent run.\n * Returns fields normally stripped from client responses (workflow IDs, artifacts path).\n */\n getInternals(id) {\n return this.get(`/${id}/internals`);\n }\n /**\n * Get detailed workflow run information for an agent run.\n * The server resolves Temporal IDs internally.\n */\n getRunDetails(id, options) {\n const query = {};\n if (options?.includeHistory)\n query.include_history = 'true';\n if (options?.hydratePayloads)\n query.hydrate_payloads = 'true';\n return this.get(`/${id}/details`, { query });\n }\n /**\n * Stream Temporal history events via SSE (handles continueAsNew).\n * Returns an EventSource that emits 'history' and 'control' events.\n */\n async streamRunDetails(id, onEvent, signal) {\n const EventSourceImpl = await EventSourceProvider();\n const client = this.client;\n const streamUrl = new URL(`${client.agents.baseUrl}/${id}/details/stream`);\n const bearerToken = client._auth ? await client._auth() : undefined;\n if (!bearerToken) {\n throw new Error('No auth token available');\n }\n const token = bearerToken.split(' ')[1];\n streamUrl.searchParams.set('access_token', token);\n return new Promise((resolve, reject) => {\n const sse = new EventSourceImpl(streamUrl.href);\n let abortHandler = null;\n const cleanup = () => {\n sse.close();\n if (signal && abortHandler) {\n signal.removeEventListener('abort', abortHandler);\n abortHandler = null;\n }\n };\n if (signal) {\n if (signal.aborted) {\n cleanup();\n resolve();\n return;\n }\n abortHandler = () => {\n cleanup();\n resolve();\n };\n signal.addEventListener('abort', abortHandler, { once: true });\n }\n sse.addEventListener('history', (ev) => {\n try {\n const data = JSON.parse(ev.data);\n if (onEvent)\n onEvent({ type: 'history', data });\n }\n catch (_err) {\n /* ignore parse errors */\n }\n });\n sse.addEventListener('control', (ev) => {\n try {\n const data = JSON.parse(ev.data);\n if (onEvent)\n onEvent({ type: 'control', data });\n if ('type' in data && data.type === 'done') {\n cleanup();\n resolve();\n }\n }\n catch (_err) {\n /* ignore parse errors */\n }\n });\n sse.addEventListener('error', (ev) => {\n try {\n const data = JSON.parse(ev.data);\n if (onEvent)\n onEvent({ type: 'error', data });\n }\n catch (_err) {\n /* ignore parse errors */\n }\n });\n sse.onerror = (_err) => {\n cleanup();\n reject(new Error('SSE connection failed for details stream'));\n };\n });\n }\n /**\n * List child workflows for an agent or process run.\n */\n listChildren(id) {\n return this.get(`/${id}/children`);\n }\n /**\n * Get details for a specific child workflow.\n * Serves from the child run record when available, falls back to archive or Temporal.\n */\n getChildDetails(id, childWorkflowId, options) {\n const query = {};\n if (options?.includeHistory)\n query.include_history = 'true';\n if (options?.hydratePayloads)\n query.hydrate_payloads = 'true';\n return this.get(`/${id}/children/${childWorkflowId}/details`, { query });\n }\n // ========================================================================\n // Artifacts\n // ========================================================================\n /**\n * List artifacts for an agent run.\n * visibility:\n * - 'user' (default): only user-facing artifacts\n * - 'internal': only system-managed state files such as conversation snapshots\n * - 'all': both user-facing and internal files\n */\n listArtifacts(id, options) {\n const query = options?.visibility ? { visibility: options.visibility } : undefined;\n return this.get(`/${id}/artifacts`, { query });\n }\n /**\n * Get a signed download URL for an artifact.\n */\n getArtifactUrl(id, path, disposition, fileName) {\n const query = { url: '1' };\n if (disposition)\n query.disposition = disposition;\n if (fileName)\n query.filename = fileName;\n return this.get(`/${id}/artifacts/${path}`, { query });\n }\n /**\n * Upload an artifact to an agent run.\n * Works even before the workflow has started (pre-upload).\n *\n * 1. Gets a signed upload URL from the server\n * 2. Uploads the content directly to cloud storage\n *\n * @returns The full storage path of the uploaded artifact.\n */\n async uploadArtifact(id, path, content, contentType) {\n const mimeType = contentType || 'application/octet-stream';\n // 1. Get signed upload URL from the agents API\n const result = (await this.put(`/${id}/artifacts/${path}`, {\n headers: { 'Content-Type': mimeType },\n }));\n // 2. Upload directly to cloud storage\n const res = await fetchSignedUrl(result.url, {\n method: 'PUT',\n body: content,\n headers: { 'Content-Type': mimeType },\n });\n if (!res.ok) {\n throw new Error(`Failed to upload artifact: ${res.statusText}`);\n }\n return result;\n }\n /**\n * Download an artifact from an agent run.\n */\n async downloadArtifact(id, path) {\n const { url } = await this.getArtifactUrl(id, path, 'attachment');\n const res = await fetchSignedUrl(url);\n if (!res.ok) {\n throw new Error(`Failed to download artifact: ${res.statusText}`);\n }\n if (!res.body) {\n throw new Error('No body in artifact download response');\n }\n return res.body;\n }\n // ========================================================================\n // Telemetry ingestion\n // ========================================================================\n /**\n * Ingest telemetry events for an agent run.\n * Workers use this to send telemetry to zeno-server for BigQuery storage.\n */\n ingestEvents(agentRunId, events) {\n const payload = { events };\n return this.post(`/${agentRunId}/events`, { payload });\n }\n // ========================================================================\n // Analytics\n // ========================================================================\n /**\n * Get analytics summary.\n * Returns overall metrics including token usage, success rates, and run counts.\n */\n getAnalyticsSummary(query = {}) {\n return this.post('/analytics/summary', { payload: query });\n }\n /**\n * Get token usage analytics.\n * Returns token consumption metrics by model, agent, tool, or over time.\n */\n getTokenUsageAnalytics(query = {}) {\n return this.post('/analytics/tokens', { payload: query });\n }\n /**\n * Get LLM latency analytics.\n * Returns duration/latency metrics for LLM calls.\n */\n getLlmLatencyAnalytics(query = {}) {\n return this.post('/analytics/latency/llm', { payload: query });\n }\n /**\n * Get tool latency analytics.\n * Returns duration/latency metrics for tool calls.\n */\n getToolLatencyAnalytics(query = {}) {\n return this.post('/analytics/latency/tools', { payload: query });\n }\n /**\n * Get agent latency analytics.\n * Returns duration metrics for complete agent runs.\n */\n getAgentLatencyAnalytics(query = {}) {\n return this.post('/analytics/latency/agents', { payload: query });\n }\n /**\n * Get error analytics.\n * Returns error rates, types, and trends.\n */\n getErrorAnalytics(query = {}) {\n return this.post('/analytics/errors', { payload: query });\n }\n /**\n * Get tool usage analytics.\n * Returns tool invocation counts, success rates, and performance metrics.\n */\n getToolAnalytics(query = {}) {\n return this.post('/analytics/tools', { payload: query });\n }\n /**\n * Get tool parameter analytics.\n * Returns parameter value distributions for a specific tool.\n */\n getToolParameterAnalytics(query) {\n return this.post('/analytics/tools/parameters', { payload: query });\n }\n /**\n * Get available filter options for analytics.\n * Returns unique agents, environments, and models from telemetry data.\n */\n getAnalyticsFilterOptions(query = {}) {\n return this.post('/analytics/filter-options', { payload: query });\n }\n /**\n * Get average prompt size (input tokens) by agent for startConversation calls.\n * This represents the initial prompt + tools size.\n */\n getPromptSizeAnalytics(query = {}) {\n return this.post('/analytics/prompt-size', { payload: query });\n }\n /**\n * Get top principals (users/API keys) who started the most agent runs.\n * Returns the top N principals sorted by run count descending.\n */\n getTopPrincipalsAnalytics(query = {}) {\n return this.post('/analytics/top-principals', { payload: query });\n }\n /**\n * Get agent run distribution - how many runs per agent/interaction type.\n * Returns the top N agents sorted by run count descending.\n */\n getRunsByAgentAnalytics(query = {}) {\n return this.post('/analytics/runs-by-agent', { payload: query });\n }\n /**\n * Get time to first response analytics.\n * Measures the time from agent start to the completion of the first LLM call.\n * Returns average, min, max, median, p95, and p99 metrics.\n */\n getTimeToFirstResponseAnalytics(query = {}) {\n return this.post('/analytics/time-to-first-response', { payload: query });\n }\n /**\n * Get first response behavior analytics.\n * Analyzes the agent's first LLM response behavior:\n * - Percentage of agents that start by making a plan\n * - Percentage of agents that return no tool calls at start\n */\n getFirstResponseBehaviorAnalytics(query = {}) {\n return this.post('/analytics/first-response-behavior', { payload: query });\n }\n}\nfunction isProcessRunResponse(run) {\n return run.run_kind === 'process';\n}\n//# sourceMappingURL=AgentsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport class CollectionsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/collections');\n }\n /**\n * List collections\n * @param payload: CollectionSearchPayload\n * @returns Collection[] list of collections\n **/\n search(payload) {\n return this.post('/search', { payload });\n }\n /**\n * Compute facets for List collections\n * @param query: ComputeCollectionFacetPayload\n * @returns ComputeFacetsResponse list of facets\n **/\n computeListFacets(query) {\n return this.post('/facets', {\n payload: query,\n });\n }\n /**\n * Get the collection data without members\n * @param collectionId\n * @returns\n */\n retrieve(collectionId) {\n return this.get(`/${collectionId}`);\n }\n create(payload) {\n return this.post(`/`, {\n payload,\n });\n }\n update(collectionId, payload) {\n return this.put(`/${collectionId}`, {\n payload,\n });\n }\n addMembers(collectionId, members) {\n return this.post(`/${collectionId}/members`, {\n payload: {\n action: 'add',\n members,\n },\n });\n }\n listMembers(collectionId, payload) {\n return this.get(`/${collectionId}/members`, {\n query: {\n ...payload,\n },\n });\n }\n computeFacets(collectionId, query) {\n return this.post(`/${collectionId}/facets`, {\n payload: query,\n });\n }\n searchMembers(collectionId, payload) {\n return this.post(`/${collectionId}/search`, { payload });\n }\n deleteMembers(collectionId, members) {\n return this.post(`/${collectionId}/members`, {\n payload: {\n action: 'delete',\n members,\n },\n });\n }\n addChildren(collectionId, children) {\n return this.post(`/${collectionId}/children`, {\n payload: {\n action: 'add',\n children,\n },\n });\n }\n deleteChildren(collectionId, children) {\n return this.post(`/${collectionId}/children`, {\n payload: {\n action: 'delete',\n children,\n },\n });\n }\n searchChildren(collectionId, query = {}) {\n return this.post(`/${collectionId}/children/search`, {\n payload: query,\n });\n }\n delete(id) {\n return this.del(`/${id}`);\n }\n /**\n * Update collection permissions and propagate to member objects\n * @param collectionId - The collection ID\n * @param permissions - Map of permission types to principal arrays\n * @returns Object with collection id, updated security, and number of objects updated\n */\n updatePermissions(collectionId, permissions) {\n return this.put(`/${collectionId}/permissions`, {\n payload: permissions,\n });\n }\n /**\n * Manually trigger permission propagation from collection to member objects\n * Useful for debugging and fixing permission issues\n * @param collectionId - The collection ID\n * @returns Object with collection id, message, and number of objects updated\n */\n propagatePermissions(collectionId) {\n return this.post(`/${collectionId}/propagate-permissions`);\n }\n /**\n * Manually trigger shared properties propagation from collection to member objects\n * Useful for debugging and fixing shared properties issues\n * @param collectionId - The collection ID\n * @returns Object with collection id, message, and number of objects updated\n */\n propagateSharedProperties(collectionId) {\n return this.post(`/${collectionId}/propagate-shared-props`);\n }\n}\n//# sourceMappingURL=CollectionsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport class CostApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/cost');\n }\n /**\n * Get cost analytics for the current project.\n * Returns cost breakdown by model/environment with pricing from billing export.\n * Covers all inference types: direct, agent, embedding.\n */\n getAnalytics(query = {}) {\n return this.post('/analytics', { payload: query });\n }\n /**\n * Get platform-wide cost analytics across all customers.\n * Requires Vertesia staff privileges. Defaults to group_by='account'.\n */\n getGlobalAnalytics(query = {}) {\n return this.post('/analytics/global', { payload: query });\n }\n /**\n * Get current list prices and effective prices for the selected period.\n */\n getModelPrices(query = {}) {\n return this.get('/model-prices', { query: { ...query } });\n }\n /**\n * Price a single interaction run or agent run.\n */\n getRunPrice(query) {\n return this.post('/run-price', { payload: query });\n }\n /**\n * Price a run and include the full model pricing catalog for comparison.\n */\n getRunPriceComparison(query) {\n return this.post('/run-price', { payload: { ...query, include_comparison_pricing: true } });\n }\n /**\n * Get the CSV export URL for raw inference audit events.\n */\n getExportUrl(params) {\n const searchParams = new URLSearchParams();\n if (params?.from)\n searchParams.set('from', typeof params.from === 'number' ? new Date(params.from).toISOString() : params.from);\n if (params?.to)\n searchParams.set('to', typeof params.to === 'number' ? new Date(params.to).toISOString() : params.to);\n if (params?.scope)\n searchParams.set('scope', params.scope);\n if (params?.project_id)\n searchParams.set('project_id', params.project_id);\n if (params?.workflow_id)\n searchParams.set('workflow_id', params.workflow_id);\n const qs = searchParams.toString();\n return `${this.baseUrl}/export${qs ? `?${qs}` : ''}`;\n }\n}\n//# sourceMappingURL=CostApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nimport { DataStoreApiHeaders, } from '@vertesia/common';\n/**\n * Client API for managing Vega-based dashboards linked to data stores.\n *\n * Dashboards provide:\n * - Multi-panel Vega/Vega-Lite visualizations\n * - SQL-backed data sources via named queries\n *\n * Note: Rendering is handled by the tools (data_preview_dashboard, data_render_dashboard).\n */\nexport class DashboardApi extends ApiTopic {\n storeId;\n constructor(parent, storeId) {\n super(parent, `/api/v1/data/${storeId}/dashboards`);\n this.storeId = storeId;\n }\n /**\n * Create headers with data store ID for Cloud Run session affinity.\n */\n storeHeaders() {\n return { [DataStoreApiHeaders.DATA_STORE_ID]: this.storeId };\n }\n // ============================================================\n // Dashboard Operations\n // ============================================================\n /**\n * List all dashboards for the data store.\n *\n * @param status - Filter by status (default: 'active')\n * @returns List of dashboards\n */\n list(status) {\n const query = status ? `?status=${status}` : '';\n return this.get(`/${query}`, { headers: this.storeHeaders() });\n }\n /**\n * Create a new dashboard.\n *\n * @param payload - Dashboard configuration with queries and panels\n * @returns The created dashboard\n *\n * @example\n * ```typescript\n * const dashboard = await client.data.dashboards(storeId).create({\n * name: 'Sales Overview',\n * queries: [\n * { name: 'revenue', sql: 'SELECT month, SUM(amount) FROM sales GROUP BY month' }\n * ],\n * panels: [\n * {\n * title: 'Monthly Revenue',\n * dataSources: ['revenue'],\n * position: { row: 0, col: 0 },\n * spec: {\n * mark: 'bar',\n * encoding: {\n * x: { field: 'month', type: 'ordinal' },\n * y: { field: 'sum_amount', type: 'quantitative' }\n * }\n * }\n * }\n * ]\n * });\n * ```\n */\n create(payload) {\n return this.post('/', { payload, headers: this.storeHeaders() });\n }\n /**\n * Get a dashboard by ID.\n *\n * @param id - Dashboard ID\n * @returns The dashboard with all details\n */\n retrieve(id) {\n return this.get(`/${id}`, { headers: this.storeHeaders() });\n }\n /**\n * Update an existing dashboard.\n *\n * @param id - Dashboard ID\n * @param payload - Fields to update\n * @returns The updated dashboard\n */\n update(id, payload) {\n return this.put(`/${id}`, { payload, headers: this.storeHeaders() });\n }\n /**\n * Archive (soft delete) a dashboard.\n *\n * @param id - Dashboard ID\n * @returns Object with the archived dashboard ID\n */\n delete(id) {\n return this.del(`/${id}`, { headers: this.storeHeaders() });\n }\n /**\n * Archive (soft delete) multiple dashboards.\n *\n * @param ids - Array of dashboard IDs\n * @returns Object with counts of archived and failed dashboards\n */\n bulkArchive(ids) {\n return this.post('/bulk/archive', { payload: { ids }, headers: this.storeHeaders() });\n }\n /**\n * Permanently delete multiple dashboards.\n *\n * @param ids - Array of dashboard IDs\n * @returns Object with counts of deleted and failed dashboards\n */\n bulkDelete(ids) {\n return this.post('/bulk/delete', { payload: { ids }, headers: this.storeHeaders() });\n }\n // ============================================================\n // Version Operations\n // ============================================================\n /**\n * List versions for a dashboard.\n *\n * @param dashboardId - Dashboard ID\n * @param options - Filter options\n * @returns List of version summaries\n */\n listVersions(dashboardId, options) {\n const params = new URLSearchParams();\n if (options?.snapshotsOnly)\n params.set('snapshots_only', 'true');\n if (options?.limit)\n params.set('limit', String(options.limit));\n const query = params.toString() ? `?${params}` : '';\n return this.get(`/${dashboardId}/versions${query}`, { headers: this.storeHeaders() });\n }\n /**\n * Get a specific version with full content.\n *\n * @param dashboardId - Dashboard ID\n * @param versionId - Version ID\n * @returns The version with full content\n */\n getVersion(dashboardId, versionId) {\n return this.get(`/${dashboardId}/versions/${versionId}`, { headers: this.storeHeaders() });\n }\n /**\n * Create a named snapshot from current dashboard state.\n *\n * @param dashboardId - Dashboard ID\n * @param payload - Snapshot name and message\n * @returns The created snapshot version\n */\n createSnapshot(dashboardId, payload) {\n return this.post(`/${dashboardId}/versions`, { payload, headers: this.storeHeaders() });\n }\n /**\n * Promote a version to be the current/active one.\n * This restores the version's content to the dashboard.\n *\n * @param dashboardId - Dashboard ID\n * @param versionId - Version ID to promote\n * @param payload - Optional promotion message\n * @returns The updated dashboard\n */\n promoteVersion(dashboardId, versionId, payload) {\n return this.post(`/${dashboardId}/versions/${versionId}/promote`, {\n payload: payload || {},\n headers: this.storeHeaders(),\n });\n }\n /**\n * Enable or disable versioning for a dashboard.\n *\n * @param dashboardId - Dashboard ID\n * @param enabled - Whether versioning should be enabled\n * @returns The updated versioning state\n */\n setVersioningEnabled(dashboardId, enabled) {\n return this.put(`/${dashboardId}/versioning`, { payload: { enabled }, headers: this.storeHeaders() });\n }\n}\n//# sourceMappingURL=DashboardApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nimport { DataStoreApiHeaders, } from '@vertesia/common';\nimport { DashboardApi } from './DashboardApi.js';\n/**\n * Client API for managing versioned analytical data stores.\n *\n * Data stores provide DuckDB-powered analytical databases with:\n * - AI-manageable schemas\n * - Multi-table atomic imports\n * - Version history and rollback\n * - Named snapshots\n */\nexport class DataApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/data');\n }\n /**\n * Create headers with data store ID for Cloud Run session affinity.\n * This routes requests for the same store to the same instance.\n */\n storeHeaders(id) {\n return { [DataStoreApiHeaders.DATA_STORE_ID]: id };\n }\n // ============================================================\n // Store Operations\n // ============================================================\n /**\n * List all data stores in the project.\n */\n list() {\n return this.get('/');\n }\n /**\n * Create a new data store.\n *\n * @param payload - Store configuration including name and optional description\n * @returns The created data store\n *\n * @example\n * ```typescript\n * const store = await client.data.create({\n * name: 'analytics',\n * description: 'Customer analytics data'\n * });\n * ```\n */\n create(payload) {\n return this.post('/', { payload });\n }\n /**\n * Retrieve a data store by ID.\n *\n * @param id - Data store ID\n * @returns The data store with full details\n */\n retrieve(id) {\n return this.get(`/${id}`, { headers: this.storeHeaders(id) });\n }\n /**\n * Archive (soft delete) a data store.\n *\n * The store data remains in GCS but is no longer accessible via API.\n *\n * @param id - Data store ID\n * @returns Object with the archived store ID\n */\n delete(id) {\n return this.del(`/${id}`, { headers: this.storeHeaders(id) });\n }\n // ============================================================\n // Schema Operations\n // ============================================================\n /**\n * Get the schema of a data store.\n *\n * @param id - Data store ID\n * @param format - Optional format: 'ai' returns AI-friendly simplified schema\n * @returns The schema (full or AI-friendly format)\n *\n * @example\n * ```typescript\n * // Get full schema\n * const schema = await client.data.getSchema(storeId);\n *\n * // Get AI-friendly schema for agent context\n * const aiSchema = await client.data.getSchema(storeId, 'ai');\n * ```\n */\n getSchema(id, format) {\n const query = format ? `?format=${format}` : '';\n return this.get(`/${id}/schema${query}`, { headers: this.storeHeaders(id) });\n }\n /**\n * Update the schema of a data store.\n *\n * Use this for AI-driven schema evolution. The schema version is automatically\n * incremented based on the type of change (major, minor, patch).\n *\n * @param id - Data store ID\n * @param payload - Schema update payload with bump type\n * @returns The updated schema\n */\n updateSchema(id, payload) {\n return this.put(`/${id}/schema`, { payload, headers: this.storeHeaders(id) });\n }\n /**\n * Get the schema version history of a data store.\n *\n * @param id - Data store ID\n * @returns List of schema versions with timestamps\n */\n getSchemaHistory(id) {\n return this.get(`/${id}/schema/history`, { headers: this.storeHeaders(id) });\n }\n // ============================================================\n // Table Operations\n // ============================================================\n /**\n * List all tables in a data store.\n *\n * @param id - Data store ID\n * @returns List of table summaries with metadata\n */\n listTables(id) {\n return this.get(`/${id}/tables`, { headers: this.storeHeaders(id) });\n }\n /**\n * Create tables in a data store atomically.\n *\n * All tables are created in a single transaction - if any table fails,\n * no tables are created.\n *\n * @param id - Data store ID\n * @param payload - Tables to create and commit message\n * @returns Array of created tables\n *\n * @example\n * ```typescript\n * const tables = await client.data.createTables(storeId, {\n * message: 'Create e-commerce schema',\n * tables: [\n * {\n * name: 'customers',\n * columns: [\n * { name: 'id', type: 'INTEGER', primary_key: true },\n * { name: 'email', type: 'STRING' },\n * ]\n * },\n * {\n * name: 'orders',\n * columns: [\n * { name: 'id', type: 'INTEGER', primary_key: true },\n * { name: 'customer_id', type: 'INTEGER' },\n * ],\n * foreign_keys: [\n * { column: 'customer_id', references_table: 'customers', references_column: 'id' }\n * ]\n * }\n * ]\n * });\n * ```\n */\n createTables(id, payload) {\n return this.post(`/${id}/tables`, { payload, headers: this.storeHeaders(id) });\n }\n /**\n * Get a table by name.\n *\n * @param id - Data store ID\n * @param tableName - Table name\n * @param sample - If true, includes sample rows\n * @returns The table with metadata and optional sample data\n */\n getTable(id, tableName, sample) {\n const query = sample ? '?sample=true' : '';\n return this.get(`/${id}/tables/${tableName}${query}`, { headers: this.storeHeaders(id) });\n }\n /**\n * Alter a table schema.\n *\n * @param id - Data store ID\n * @param tableName - Table name\n * @param payload - Changes to apply (add/drop/modify columns, etc.)\n * @returns The updated table\n */\n alterTable(id, tableName, payload) {\n return this.put(`/${id}/tables/${tableName}`, { payload, headers: this.storeHeaders(id) });\n }\n /**\n * Drop a table from the data store.\n *\n * @param id - Data store ID\n * @param tableName - Table name\n */\n dropTable(id, tableName) {\n return this.del(`/${id}/tables/${tableName}`, { headers: this.storeHeaders(id) });\n }\n // ============================================================\n // Import Operations\n // ============================================================\n /**\n * Import data into one or more tables atomically.\n *\n * If any table import fails, the entire operation is rolled back.\n * Creates a version snapshot before the import for recovery.\n *\n * @param id - Data store ID\n * @param payload - Import configuration with tables and data\n * @returns Import job with status\n *\n * @example\n * ```typescript\n * const job = await client.data.import(storeId, {\n * mode: 'append',\n * message: 'Monthly data import',\n * tables: {\n * customers: {\n * source: 'gs://bucket/customers.csv',\n * format: 'csv'\n * },\n * orders: {\n * data: [\n * { id: 1, customer_id: 1, amount: 99.99 }\n * ]\n * }\n * }\n * });\n * ```\n */\n import(id, payload) {\n return this.post(`/${id}/import`, { payload, headers: this.storeHeaders(id) });\n }\n /**\n * Get the status of an import job.\n *\n * @param id - Data store ID\n * @param importId - Import job ID\n * @returns Import job status\n */\n getImportStatus(id, importId) {\n return this.get(`/${id}/import/${importId}`, { headers: this.storeHeaders(id) });\n }\n // ============================================================\n // Version Operations\n // ============================================================\n /**\n * List versions of a data store.\n *\n * @param id - Data store ID\n * @param snapshotsOnly - If true, only returns named snapshots\n * @returns List of versions\n */\n listVersions(id, snapshotsOnly) {\n const query = snapshotsOnly ? '?snapshots_only=true' : '';\n return this.get(`/${id}/versions${query}`, { headers: this.storeHeaders(id) });\n }\n /**\n * Create a named snapshot of the current state.\n *\n * Named snapshots are kept indefinitely (not subject to 30-day cleanup).\n *\n * @param id - Data store ID\n * @param payload - Snapshot name and optional message\n * @returns The created version/snapshot\n *\n * @example\n * ```typescript\n * const snapshot = await client.data.createSnapshot(storeId, {\n * name: 'before-migration',\n * message: 'Snapshot before major schema change'\n * });\n * ```\n */\n createSnapshot(id, payload) {\n return this.post(`/${id}/versions`, { payload, headers: this.storeHeaders(id) });\n }\n /**\n * Rollback to a previous version.\n *\n * Creates a new version that is a copy of the target version.\n *\n * @param id - Data store ID\n * @param versionId - Version ID to rollback to\n * @returns The updated data store\n */\n rollback(id, versionId) {\n return this.post(`/${id}/versions/${versionId}/rollback`, { headers: this.storeHeaders(id) });\n }\n /**\n * Query a specific version or snapshot without rolling back.\n *\n * Useful for migrations: read data from old schema format to transform it.\n *\n * @param id - Data store ID\n * @param versionId - Version ID or snapshot ID to query\n * @param payload - Query configuration\n * @returns Query results from the version\n *\n * @example\n * ```typescript\n * // Create snapshot before migration\n * const snapshot = await client.data.createSnapshot(storeId, {\n * name: 'pre-migration',\n * message: 'Before name split migration'\n * });\n *\n * // Query old data from snapshot\n * const oldData = await client.data.queryVersion(storeId, snapshot.id, {\n * sql: 'SELECT id, full_name, email FROM customers'\n * });\n *\n * // Transform and import with new schema...\n * ```\n */\n queryVersion(id, versionId, payload) {\n return this.post(`/${id}/versions/${versionId}/query`, { payload, headers: this.storeHeaders(id) });\n }\n // ============================================================\n // Query Operations\n // ============================================================\n /**\n * Execute a read-only SQL query against the data store.\n *\n * @param id - Data store ID\n * @param payload - Query configuration\n * @returns Query results\n *\n * @example\n * ```typescript\n * const result = await client.data.query(storeId, {\n * sql: 'SELECT customer_id, SUM(amount) as total FROM orders GROUP BY customer_id',\n * limit: 100\n * });\n * console.log(result.rows);\n * ```\n */\n query(id, payload) {\n return this.post(`/${id}/query`, { payload, headers: this.storeHeaders(id) });\n }\n queryBatch(id, queries) {\n return this.post(`/${id}/query/batch`, { payload: { queries }, headers: this.storeHeaders(id) });\n }\n /**\n * Validate SQL queries without executing them.\n *\n * Uses DuckDB's EXPLAIN to check syntax and table/column references\n * against the store's schema. Useful for validating dashboard queries\n * before saving.\n *\n * @param id - Data store ID\n * @param queries - Array of queries to validate\n * @returns Validation result with any errors\n *\n * @example\n * ```typescript\n * const result = await client.data.validateQueries(storeId, [\n * { name: 'sales', sql: 'SELECT * FROM sales WHERE date > {{start_date}}' },\n * { name: 'products', sql: 'SELECT * FROM productss' } // typo!\n * ]);\n *\n * if (!result.valid) {\n * for (const err of result.errors) {\n * console.log(`Query '${err.query}': ${err.error}`);\n * }\n * }\n * ```\n */\n validateQueries(id, queries) {\n return this.post(`/${id}/query/validate`, { payload: { queries }, headers: this.storeHeaders(id) });\n }\n // ============================================================\n // Download Operations (for sandbox sync)\n // ============================================================\n /**\n * Get a signed download URL for the database file.\n *\n * Used by sandbox to sync databases for native DuckDB access.\n * Returns signed URL + gcs_generation for cache validation.\n *\n * @param id - Data store ID\n * @param versionId - Optional: specific version/snapshot ID (default: latest)\n * @returns Download info with signed URL and cache validation data\n *\n * @example\n * ```typescript\n * const info = await client.data.getDownloadInfo(storeId);\n * // Download if gcs_generation changed\n * if (info.gcs_generation !== localGeneration) {\n * await downloadFile(info.url, '/home/daytona/databases/store.duckdb');\n * }\n * ```\n */\n getDownloadInfo(id, versionId) {\n const query = versionId ? `?version_id=${versionId}` : '';\n return this.get(`/${id}/download${query}`, { headers: this.storeHeaders(id) });\n }\n // ============================================================\n // Dashboard Operations\n // ============================================================\n /**\n * Get the Dashboard API for a specific data store.\n *\n * @param storeId - Data store ID\n * @returns DashboardApi instance for managing dashboards\n *\n * @example\n * ```typescript\n * // List dashboards\n * const dashboards = await client.data.dashboards(storeId).list();\n *\n * // Preview a dashboard before creating\n * const preview = await client.data.dashboards(storeId).preview({\n * queries: [{ name: 'sales', sql: 'SELECT * FROM sales' }],\n * panels: [{ title: 'Sales', dataSources: ['sales'], ... }]\n * });\n *\n * // Create a dashboard\n * const dashboard = await client.data.dashboards(storeId).create({\n * name: 'Sales Overview',\n * queries: [...],\n * panels: [...]\n * });\n *\n * // Render dashboard to PNG\n * const result = await client.data.dashboards(storeId).render(dashboardId);\n * ```\n */\n dashboards(storeId) {\n return new DashboardApi(this.client, storeId);\n }\n}\n//# sourceMappingURL=DataApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\n/**\n * Email API for sending emails from workflows.\n */\nexport class EmailApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/email');\n }\n /**\n * Send an email from an agent/workflow.\n * Creates a route key if not provided, sends via Resend, and returns routing info.\n */\n send(request) {\n return this.post('/send', { payload: request });\n }\n /**\n * Resolve a route key to get email context.\n * Used by webhook handler to look up workflow info from reply email.\n * @deprecated Use getRoute() instead\n */\n resolveRoute(routeKey) {\n return this.post('/resolve-route', { payload: { route_key: routeKey } });\n }\n // ============================================================================\n // Routes API - for external service integration\n // ============================================================================\n /**\n * Create a new email route without sending an email.\n * Useful for external services that want to handle email sending themselves\n * but need reply routing back to Vertesia workflows.\n *\n * @example\n * ```ts\n * const { route_key, reply_to } = await client.store.email.createRoute({\n * run_id: workflowRunId,\n * user_email: \"user@example.com\",\n * thread_subject: \"Contract Review\"\n * });\n * // Use reply_to as the Reply-To header when sending your own email\n * // Replies will be routed back to the workflow\n * ```\n */\n createRoute(request) {\n return this.post('/routes', { payload: request });\n }\n /**\n * Get an email route by key.\n */\n getRoute(routeKey) {\n return this.get(`/routes/${routeKey}`);\n }\n /**\n * Update an email route (e.g., to update threading info).\n */\n updateRoute(routeKey, updates) {\n return this.put(`/routes/${routeKey}`, { payload: updates });\n }\n /**\n * Forward an email to a workflow via route key.\n *\n * Use this when your service receives an email reply and needs to forward\n * it to the Vertesia workflow. You can add custom context data (like auth\n * tokens or user IDs) that will be merged into `payload.vars.data`.\n *\n * **Important**: Use camelCase keys in context to match the agent start\n * pattern. This ensures tools work identically whether the agent was\n * started directly or received an email reply.\n *\n * @example\n * ```ts\n * // In your email webhook handler:\n * const result = await client.store.email.forwardEmail(routeKey, {\n * email: {\n * from: inboundEmail.from,\n * subject: inboundEmail.subject,\n * text: inboundEmail.text,\n * message_id: inboundEmail.messageId,\n * },\n * context: {\n * // Use camelCase - merged into payload.vars.data\n * apiKey: generateServiceToken(),\n * tenantId: resolvedUser.tenantId,\n * userId: resolvedUser.id,\n * userEmail: resolvedUser.email,\n * },\n * attachments: inboundEmail.attachments?.map(att => ({\n * filename: att.filename,\n * content_type: att.contentType,\n * size: att.size,\n * download_url: att.url,\n * })),\n * });\n * ```\n */\n forwardEmail(routeKey, request) {\n return this.post(`/routes/${routeKey}/forward`, { payload: request });\n }\n}\n//# sourceMappingURL=EmailApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\n/**\n * @since 0.52.0\n */\nexport class EmbeddingsApi extends ApiTopic {\n constructor(parent, basePath = '/api/v1/embeddings') {\n super(parent, basePath);\n }\n async status(type) {\n return this.get(`${type}/status`);\n }\n async activate(type, config) {\n if (!config.environment) {\n throw new Error('Invalid configuration: select environment');\n }\n return this.post(`${type}/enable`, { payload: config });\n }\n async disable(type) {\n return this.post(`${type}/disable`);\n }\n async recalculate(type) {\n return this.post(`${type}/recalculate`);\n }\n}\n//# sourceMappingURL=EmbeddingsApi.js.map","import { RequestError } from '@vertesia/api-fetch-client';\nexport class ZenoClientNotFoundError extends RequestError {\n constructor(req, error) {\n super(`Resource not found: ${error.message}`, req, 404, error.payload);\n }\n}\n//# sourceMappingURL=errors.js.map","export class StreamSource {\n stream;\n name;\n type;\n id;\n constructor(stream, name, type, id) {\n this.stream = stream;\n this.name = name;\n this.type = type;\n this.id = id;\n }\n}\n//# sourceMappingURL=StreamSource.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nimport { StreamSource } from '../StreamSource.js';\nimport { fetchSignedUrl } from './signed-url.js';\nexport const MEMORIES_PREFIX = 'memories';\nexport const ARTIFACTS_PREFIX = 'agents';\nexport function getMemoryFilePath(name) {\n const nameWithExt = name.endsWith('.tar.gz') ? name : `${name}.tar.gz`;\n return `${MEMORIES_PREFIX}/${nameWithExt}`;\n}\n/**\n * Build the storage path for an agent artifact\n * @param runId - The workflow run ID\n * @param name - The artifact filename\n */\nexport function getAgentArtifactPath(runId, name) {\n return `${ARTIFACTS_PREFIX}/${runId}/${name}`;\n}\nexport class FilesApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/files');\n }\n async deleteFile(path, prefix) {\n return this.del(`/${path}`, { query: { prefix } });\n }\n /**\n * get the metadata of a blob given its URI. Supported URI are:\n * starting with s3:// and gs://.\n * For s3 blobs use #region to specify the region. Ex: s3://bucket/key#us-west-2\n * @param uri\n * @returns\n */\n getMetadata(uri) {\n return this.get('/metadata', {\n query: {\n file: uri,\n },\n });\n }\n /**\n * Set custom metadata on a file\n * @param file - The file path or URI\n * @param metadata - Custom metadata key-value pairs\n * @returns Success status\n */\n setFileMetadata(file, metadata) {\n const payload = { file, metadata };\n return this.put('/metadata', { payload });\n }\n /**\n * Get or create a bucket for the project. If the bucket already exists, it does nothing.\n * The bucket URI is returned.\n * @returns\n */\n getOrCreateBucket() {\n return this.post('/bucket');\n }\n ensureBucketReadAccess(principal) {\n const payload = { principal };\n return this.post('/bucket/read-access', { payload });\n }\n getBucketReadAccessStatus(principal) {\n return this.get('/bucket/read-access', { query: { principal } });\n }\n list(prefix) {\n return this.get('/list', { query: { prefix } });\n }\n getUploadUrl(payload) {\n return this.post('/upload-url', {\n payload,\n });\n }\n // Strictly typed: provide either simple args or a full payload via a separate method\n getDownloadUrl(file, name, disposition) {\n const payload = { file, name, disposition };\n return this.post('/download-url', { payload });\n }\n getDownloadUrlWithOptions(payload) {\n return this.post('/download-url', { payload });\n }\n /**\n * Get presigned upload URLs for multiple files in a single request.\n * Each file gets its own presigned URL for direct upload to cloud storage.\n * @param payload - Array of file descriptors (name, optional mime_type, optional id)\n * @returns Array of upload URL responses\n */\n bulkGetUploadUrls(payload) {\n return this.post('/bulk-upload-urls', { payload });\n }\n /**\n * Upload multiple files in parallel. Gets presigned URLs in bulk, then PUTs all files concurrently.\n * @param sources - Array of file sources to upload\n * @param concurrency - Maximum number of concurrent uploads (default: 10)\n * @returns Array of upload results with source URI, name, type, and etag\n */\n async bulkUpload(sources, concurrency = 10) {\n const fileDescriptors = sources.map((s) => ({\n name: s.name,\n mime_type: s.type,\n id: s instanceof StreamSource ? s.id : undefined,\n }));\n const { files } = await this.bulkGetUploadUrls({ files: fileDescriptors });\n // Upload with concurrency limit using chunked Promise.all\n const results = new Array(sources.length);\n for (let i = 0; i < sources.length; i += concurrency) {\n const batch = sources.slice(i, i + concurrency);\n await Promise.all(batch.map(async (source, j) => {\n const idx = i + j;\n const { url, id, mime_type } = files[idx];\n const isStream = source instanceof StreamSource;\n const sourceMimeType = source.type || mime_type;\n const res = await fetchSignedUrl(url, {\n method: 'PUT',\n body: isStream ? source.stream : source,\n headers: sourceMimeType ? { 'Content-Type': sourceMimeType } : undefined,\n });\n if (!res.ok) {\n throw new Error(`Failed to upload file ${source.name}: ${res.statusText}`);\n }\n const etag = res.headers.get('etag')?.replace(/^\"(.*)\"$/, '$1');\n results[idx] = { source: id, name: source.name, type: sourceMimeType, etag };\n }));\n }\n return results;\n }\n /**\n * Upload content to a file and return the file id.\n * @param source\n * @returns the uploaded file id\n */\n async uploadFile(source) {\n return (await this.uploadFileWithPath(source)).id;\n }\n /**\n * Upload content to a file and return both the file id and its storage path\n * (e.g. \"bucket-name/path/to/file\"). Prefer this over {@link uploadFile} when the\n * caller needs an importable reference (the path can be turned into a \"gs://…\" URL),\n * not just the opaque id.\n * @param source\n * @returns the uploaded file id and storage path\n */\n async uploadFileWithPath(source) {\n const isStream = source instanceof StreamSource;\n const { url, id, path } = await this.getUploadUrl(source);\n const res = await fetchSignedUrl(url, {\n method: 'PUT',\n body: isStream ? source.stream : source,\n headers: {\n 'Content-Type': source.type || 'application/gzip',\n },\n }).catch((err) => {\n console.error('Failed to upload file', { err, url, id, path });\n throw err;\n });\n if (!res.ok) {\n console.log(res);\n throw new Error(`Failed to upload file: ${res.statusText}`);\n }\n return { id, path };\n }\n /**\n *\n * @param location can be a relative path in the project, a reference to a cloud storage, or a accessible HTTPS URL (typically signed URL)\n * @returns ReadableStream\n */\n async downloadFile(location) {\n //if start with HTTPS, no download url needed - assume it's signed already\n const needSign = !location.startsWith('https:');\n const { url } = needSign ? await this.getDownloadUrl(location) : { url: location };\n const res = await fetchSignedUrl(url, {\n method: 'GET',\n })\n .then((res) => {\n if (res.ok) {\n return res;\n }\n else if (res.status === 404) {\n throw new Error(`File at ${url} not found`); //TODO: type fetch error better with a fetch error class\n }\n else if (res.status === 403) {\n throw new Error(`File at ${url} is forbidden`);\n }\n else {\n console.log(res);\n throw new Error(`Failed to download file ${location}: ${res.statusText}`);\n }\n })\n .catch((err) => {\n console.error(`Failed to download file ${location}.`, err);\n throw err;\n });\n if (!res.body) {\n throw new Error(`No body in response while downloading file ${location}`);\n }\n return res.body;\n }\n /**\n * Copy a file to a new destination within the same bucket.\n * @param source - Source file path (relative to project bucket)\n * @param dest - Destination file path (relative to project bucket)\n * @returns The destination file URI\n */\n async copyFile(source, dest) {\n const response = (await this.post('/copy', {\n payload: { source, dest },\n }));\n return response.dest;\n }\n async uploadMemoryPack(source) {\n const fileId = getMemoryFilePath(source.name);\n const nameWithExt = source.name.endsWith('.tar.gz') ? source.name : `${source.name}.tar.gz`;\n if (source instanceof File) {\n const file = source;\n return this.uploadFile(new StreamSource(file.stream(), nameWithExt, file.type, fileId));\n }\n else {\n return this.uploadFile(new StreamSource(source.stream, nameWithExt, source.type, fileId));\n }\n }\n async downloadMemoryPack(name, gunzip = false) {\n let stream = await this.downloadFile(getMemoryFilePath(name));\n if (gunzip) {\n const ds = new DecompressionStream('gzip');\n stream = stream.pipeThrough(ds);\n }\n return stream;\n }\n // ==================== Agent Artifact Methods ====================\n /**\n * List files by prefix\n * @param prefix - Path prefix to filter files\n * @returns Array of file paths matching the prefix\n */\n listByPrefix(prefix) {\n return this.get('/list', { query: { prefix } });\n }\n /**\n * Upload an artifact for an agent run\n * @param runId - The workflow run ID\n * @param name - Artifact name (e.g., \"output.json\")\n * @param source - File content source\n * @returns The full path of the uploaded artifact\n */\n async uploadArtifact(runId, name, source) {\n const artifactPath = getAgentArtifactPath(runId, name);\n if (source instanceof File) {\n const file = source;\n return this.uploadFile(new StreamSource(file.stream(), name, file.type, artifactPath));\n }\n else {\n return this.uploadFile(new StreamSource(source.stream, name, source.type, artifactPath));\n }\n }\n /**\n * Download an artifact from an agent run\n * @param runId - The workflow run ID\n * @param name - Artifact name\n * @returns ReadableStream of the artifact content\n */\n async downloadArtifact(runId, name) {\n const artifactPath = getAgentArtifactPath(runId, name);\n return this.downloadFile(artifactPath);\n }\n /**\n * Get download URL for an artifact\n * @param runId - The workflow run ID\n * @param name - Artifact name\n * @param disposition - Content disposition (inline or attachment)\n * @returns Signed URL response\n */\n getArtifactDownloadUrl(runId, name, disposition) {\n const artifactPath = getAgentArtifactPath(runId, name);\n return this.getDownloadUrl(artifactPath, name, disposition);\n }\n /**\n * List artifacts for an agent run\n * @param runId - The workflow run ID\n * @returns Array of artifact file paths\n */\n async listArtifacts(runId) {\n const prefix = `${ARTIFACTS_PREFIX}/${runId}/`;\n const result = await this.listByPrefix(prefix);\n return result.files;\n }\n}\n//# sourceMappingURL=FilesApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\n/**\n * Client API for managing hive memories.\n *\n * Hive memory is a system for storing and retrieving agent learnings,\n * enabling agents to learn from past runs and share knowledge.\n */\nexport class HiveMemoryApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/hive-memory');\n }\n /**\n * List memories in the project.\n *\n * @param options - Optional filters and pagination\n */\n list(options) {\n const params = new URLSearchParams();\n if (options?.category)\n params.set('category', options.category);\n if (options?.scope)\n params.set('scope', options.scope);\n if (options?.limit)\n params.set('limit', String(options.limit));\n if (options?.offset)\n params.set('offset', String(options.offset));\n const queryString = params.toString();\n return this.get(queryString ? `/?${queryString}` : '/');\n }\n /**\n * Retrieve a memory by ID.\n */\n retrieve(id) {\n return this.get(`/${id}`);\n }\n /**\n * Create a new hive memory.\n *\n * @param payload - Memory content including category, summary, and learnings\n */\n create(payload) {\n return this.post('/', { payload });\n }\n /**\n * Update an existing memory with new learnings.\n *\n * This merges new learnings with existing ones rather than replacing them.\n *\n * @param id - Memory ID\n * @param payload - Fields to update/merge\n */\n update(id, payload) {\n return this.put(`/${id}`, { payload });\n }\n /**\n * Delete a memory.\n *\n * @param id - Memory ID\n */\n delete(id) {\n return this.del(`/${id}`);\n }\n /**\n * Search memories using semantic and keyword search.\n *\n * @param params - Search parameters including query, filters, and pagination\n */\n search(params) {\n return this.post('/search', { payload: params });\n }\n /**\n * Recall memories for an agent.\n *\n * This is the primary method for agents to retrieve relevant learnings.\n * It searches for memories matching the task description and returns\n * them formatted for agent consumption.\n *\n * @param taskDescription - Description of the current task\n * @param options - Optional filters\n *\n * @example\n * ```typescript\n * const result = await client.hiveMemory.recall(\n * \"Extract financial data from PDF documents\",\n * {\n * tools: [\"extract_text\", \"analyze_document\"],\n * maxResults: 5\n * }\n * );\n * ```\n */\n recall(taskDescription, options) {\n return this.post('/recall', {\n payload: {\n task_description: taskDescription,\n tools: options?.tools,\n category: options?.category,\n max_results: options?.maxResults,\n },\n });\n }\n /**\n * Get a memory formatted for agent consumption.\n *\n * @param id - Memory ID\n */\n getFormatted(id) {\n return this.get(`/${id}/formatted`);\n }\n /**\n * Record that a memory was used.\n *\n * This increments the usage count and helps track memory effectiveness.\n *\n * @param id - Memory ID\n */\n recordUsage(id) {\n return this.post(`/${id}/usage`, {});\n }\n /**\n * Get memories by category.\n *\n * @param category - Task category (e.g., \"document-analysis\", \"data-extraction\")\n * @param options - Pagination options\n */\n getByCategory(category, options) {\n const params = new URLSearchParams();\n if (options?.limit)\n params.set('limit', String(options.limit));\n if (options?.offset)\n params.set('offset', String(options.offset));\n const queryString = params.toString();\n return this.get(`/category/${category}${queryString ? `?${queryString}` : ''}`);\n }\n /**\n * Get memory statistics for the project.\n */\n getStats() {\n return this.get('/stats');\n }\n /**\n * Apply confidence decay to unused memories.\n *\n * Admin operation that reduces confidence scores for memories\n * that haven't been used recently.\n *\n * @param options - Decay parameters\n */\n applyDecay(options) {\n return this.post('/admin/decay', {\n payload: {\n days_threshold: options?.daysThreshold,\n decay_rate: options?.decayRate,\n },\n });\n }\n /**\n * Archive memories with low confidence scores.\n *\n * Admin operation that removes memories below a confidence threshold.\n *\n * @param threshold - Confidence threshold (0-1), default 0.2\n */\n archiveLowConfidence(threshold) {\n return this.post('/admin/archive', {\n payload: { threshold },\n });\n }\n}\n//# sourceMappingURL=HiveMemoryApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\n/**\n * API for indexing operations on content objects.\n * Provides status, reindex, and configuration management.\n *\n * Internal endpoints (prefixed with /internal/) are used by Temporal workflow activities\n * and require content_admin permission.\n */\nexport class IndexingApi extends ApiTopic {\n constructor(parent, basePath = '/api/v1/indexing') {\n super(parent, basePath);\n }\n // ========================================================================\n // User-facing endpoints\n // ========================================================================\n /**\n * Get Elasticsearch status for the current project\n */\n async status() {\n return this.get('/status');\n }\n /**\n * Trigger a full reindex of all documents.\n * Starts a Temporal workflow that uses zeno-bulk for high-throughput indexing.\n *\n * @param options Optional workflow tuning parameters\n */\n async reindex(options) {\n return this.post('/reindex', { payload: options });\n }\n /**\n * Rebuild the agent-run Elasticsearch index directly from MongoDB.\n */\n async reindexAgentRuns(options) {\n return this.post('/agent-runs/reindex', { payload: options });\n }\n /**\n * Trigger an on-demand drift analysis between MongoDB and Elasticsearch\n */\n async analyzeDrift() {\n return this.post('/analyze-drift', { payload: {} });\n }\n /**\n * Get the latest drift analysis status/result for this project\n */\n async getDriftAnalysis() {\n return this.get('/drift-analysis');\n }\n /**\n * Enable indexing for this project\n */\n async enableIndexing() {\n return this.post('/enable-indexing');\n }\n /**\n * Disable indexing for this project\n */\n async disableIndexing() {\n return this.post('/disable-indexing');\n }\n /**\n * Enable index-based queries for this project\n * @deprecated Queries are now automatically enabled when indexing is enabled\n */\n async enableQueries() {\n return this.post('/enable-queries');\n }\n /**\n * Disable index-based queries for this project\n * @deprecated Queries are now automatically enabled when indexing is enabled\n */\n async disableQueries() {\n return this.post('/disable-queries');\n }\n // ========================================================================\n // Internal endpoints - called by Temporal workflow activities\n // ========================================================================\n /**\n * Index a single document to Elasticsearch\n */\n index(objectId, document) {\n return this.post('/internal/index', {\n payload: { object_id: objectId, document },\n });\n }\n /**\n * Delete a document from Elasticsearch\n */\n delete(objectId) {\n return this.post('/internal/delete', {\n payload: { object_id: objectId },\n });\n }\n /**\n * Bulk index multiple documents to Elasticsearch\n *\n * @param documents Array of documents to index\n * @param targetIndex Optional explicit index name for zero-downtime reindexing\n */\n bulkIndex(documents, targetIndex) {\n return this.post('/internal/bulk-index', {\n payload: { documents, target_index: targetIndex },\n });\n }\n /**\n * Ensure Elasticsearch index exists for the project\n *\n * @param recreate If true, drops and recreates the index\n */\n ensureIndex(recreate) {\n return this.post('/internal/ensure-index', {\n payload: { recreate },\n });\n }\n /**\n * Create a new versioned index for reindexing (without alias)\n * The alias will be swapped after reindexing completes via swapAlias\n */\n createReindexTarget() {\n return this.post('/internal/create-reindex-target', {\n payload: {},\n });\n }\n /**\n * Get Elasticsearch index statistics for the project\n */\n getStats() {\n return this.post('/internal/stats', {\n payload: {},\n });\n }\n /**\n * Fetch a batch of documents from MongoDB (without indexing)\n * Used by pipeline approach: fetch next batch while indexing current\n *\n * @param cursor Cursor from previous batch (null for first batch)\n * @param limit Maximum documents to fetch (default: 500)\n */\n fetchBatch(cursor, limit) {\n return this.post('/internal/fetch-batch', {\n payload: { cursor, limit },\n });\n }\n /**\n * Discover one or more cursor boundaries for partitioned reindexing\n *\n * @param cursor Start cursor (exclusive)\n * @param limit Maximum documents in the partition\n * @param count Maximum number of boundaries to return\n */\n getNextIndexCursor(cursor, limit, count) {\n return this.post('/internal/next-cursor', {\n payload: { cursor, limit, count },\n });\n }\n /**\n * Analyze one batch of MongoDB documents against Elasticsearch by _id and updated_at\n */\n analyzeDriftBatch(cursor, limit) {\n return this.post('/internal/analyze-drift-batch', {\n payload: { cursor, limit },\n });\n }\n /**\n * Trigger a reindex operation via Temporal workflow (internal version with more options)\n *\n * @param fullReindex If true, reindexes all documents in the project\n * @param objectIds Specific object IDs to reindex (if not fullReindex)\n * @param recreateIndex If true, recreates the index before reindexing\n */\n triggerReindex(options) {\n return this.post('/internal/trigger-reindex', {\n payload: options\n ? {\n full_reindex: options.fullReindex,\n object_ids: options.objectIds,\n recreate_index: options.recreateIndex,\n }\n : {},\n });\n }\n /**\n * Fetch documents by their IDs from MongoDB (for retry workflow)\n * Returns documents ready for bulk indexing\n *\n * @param objectIds Array of object IDs to fetch\n */\n fetchDocumentsByIds(objectIds) {\n return this.post('/internal/fetch-by-ids', {\n payload: { object_ids: objectIds },\n });\n }\n /**\n * Bulk delete documents from Elasticsearch\n *\n * @param objectIds Array of object IDs to delete\n */\n bulkDelete(objectIds) {\n return this.post('/internal/bulk-delete', {\n payload: { object_ids: objectIds },\n });\n }\n /**\n * Get detailed index configuration for the project\n *\n * Returns comprehensive information about the Elasticsearch index including\n * status, embedding dimensions, field mappings, and project configuration.\n */\n getConfiguration() {\n return this.post('/internal/configuration', {\n payload: {},\n });\n }\n // ========================================================================\n // Zeno Bulk endpoints (Go migration service)\n // Routes via LB path rules in prod, or derived URL in dev.\n // ========================================================================\n /**\n * Get the zeno-bulk base URL.\n * Dev branches: store URL contains \"zeno-server\" -> replace with \"zeno-bulk\".\n * Production/preview: same domain, LB routes /reindex/* to zeno-bulk.\n */\n get zenoBulkBaseUrl() {\n const storeBaseUrl = this.client.baseUrl;\n if (storeBaseUrl.includes('localhost:') || storeBaseUrl.includes('127.0.0.1:')) {\n return 'https://zeno-bulk-dev-main.api.dev1.vertesia.io';\n }\n if (storeBaseUrl.includes('zeno-server')) {\n return storeBaseUrl.replace(/zeno-server/, 'zeno-bulk');\n }\n return storeBaseUrl;\n }\n /**\n * POST to a zeno-bulk endpoint. Resolves the path against the zeno-bulk base URL.\n */\n zenoBulkPost(path, body) {\n return this.client.post(this.zenoBulkBaseUrl + path, { payload: body });\n }\n /**\n * Compute shard boundaries for a tenant via zeno-bulk.\n * Creates the target index and returns shard ranges for parallel indexing.\n */\n computeShards(tenantId, shardSize, updatedSince, backend) {\n return this.zenoBulkPost('/reindex/compute-shards', {\n tenant_id: tenantId,\n shard_size: shardSize ?? 250000,\n updated_since: updatedSince,\n backend,\n });\n }\n /**\n * Index a single shard via zeno-bulk (retryable by Temporal).\n * The Go service reads from MongoDB and writes to ES directly.\n */\n indexShard(params) {\n return this.zenoBulkPost('/reindex/shard', { params });\n }\n /**\n * Atomically swap ES alias via zeno-bulk.\n * @param alias Optional alias name. If not provided, the Go service derives it from the tenant ID.\n */\n swapAlias(tenantId, targetIndex, alias, backend) {\n return this.zenoBulkPost('/reindex/swap-alias', {\n tenant_id: tenantId,\n target_index: targetIndex,\n alias,\n backend,\n });\n }\n /**\n * Full reindex of a tenant via zeno-bulk (all-in-one).\n * The Go service handles sharding, indexing, catch-up, and alias swap internally.\n *\n * In JSON mode (default): waits for completion and returns the final result.\n * In SSE mode (when onEvent is provided): streams progress events from zeno-bulk\n * and returns the final result. The onEvent callback receives parsed SSE events\n * with { event: \"progress\" | \"done\", data: string (JSON) }.\n */\n async reindexViaBulk(tenantId, onEvent, dryRun, backend, projectId, tuning) {\n const bulkUrl = `${this.zenoBulkBaseUrl}/reindex`;\n const params = {\n tenant_id: tenantId,\n project_id: projectId,\n dry_run: dryRun ?? false,\n backend,\n shard_size: tuning?.shardSize,\n shards: tuning?.shards,\n bulk_concurrency: tuning?.bulkConcurrency,\n bulk_size_bytes: tuning?.bulkSizeBytes,\n bulk_max_docs: tuning?.bulkMaxDocs,\n };\n if (!onEvent) {\n return this.client.post(bulkUrl, { payload: { params } });\n }\n // SSE mode: stream progress events from zeno-bulk\n let lastResult;\n await this.client.sseRequest('POST', bulkUrl, {\n payload: { params },\n }, (event) => {\n onEvent(event);\n if (event.type === 'event' && event.event === 'done') {\n try {\n lastResult = JSON.parse(event.data);\n }\n catch {\n // data might not be valid JSON\n }\n }\n });\n if (!lastResult) {\n throw new Error('zeno-bulk SSE stream ended without a done event');\n }\n return lastResult;\n }\n}\n//# sourceMappingURL=IndexingApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport class AnalyzeDocApi extends ApiTopic {\n objectId;\n constructor(parent, objectId) {\n super(parent, `/${objectId}/analyze`);\n this.objectId = objectId;\n }\n async start(payload) {\n return this.post('/', { payload });\n }\n async getStatus() {\n return this.get('/status');\n }\n async getResults() {\n return this.get('/results');\n }\n async adaptTables(payload) {\n return this.post('/adapt_tables', { payload });\n }\n async getAdaptedTables(runId, query) {\n const path = runId ? `/adapt_tables/${runId}` : '/adapt_tables';\n // Build query parameters\n const queryParams = {};\n if (query?.format)\n queryParams.format = query.format;\n if (query?.raw !== undefined)\n queryParams.raw = query.raw;\n // If format is CSV, set response type to text to avoid automatic JSON parsing\n const options = { query: queryParams };\n if (query?.format === 'csv') {\n options.responseType = 'text';\n }\n return this.get(path, options);\n }\n async getXml() {\n return this.get('/xml');\n }\n async getTables(format) {\n const options = {};\n if (format) {\n options.query = { format: format };\n }\n return this.get('/tables', options);\n }\n async getImages() {\n return this.get('/images');\n }\n async getAnnotated() {\n return this.get('/annotated');\n }\n}\n//# sourceMappingURL=AnalyzeDocApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nimport { ContentObjectApiHeaders, canGenerateRendition, } from '@vertesia/common';\nexport { getSupportedRenditionFormats, supportsVisualRendition } from '@vertesia/common';\n// Re-export rendition utilities for consumers\nexport { canGenerateRendition };\nimport { StreamSource } from '../StreamSource.js';\nimport { AnalyzeDocApi } from './AnalyzeDocApi.js';\nimport { fetchSignedUrl } from './signed-url.js';\nexport class ObjectsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/objects');\n }\n analyze(objectId) {\n return new AnalyzeDocApi(this, objectId);\n }\n getUploadUrl(payload) {\n return this.post('/upload-url', {\n payload,\n });\n }\n getDownloadUrl(fileUri, name, disposition) {\n return this.post('/download-url', {\n payload: { file: fileUri, name, disposition },\n });\n }\n getDownloadUrlWithOptions(payload) {\n return this.post('/download-url', { payload });\n }\n getContentSource(objectId) {\n return this.get(`/${objectId}/content-source`);\n }\n /**\n * List objects with revision filtering options\n *\n * @param payload Search/filter parameters\n * @returns Matching content objects\n */\n list(payload = {}) {\n const limit = payload.limit || 100;\n const offset = payload.offset || 0;\n const query = payload.query || {};\n return this.get('/', {\n query: {\n limit,\n offset,\n select: payload.select,\n ...query,\n all_revisions: payload.all_revisions,\n from_root: payload.from_root || undefined,\n },\n });\n }\n computeFacets(query) {\n return this.post('/facets', {\n payload: query,\n });\n }\n listFolders(_path = '/') {\n throw new Error('Not implemented yet');\n }\n /** Find object based on query */\n find(payload) {\n return this.post('/find', {\n payload,\n });\n }\n /** Count number of objects matching this query */\n count(payload) {\n return this.post('/count', {\n payload,\n });\n }\n /** Search object — different from find because allow full text search */\n search(payload) {\n return this.post('/search', {\n payload,\n });\n }\n retrieve(id, select) {\n return this.get(`/${id}`, {\n query: {\n select,\n },\n });\n }\n getObjectText(id) {\n return this.get(`/${id}/text`);\n }\n async upload(source) {\n const isStream = source instanceof StreamSource;\n // get a signed URL to upload the file a computed mimeType and the file object id.\n const { url, id, mime_type } = await this.getUploadUrl({\n id: isStream ? source.id : undefined,\n name: source.name,\n mime_type: source.type,\n });\n const sourceMimeType = source.type || mime_type;\n // upload the file content to the signed URL\n const res = await fetchSignedUrl(url, {\n method: 'PUT',\n body: isStream ? source.stream : source,\n headers: sourceMimeType ? { 'Content-Type': sourceMimeType } : undefined,\n }).catch((err) => {\n console.error('Failed to upload file', err);\n throw err;\n });\n if (!res.ok) {\n console.error('Failed to upload file', { status: res.status, statusText: res.statusText, url });\n throw new Error(`Failed to upload file: ${res.statusText}`);\n }\n //Etag need to be unquoted\n //When a server returns an ETag header, it includes the quotes around the actual hash value.\n //This is part of the HTTP specification (RFC 7232), which states that ETags should be\n //enclosed in double quotes.\n const etag = res.headers.get('etag')?.replace(/^\"(.*)\"$/, '$1');\n return {\n source: id,\n name: source.name,\n type: sourceMimeType,\n etag,\n };\n }\n async create(payload, options) {\n const { content, ...payloadWithoutContent } = payload;\n const createPayload = {\n ...payloadWithoutContent,\n };\n if (content instanceof StreamSource || content instanceof File) {\n createPayload.content = await this.upload(content);\n }\n else {\n createPayload.content = content;\n }\n const headers = {};\n if (options?.processing_priority) {\n headers[ContentObjectApiHeaders.PROCESSING_PRIORITY] = options.processing_priority;\n }\n if (options?.collection_id) {\n headers[ContentObjectApiHeaders.COLLECTION_ID] = options.collection_id;\n }\n return await this.post('/', {\n payload: createPayload,\n headers: headers,\n });\n }\n /**\n * Create an object which holds a reference to an external blob (i.e. not in the project bucket)\n * The uri should starts either with gs:// or s3://. Not other protocols are supported yet.\n * For the s3 blobs you must use a hash with the blob #region. Ex: s3://bucket/path/to/file#us-east-1\n * @param uri\n * @param payload\n * @param options\n * @returns\n */\n async createFromExternalSource(uri, payload = {}, options) {\n const metadata = await this.client.files.getMetadata(uri);\n const createPayload = {\n ...payload,\n content: {\n source: uri,\n name: metadata.name,\n type: metadata.contentType,\n etag: metadata.etag,\n },\n };\n const headers = {};\n if (options?.processing_priority) {\n headers[ContentObjectApiHeaders.PROCESSING_PRIORITY] = options.processing_priority;\n }\n if (options?.collection_id) {\n headers[ContentObjectApiHeaders.COLLECTION_ID] = options.collection_id;\n }\n return await this.post('/', {\n payload: createPayload,\n headers: headers,\n });\n }\n /**\n * Updates an existing object or creates a new revision\n * Handles file uploads similar to the create method\n *\n * @param id The ID of the object to update\n * @param payload The changes to apply\n * @param options Additional options\n * @param options.createRevision Whether to create a new revision instead of updating in place\n * @param options.revisionLabel Optional label for the revision (e.g., \"v1.2\")\n * @param options.suppressWorkflows When true, prevents this update from triggering workflow rules\n * @returns The updated object or newly created revision\n */\n async update(id, payload, options) {\n const { content, ...payloadWithoutContent } = payload;\n const updatePayload = {\n ...payloadWithoutContent,\n };\n // Handle file upload if content is provided as File or StreamSource\n if (content instanceof StreamSource || content instanceof File) {\n updatePayload.content = await this.upload(content);\n }\n else {\n updatePayload.content = content;\n }\n const headers = {};\n if (options?.ifMatch) {\n headers['if-match'] = options.ifMatch;\n }\n if (options?.processing_priority) {\n headers[ContentObjectApiHeaders.PROCESSING_PRIORITY] = options.processing_priority;\n }\n if (options?.createRevision) {\n headers[ContentObjectApiHeaders.CREATE_REVISION] = 'true';\n if (options.revisionLabel) {\n headers[ContentObjectApiHeaders.REVISION_LABEL] = options.revisionLabel;\n }\n }\n if (options?.suppressWorkflows) {\n headers[ContentObjectApiHeaders.SUPPRESS_WORKFLOWS] = 'true';\n }\n return this.put(`/${id}`, {\n payload: updatePayload,\n headers,\n });\n }\n /**\n * Retrieves all revisions of a content object\n *\n * @param id The ID of any revision in the object's history\n * @returns Array of all revisions sharing the same root\n */\n getRevisions(id) {\n return this.get(`/${id}/revisions`);\n }\n /**\n * Retrieves all collections that contain a specific object\n *\n * @param id The ID of the object\n * @returns Array of collections containing this object (both static and dynamic)\n */\n getCollections(id) {\n return this.get(`/${id}/collections`);\n }\n delete(idOrIds) {\n if (Array.isArray(idOrIds)) {\n return this.client.runOperation({\n name: 'delete',\n ids: idOrIds,\n params: {},\n });\n }\n return this.del(`/${idOrIds}`);\n }\n bulkUpdate(updates) {\n const ids = Object.keys(updates);\n return this.client.runOperation({\n name: 'update',\n ids,\n params: updates,\n });\n }\n bulkCreate(objects, options) {\n return this.client.runOperation({\n name: 'create',\n ids: [],\n params: { objects, ...options },\n });\n }\n listWorkflowRuns(documentId) {\n return this.get(`/${documentId}/workflow-runs`);\n }\n listRenditions(documentId) {\n return this.get(`/${documentId}/renditions`);\n }\n getRendition(documentId, options) {\n const query = {\n max_hw: options.max_hw,\n generate_if_missing: options.generate_if_missing,\n sign_url: options.sign_url,\n block_on_generation: options.block_on_generation,\n };\n return this.get(`/${documentId}/renditions/${options.format}`, {\n query,\n });\n }\n /**\n * Get rendition with pre-validation of content type compatibility.\n * Returns null instead of throwing if the format is not supported for the content type.\n *\n * @param documentId - The document ID\n * @param contentType - The content type of the document (e.g., 'image/png', 'text/markdown')\n * @param options - Rendition options including format\n * @returns The rendition response, or null if format is not supported for the content type\n *\n * @example\n * const rendition = await client.objects.getRenditionSafe(docId, doc.content?.type, {\n * format: ImageRenditionFormat.jpeg,\n * generate_if_missing: true\n * });\n * if (!rendition) {\n * console.log('Document does not support JPEG renditions');\n * }\n */\n getRenditionSafe(documentId, contentType, options) {\n if (!canGenerateRendition(contentType, options.format)) {\n return Promise.resolve(null);\n }\n return this.getRendition(documentId, options);\n }\n exportProperties(payload) {\n return this.post('/export', {\n payload,\n });\n }\n setEmbedding(id, type, payload) {\n return this.put(`/${id}/embeddings/${type}`, {\n payload,\n });\n }\n}\n//# sourceMappingURL=ObjectsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\n/**\n * Pending Asks API for tracking ask_user requests.\n * Handles registration, resolution, and listing of pending asks.\n */\nexport class PendingAsksApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/pending-asks');\n }\n /**\n * Register a new pending ask.\n * Called when an agent calls ask_user.\n * Stores in Redis and sends webhook if configured.\n */\n register(request) {\n return this.post('/', { payload: request });\n }\n /**\n * Resolve a pending ask with the user's response.\n * Called when a user responds to an ask.\n * Updates Redis and sends webhook if configured.\n */\n resolve(askId, request) {\n return this.post(`/${askId}/resolve`, { payload: request });\n }\n /**\n * List all pending asks for the current project.\n */\n list() {\n return this.get('/');\n }\n /**\n * Get a specific pending ask by ID.\n */\n retrieve(askId) {\n return this.get(`/${askId}`);\n }\n}\n//# sourceMappingURL=PendingAsksApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport class ProcessApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/processes');\n }\n list(query) {\n const params = {};\n if (query?.status)\n params.status = query.status;\n if (query?.process)\n params.process = query.process;\n if (query?.limit != null)\n params.limit = String(query.limit);\n if (query?.offset != null)\n params.offset = String(query.offset);\n if (query?.allVersions)\n params.all_versions = 'true';\n return this.get('/', { query: params });\n }\n retrieve(id) {\n return this.get(`/${id}`);\n }\n create(payload) {\n return this.post('/', { payload });\n }\n update(id, payload) {\n return this.put(`/${id}`, { payload });\n }\n listVersions(id) {\n return this.get(`/${id}/versions`);\n }\n publish(id, payload) {\n return this.post(`/${id}/publish`, { payload });\n }\n revert(id, payload) {\n return this.post(`/${id}/revert`, { payload });\n }\n delete(id) {\n return this.del(`/${id}`);\n }\n}\n//# sourceMappingURL=ProcessApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\n/**\n * API for querying documents using SQL, ES|QL, or raw Elasticsearch DSL.\n * All queries are automatically filtered based on the authenticated user's permissions.\n */\nexport class QueryApi extends ApiTopic {\n constructor(parent, basePath = '/api/v1/query') {\n super(parent, basePath);\n }\n /**\n * Execute a query against the project's document index\n *\n * @param payload - Query payload with sql, esql, or dsl\n * @returns Query result with columns/rows or hits/aggregations\n *\n * @example SQL query\n * ```typescript\n * const result = await client.query.execute({\n * sql: \"SELECT name, status FROM content WHERE status = 'published' LIMIT 10\"\n * });\n * ```\n *\n * @example ES|QL query\n * ```typescript\n * const result = await client.query.execute({\n * esql: \"FROM content | WHERE status == 'published' | STATS count = COUNT(*) BY type.name\"\n * });\n * ```\n *\n * @example DSL query with aggregations\n * ```typescript\n * const result = await client.query.execute({\n * dsl: {\n * query: { match: { text: \"machine learning\" } },\n * aggs: { by_type: { terms: { field: \"type.name\" } } },\n * size: 10\n * }\n * });\n * ```\n */\n async execute(payload) {\n return this.post('/', { payload });\n }\n /**\n * Execute a SQL query\n */\n async sql(query) {\n return this.execute({ sql: query });\n }\n /**\n * Execute an ES|QL query\n */\n async esql(query) {\n return this.execute({ esql: query });\n }\n /**\n * Execute a DSL query\n */\n async dsl(query) {\n return this.execute({ dsl: query });\n }\n}\n//# sourceMappingURL=QueryApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nimport { isWorkflowTerminalStatus, WorkflowExecutionStatus, } from '@vertesia/common';\n/**\n * API for rendering markdown documents to PDF or DOCX.\n * Rendering is performed on workflow workers (not on the API server).\n */\nexport class RenderingApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/rendering');\n }\n /**\n * Render markdown content to PDF or DOCX.\n *\n * @param payload - Rendering options including format and either object_id or inline content\n * @returns Rendering result with download URL\n *\n * @example\n * // Render an existing markdown document\n * const result = await client.rendering.render({\n * format: MarkdownRenditionFormat.pdf,\n * object_id: \"doc-123\"\n * });\n * // Download from result.download_url\n *\n * @example\n * // Render inline markdown content\n * const result = await client.rendering.render({\n * format: MarkdownRenditionFormat.docx,\n * content: \"# My Report\\n\\nContent here...\",\n * title: \"My Report\"\n * });\n */\n start(payload) {\n return this.post('/jobs', { payload });\n }\n getStatus(workflowId, workflowRunId) {\n return this.get('/jobs/status', {\n query: {\n workflow_id: workflowId,\n workflow_run_id: workflowRunId,\n },\n });\n }\n async render(payload, options = {}) {\n const pollIntervalMs = options.pollIntervalMs ?? 1500;\n const timeoutMs = options.timeoutMs ?? 10 * 60 * 1000;\n const started = await this.start(payload);\n if (!started.workflow_id || !started.workflow_run_id) {\n throw new Error('Failed to start rendering workflow');\n }\n const startTime = Date.now();\n // Poll until workflow reaches terminal state.\n while (true) {\n const status = await this.getStatus(started.workflow_id, started.workflow_run_id);\n if (status.status === WorkflowExecutionStatus.COMPLETED) {\n if (!status.download_url && !status.file_uri) {\n throw new Error(status.error || 'Rendering completed but no output file was produced');\n }\n return {\n status: 'success',\n format: payload.format,\n download_url: status.download_url,\n file_uri: status.file_uri,\n };\n }\n if (isWorkflowTerminalStatus(status.status)) {\n const statusLabel = WorkflowExecutionStatus[status.status] || String(status.status);\n throw new Error(status.error || `Rendering failed with status: ${statusLabel}`);\n }\n if (Date.now() - startTime >= timeoutMs) {\n throw new Error(`Rendering timed out after ${timeoutMs}ms`);\n }\n await sleep(pollIntervalMs);\n }\n }\n}\nfunction sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n//# sourceMappingURL=RenderingApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\n/**\n * Client API for managing agent schedules.\n *\n * Schedules allow agents to run on a recurring basis using cron expressions.\n */\nexport class SchedulesApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/schedules');\n }\n /**\n * List all schedules in the project.\n */\n list() {\n return this.get('/');\n }\n /**\n * Retrieve a schedule by ID.\n * Includes Temporal execution info if available.\n */\n retrieve(id) {\n return this.get(`/${id}`);\n }\n /**\n * Create a new schedule.\n *\n * @param payload - Schedule configuration including name, interaction, and cron expression\n * @returns The created schedule\n *\n * @example\n * ```typescript\n * const schedule = await client.schedules.create({\n * name: 'Weekly Report',\n * interaction: 'WeeklyReportAgent',\n * cron_expression: '0 9 * * MON', // Every Monday at 9am\n * timezone: 'America/New_York',\n * vars: { reportType: 'summary' }\n * });\n * ```\n */\n create(payload) {\n return this.post('/', { payload });\n }\n /**\n * Update an existing schedule.\n *\n * @param id - Schedule ID\n * @param payload - Fields to update\n * @returns The updated schedule\n */\n update(id, payload) {\n return this.put(`/${id}`, { payload });\n }\n /**\n * Delete a schedule.\n *\n * This also removes the corresponding Temporal schedule.\n *\n * @param id - Schedule ID\n * @returns Object with the deleted schedule ID\n */\n delete(id) {\n return this.del(`/${id}`);\n }\n /**\n * Trigger an immediate execution of the scheduled agent.\n *\n * This runs the agent immediately without waiting for the next scheduled time.\n *\n * @param id - Schedule ID\n * @returns Success message\n */\n trigger(id) {\n return this.post(`/${id}/trigger`, {});\n }\n /**\n * Pause a schedule.\n *\n * The schedule will not run until resumed.\n *\n * @param id - Schedule ID\n * @param note - Optional note explaining why the schedule was paused\n * @returns Success message\n */\n pause(id, note) {\n return this.post(`/${id}/pause`, { payload: { note } });\n }\n /**\n * Resume a paused schedule.\n *\n * @param id - Schedule ID\n * @param note - Optional note explaining why the schedule was resumed\n * @returns Success message\n */\n resume(id, note) {\n return this.post(`/${id}/resume`, { payload: { note } });\n }\n}\n//# sourceMappingURL=SchedulesApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport class TaskApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/tasks');\n }\n list(query) {\n const params = {};\n if (query?.status) {\n params.status = Array.isArray(query.status) ? query.status.join(',') : query.status;\n }\n if (query?.assignee)\n params.assignee = query.assignee;\n if (query?.run_id)\n params.run_id = query.run_id;\n if (query?.source_type)\n params.source_type = query.source_type;\n if (query?.limit != null)\n params.limit = String(query.limit);\n if (query?.offset != null)\n params.offset = String(query.offset);\n return this.get('/', { query: params });\n }\n retrieve(id) {\n return this.get(`/${id}`);\n }\n create(payload) {\n return this.post('/', { payload });\n }\n update(id, payload) {\n return this.put(`/${id}`, { payload });\n }\n complete(id, payload) {\n return this.post(`/${id}/complete`, { payload });\n }\n cancel(id) {\n return this.post(`/${id}/cancel`, {});\n }\n delete(id) {\n return this.del(`/${id}`);\n }\n}\n//# sourceMappingURL=TaskApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\n/**\n * API for accessing the builtin tools catalog\n */\nexport class ToolsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/tools');\n }\n /**\n * Get the builtin tools catalog\n * @returns List of all available builtin tools with their descriptions and parameter schemas\n */\n getBuiltinCatalog() {\n return this.get('/');\n }\n}\n//# sourceMappingURL=ToolsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport class TypeCatalogApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/types/catalog');\n }\n /**\n * List all content types (system + app + stored)\n */\n list(query = {}) {\n return this.get('/', { query });\n }\n /**\n * List system types only\n */\n listSysTypes(tag) {\n return this.get('/sys', {\n query: { tag },\n });\n }\n /**\n * List all app types from all installed apps\n */\n listAppTypes(tag) {\n return this.get('/apps', {\n query: { tag },\n });\n }\n /**\n * List stored types only\n */\n listStoredTypes(query = {}) {\n return this.get('/stored', {\n query,\n });\n }\n /**\n * Resolve a type to its full definition.\n * Accepts a string (type ID or code) or a ContentObjectTypeRef.\n * @param typeOrRef Type identifier string, or a ContentObjectTypeRef from a content object\n */\n resolve(typeOrRef) {\n const typeId = typeof typeOrRef === 'string' ? typeOrRef : typeOrRef.id;\n return this.get(`/resolve/${typeId}`);\n }\n}\n//# sourceMappingURL=TypeCatalogApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nimport { TypeCatalogApi } from './TypeCatalogApi.js';\nexport class TypesApi extends ApiTopic {\n catalog;\n constructor(parent) {\n super(parent, '/api/v1/types');\n this.catalog = new TypeCatalogApi(parent);\n }\n /**\n * The options can be used to include more information in the return objects.\n * You can specify to also include layout information using `layout: true`.\n * By default the layout information is not included.\n * @param payload\n * @param options\n * @returns\n */\n list(payload = {}, options) {\n const limit = payload.limit || 2000;\n const offset = payload.offset || 0;\n const query = payload.query || {};\n return this.get('/', {\n query: {\n limit,\n offset,\n layout: !!options?.layout,\n schema: !!options?.schema,\n ...query,\n },\n });\n }\n find(payload) {\n return this.post('/find', {\n payload,\n });\n }\n retrieve(typeId) {\n return this.get(`/${typeId}`);\n }\n getTypeByName(typeName) {\n return this.get(`/name/${typeName}`);\n }\n update(typeId, payload) {\n return this.put(`/${typeId}`, {\n payload,\n });\n }\n create(payload) {\n return this.post(`/`, {\n payload,\n });\n }\n delete(id) {\n return this.del(`/${id}`);\n }\n}\n//# sourceMappingURL=TypesApi.js.map","export const VERSION = '20260319'; // YYYYMMDD, client versioning for API endpoints. Increment manually for breaking changes\nexport const VERSION_HEADER = 'x-api-version';\nexport { APP_VERSION_HEADER } from '@vertesia/common';\n//# sourceMappingURL=version.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nimport { AgentMessageType, parseMessage, toAgentMessage, } from '@vertesia/common';\nimport { EventSourceProvider } from '../execute.js';\nimport { shouldCloseAgentRunStream, shouldCloseCompactRunStream } from './stream-termination.js';\nexport class WorkflowsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/workflows');\n }\n getActivityCatalog() {\n return this.get('/activity-catalog');\n }\n listRuns(documentId, eventName, ruleId) {\n return this.post(`/runs`, { payload: { documentId, eventName, ruleId } });\n }\n /** List conversations the users has access to */\n listConversations(payload) {\n return this.post(`/conversations`, {\n payload,\n });\n }\n searchRuns(payload) {\n return this.post(`/runs`, { payload: payload });\n }\n sendSignal(workflowId, runId, signal, payload) {\n return this.post(`/runs/${workflowId}/${runId}/signal/${signal}`, { payload });\n }\n getRunDetails(runId, workflowId, options) {\n const query = {};\n // Support legacy includeHistory parameter\n if (options?.includeHistory !== undefined) {\n query.include_history = options.includeHistory;\n }\n // Support new historyFormat parameter\n if (options?.historyFormat !== undefined) {\n query.history_format = options.historyFormat;\n }\n if (options?.hydratePayloads !== undefined) {\n query.hydrate_payloads = options.hydratePayloads;\n }\n return this.get(`/runs/${workflowId}/${runId}`, { query });\n }\n getRunInteraction(workflowId, runId) {\n return this.get(`/runs/${workflowId}/${runId}/interaction`);\n }\n terminate(workflowId, runId, reason) {\n const payload = { reason };\n return this.post(`/runs/${workflowId}/${runId}/actions/terminate`, { payload });\n }\n cancel(workflowId, runId, reason) {\n const payload = { reason };\n return this.post(`/runs/${workflowId}/${runId}/actions/cancel`, { payload });\n }\n /**\n * Query a workflow for its current state.\n * The workflow must have a query handler registered with the given name.\n * @param workflowId The workflow ID\n * @param runId The run ID\n * @param queryName The name of the query to execute (e.g., \"BatchAgentProgress\")\n * @returns The workflow query result as a JSON value.\n */\n query(workflowId, runId, queryName) {\n return this.get(`/runs/${workflowId}/${runId}/query/${queryName}`);\n }\n execute(name, payload = {}) {\n return this.post(`/execute/${name}`, { payload });\n }\n postMessage(runId, msg) {\n if (!runId) {\n throw new Error('runId is required');\n }\n return this.post(`/runs/${runId}/updates`, { payload: msg });\n }\n /**\n * Retrieve historical messages for a workflow run.\n * Returns messages in AgentMessage format for backward compatibility.\n * This endpoint returns gzip-compressed responses for large payloads (> 3KB).\n */\n async retrieveMessages(workflowId, runId, since) {\n const query = { since };\n const response = (await this.get(`/runs/${workflowId}/${runId}/updates`, {\n query,\n }));\n // Normalize compact and legacy messages to AgentMessage for backward compatibility.\n return response.messages.map((m) => toAgentMessage(parseMessage(m), runId));\n }\n /**\n * Stream workflow messages in real-time via SSE.\n *\n * This method fetches historical messages via GET /updates (gzip-compressed for large payloads)\n * then connects to SSE for real-time updates only (skipHistory=true).\n *\n * This approach provides better performance for conversations with large historical messages\n * since HTTP responses are compressed while SSE streams cannot be compressed.\n */\n async streamMessages(workflowId, runId, onMessage, since, signal) {\n return new Promise((resolve, reject) => {\n let reconnectAttempts = 0;\n let lastMessageTimestamp = since || 0;\n const historyFetchStartedAt = Date.now();\n let isClosed = false;\n let currentSse = null;\n let interval = null;\n let reconnectTimer = null;\n let abortHandler = null;\n const maxReconnectAttempts = 10;\n const baseDelay = 1000; // 1 second base delay\n const maxDelay = 30000; // 30 seconds max delay\n const calculateBackoffDelay = (attempts) => {\n const exponentialDelay = Math.min(baseDelay * 2 ** attempts, maxDelay);\n // Add jitter to prevent thundering herd\n const jitter = Math.random() * 0.1 * exponentialDelay;\n return exponentialDelay + jitter;\n };\n const cleanup = () => {\n if (reconnectTimer) {\n clearTimeout(reconnectTimer);\n reconnectTimer = null;\n }\n if (interval) {\n clearInterval(interval);\n interval = null;\n }\n if (currentSse) {\n currentSse.close();\n currentSse = null;\n }\n if (signal && abortHandler) {\n signal.removeEventListener('abort', abortHandler);\n abortHandler = null;\n }\n };\n const exit = (payload) => {\n if (!isClosed) {\n isClosed = true;\n cleanup();\n resolve(payload);\n }\n };\n if (signal) {\n if (signal.aborted) {\n exit(null);\n return;\n }\n abortHandler = () => exit(null);\n signal.addEventListener('abort', abortHandler, { once: true });\n }\n // 2. Connect to SSE for real-time updates only (skipHistory=true)\n const setupStream = async (isReconnect = false) => {\n if (isClosed)\n return;\n try {\n const EventSourceImpl = await EventSourceProvider();\n const client = this.client;\n const streamUrl = new URL(`${client.workflows.baseUrl}/runs/${workflowId}/${runId}/stream`);\n // Use the timestamp of the last received message for reconnection\n if (lastMessageTimestamp > 0) {\n streamUrl.searchParams.set('since', lastMessageTimestamp.toString());\n }\n // Skip historical messages - we already fetched them via GET /updates\n streamUrl.searchParams.set('skipHistory', 'true');\n const bearerToken = client._auth ? await client._auth() : undefined;\n if (isClosed)\n return;\n if (!bearerToken) {\n isClosed = true;\n cleanup();\n reject(new Error('No auth token available'));\n return;\n }\n const token = bearerToken.split(' ')[1];\n streamUrl.searchParams.set('access_token', token);\n if (isReconnect) {\n console.log(`Reconnecting to SSE stream for run ${runId} (attempt ${reconnectAttempts + 1}/${maxReconnectAttempts})`);\n }\n const sse = new EventSourceImpl(streamUrl.href);\n currentSse = sse;\n // Prevent Node from exiting prematurely\n interval = setInterval(() => { }, 1000);\n sse.onopen = () => {\n if (isReconnect) {\n console.log(`Successfully reconnected to SSE stream for run ${runId}`);\n }\n // Reset reconnect attempts on successful connection\n reconnectAttempts = 0;\n };\n sse.onmessage = (ev) => {\n if (!ev.data || ev.data.startsWith(':')) {\n console.log('Received comment or heartbeat; ignoring it.: ', ev.data);\n return;\n }\n try {\n // Parse message using parseMessage() which handles both compact and legacy formats\n const compactMessage = parseMessage(ev.data);\n // Update last message timestamp for reconnection (use ts field or current time)\n if (compactMessage.ts) {\n lastMessageTimestamp = Math.max(lastMessageTimestamp, compactMessage.ts);\n }\n else {\n lastMessageTimestamp = Date.now();\n }\n // Convert to AgentMessage for consumers (they shouldn't need to know about compact format)\n if (onMessage) {\n const agentMessage = toAgentMessage(compactMessage, runId);\n onMessage(agentMessage, exit);\n }\n if (shouldCloseCompactRunStream(compactMessage, runId)) {\n console.log('Closing stream due to COMPLETE message from main workstream');\n if (!isClosed) {\n isClosed = true;\n cleanup();\n resolve(null);\n }\n }\n else if (compactMessage.t === AgentMessageType.COMPLETE) {\n console.log(`Received COMPLETE message that does not close the root stream for run ${runId}`);\n }\n }\n catch (err) {\n console.error('Failed to parse SSE message:', err, ev.data);\n }\n };\n sse.onerror = (err) => {\n if (isClosed)\n return;\n console.warn(`SSE stream error for run ${runId}:`, err);\n cleanup();\n // Check if we should attempt reconnection\n if (reconnectAttempts < maxReconnectAttempts) {\n const delay = calculateBackoffDelay(reconnectAttempts);\n console.log(`Attempting to reconnect in ${delay}ms (attempt ${reconnectAttempts + 1}/${maxReconnectAttempts})`);\n reconnectAttempts++;\n reconnectTimer = setTimeout(() => {\n reconnectTimer = null;\n if (!isClosed) {\n void setupStream(true);\n }\n }, delay);\n }\n else {\n console.error(`Failed to reconnect to SSE stream for run ${runId} after ${maxReconnectAttempts} attempts`);\n isClosed = true;\n reject(new Error(`SSE connection failed after ${maxReconnectAttempts} reconnection attempts`));\n }\n };\n }\n catch (err) {\n console.error('Error setting up SSE stream:', err);\n if (reconnectAttempts < maxReconnectAttempts) {\n const delay = calculateBackoffDelay(reconnectAttempts);\n reconnectAttempts++;\n reconnectTimer = setTimeout(() => {\n reconnectTimer = null;\n if (!isClosed) {\n void setupStream(true);\n }\n }, delay);\n }\n else {\n reject(err);\n }\n }\n };\n // Start the async setup: fetch historical messages, then connect SSE\n const init = async () => {\n // 1. Fetch historical messages via GET /updates (gzip-compressed if > 3KB)\n try {\n const historical = await this.retrieveMessages(workflowId, runId, since);\n let shouldCloseAfterHistory = false;\n for (let index = 0; index < historical.length; index++) {\n const msg = historical[index];\n lastMessageTimestamp = Math.max(lastMessageTimestamp, msg.timestamp || 0);\n if (onMessage) {\n onMessage(msg, exit);\n }\n shouldCloseAfterHistory =\n index === historical.length - 1 && shouldCloseAgentRunStream(msg, runId);\n }\n if (shouldCloseAfterHistory) {\n exit(null);\n return;\n }\n }\n catch (err) {\n console.warn('Failed to fetch historical messages, continuing with SSE:', err);\n }\n if (!isClosed && lastMessageTimestamp <= 0) {\n // The server only replays the GET-to-SSE handoff gap when\n // `since > 0`. New runs can have no history at the first\n // fetch, so use the GET start time as the cursor to avoid\n // dropping messages emitted before the SSE subscription is active.\n lastMessageTimestamp = Math.max(1, historyFetchStartedAt - 1);\n }\n // 2. Connect to SSE\n void setupStream(false);\n };\n init().catch(reject);\n });\n }\n /**\n * Stream workflow messages via WebSocket (for mobile/React Native clients)\n * @param workflowId The workflow ID\n * @param runId The run ID\n * @param onMessage Callback for incoming messages (CompactMessage format)\n * @param since Optional timestamp to resume from\n * @returns Promise that resolves with cleanup function and sendSignal helper\n */\n async streamMessagesWS(workflowId, runId, onMessage, since) {\n return new Promise((resolve, reject) => {\n let reconnectAttempts = 0;\n const maxReconnectAttempts = 10;\n const baseDelay = 1000;\n const maxDelay = 30000;\n let ws = null;\n let lastMessageTimestamp = since || 0;\n let isClosed = false;\n const calculateBackoffDelay = (attempts) => {\n const exponentialDelay = Math.min(baseDelay * 2 ** attempts, maxDelay);\n const jitter = Math.random() * 0.1 * exponentialDelay;\n return exponentialDelay + jitter;\n };\n const connect = async () => {\n if (isClosed)\n return;\n try {\n const client = this.client;\n const wsUrl = new URL(`${client.workflows.baseUrl}/runs/${workflowId}/${runId}/ws`);\n // Replace http/https with ws/wss\n wsUrl.protocol = wsUrl.protocol.replace('http', 'ws');\n // Add query parameters\n if (lastMessageTimestamp > 0) {\n wsUrl.searchParams.set('since', lastMessageTimestamp.toString());\n }\n const bearerToken = client._auth ? await client._auth() : undefined;\n if (!bearerToken) {\n reject(new Error('No auth token available'));\n return;\n }\n const token = bearerToken.split(' ')[1];\n wsUrl.searchParams.set('access_token', token);\n if (reconnectAttempts > 0) {\n console.log(`Reconnecting to WebSocket for run ${runId} (attempt ${reconnectAttempts + 1}/${maxReconnectAttempts})`);\n }\n ws = new WebSocket(wsUrl.href);\n ws.onopen = () => {\n if (reconnectAttempts > 0) {\n console.log(`Successfully reconnected to WebSocket for run ${runId}`);\n }\n reconnectAttempts = 0;\n // Resolve with helpers on first successful connection\n if (!isClosed) {\n resolve({\n cleanup: () => {\n isClosed = true;\n if (ws) {\n ws.close();\n ws = null;\n }\n },\n sendSignal: (signalName, data) => {\n if (ws?.readyState === WebSocket.OPEN) {\n const message = {\n type: 'signal',\n signalName,\n data,\n requestId: Date.now(),\n };\n ws.send(JSON.stringify(message));\n }\n else {\n console.warn('WebSocket not open, cannot send signal');\n }\n },\n });\n }\n };\n ws.onmessage = (event) => {\n try {\n const rawMessage = JSON.parse(event.data);\n // Handle control messages (pong, ack, error)\n if ('type' in rawMessage && typeof rawMessage.type === 'string') {\n if (rawMessage.type === 'pong') {\n console.debug('Received pong');\n return;\n }\n else if (rawMessage.type === 'ack') {\n console.debug('Signal acknowledged', rawMessage);\n return;\n }\n else if (rawMessage.type === 'error') {\n console.error('WebSocket error message', rawMessage);\n return;\n }\n }\n // Parse agent message (handles both compact and legacy formats)\n const message = parseMessage(rawMessage);\n // Update timestamp for reconnection\n if (message.ts) {\n lastMessageTimestamp = Math.max(lastMessageTimestamp, message.ts);\n }\n else {\n lastMessageTimestamp = Date.now();\n }\n if (onMessage)\n onMessage(message);\n // Get workstream ID (defaults to 'main' if not set)\n const workstreamId = message.w || 'main';\n // Check for stream completion\n const streamIsOver = message.t === AgentMessageType.TERMINATED ||\n (message.t === AgentMessageType.COMPLETE && workstreamId === 'main');\n if (streamIsOver) {\n console.log('Closing WebSocket due to workflow completion');\n isClosed = true;\n if (ws) {\n ws.close();\n ws = null;\n }\n }\n }\n catch (err) {\n console.error('Failed to parse WebSocket message', err);\n }\n };\n ws.onerror = (err) => {\n console.error('WebSocket error', err);\n };\n ws.onclose = () => {\n if (!isClosed && reconnectAttempts < maxReconnectAttempts) {\n const delay = calculateBackoffDelay(reconnectAttempts);\n console.log(`WebSocket closed, reconnecting in ${delay}ms (attempt ${reconnectAttempts + 1}/${maxReconnectAttempts})`);\n reconnectAttempts++;\n setTimeout(connect, delay);\n }\n else if (reconnectAttempts >= maxReconnectAttempts) {\n reject(new Error(`WebSocket connection failed after ${maxReconnectAttempts} attempts`));\n }\n };\n }\n catch (err) {\n console.error('Error setting up WebSocket', err);\n if (reconnectAttempts < maxReconnectAttempts) {\n const delay = calculateBackoffDelay(reconnectAttempts);\n reconnectAttempts++;\n setTimeout(connect, delay);\n }\n else {\n reject(err);\n }\n }\n };\n void connect();\n });\n }\n /**\n * Ingest telemetry events for a workflow run.\n * Workers use this to send telemetry to zeno-server for BigQuery storage.\n */\n ingestEvents(workflowId, runId, events) {\n return this.post(`/runs/${workflowId}/${runId}/events`, {\n payload: { events },\n });\n }\n // ========================================================================\n // Analytics API\n // ========================================================================\n /**\n * Get workflow analytics summary.\n * Returns overall metrics including token usage, success rates, and run counts.\n */\n getAnalyticsSummary(query = {}) {\n return this.post('/analytics/summary', { payload: query });\n }\n /**\n * Get token usage analytics.\n * Returns token consumption metrics by model, agent, tool, or over time.\n */\n getTokenUsageAnalytics(query = {}) {\n return this.post('/analytics/tokens', { payload: query });\n }\n /**\n * Get LLM latency analytics.\n * Returns duration/latency metrics for LLM calls.\n */\n getLlmLatencyAnalytics(query = {}) {\n return this.post('/analytics/latency/llm', { payload: query });\n }\n /**\n * Get tool latency analytics.\n * Returns duration/latency metrics for tool calls.\n */\n getToolLatencyAnalytics(query = {}) {\n return this.post('/analytics/latency/tools', { payload: query });\n }\n /**\n * Get agent/workflow latency analytics.\n * Returns duration metrics for complete workflow runs.\n */\n getAgentLatencyAnalytics(query = {}) {\n return this.post('/analytics/latency/agents', { payload: query });\n }\n /**\n * Get error analytics.\n * Returns error rates, types, and trends.\n */\n getErrorAnalytics(query = {}) {\n return this.post('/analytics/errors', { payload: query });\n }\n /**\n * Get tool usage analytics.\n * Returns tool invocation counts, success rates, and performance metrics.\n */\n getToolAnalytics(query = {}) {\n return this.post('/analytics/tools', { payload: query });\n }\n /**\n * Get tool parameter analytics.\n * Returns parameter value distributions for a specific tool.\n */\n getToolParameterAnalytics(query) {\n return this.post('/analytics/tools/parameters', { payload: query });\n }\n /**\n * Get available filter options for analytics.\n * Returns unique agents, environments, and models from telemetry data.\n */\n getAnalyticsFilterOptions(query = {}) {\n return this.post('/analytics/filter-options', { payload: query });\n }\n /**\n * Get average prompt size (input tokens) by agent for startConversation calls.\n * This represents the initial prompt + tools size.\n */\n getPromptSizeAnalytics(query = {}) {\n return this.post('/analytics/prompt-size', { payload: query });\n }\n /**\n * Get top principals (users/API keys) who started the most agent runs.\n * Returns the top N principals sorted by run count descending.\n */\n getTopPrincipalsAnalytics(query = {}) {\n return this.post('/analytics/top-principals', { payload: query });\n }\n /**\n * Get agent run distribution - how many runs per agent/interaction type.\n * Returns the top N agents sorted by run count descending.\n */\n getRunsByAgentAnalytics(query = {}) {\n return this.post('/analytics/runs-by-agent', { payload: query });\n }\n /**\n * Get time to first response analytics.\n * Measures the time from agent start to the completion of the first LLM call.\n * Returns average, min, max, median, p95, and p99 metrics.\n */\n getTimeToFirstResponseAnalytics(query = {}) {\n return this.post('/analytics/time-to-first-response', { payload: query });\n }\n /**\n * Get first response behavior analytics.\n * Analyzes the agent's first LLM response behavior:\n * - Percentage of agents that start by making a plan\n * - Percentage of agents that return no tool calls at start\n */\n getFirstResponseBehaviorAnalytics(query = {}) {\n return this.post('/analytics/first-response-behavior', { payload: query });\n }\n rules = new WorkflowsRulesApi(this);\n definitions = new WorkflowsDefinitionApi(this);\n}\nexport class WorkflowsRulesApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/rules');\n }\n list() {\n return this.get('/');\n }\n retrieve(id) {\n return this.get(`/${id}`);\n }\n update(id, payload) {\n return this.put(`/${id}`, {\n payload,\n });\n }\n create(payload) {\n return this.post('/', {\n payload,\n });\n }\n delete(id) {\n return this.del(`/${id}`);\n }\n execute(id, objectIds, vars) {\n const payload = {\n objectIds,\n vars,\n };\n return this.post(`/${id}/execute`, { payload });\n }\n}\nexport class WorkflowsDefinitionApi extends ApiTopic {\n //model: DSLWorkflowDefinition;\n constructor(parent) {\n super(parent, '/definitions');\n }\n list() {\n return this.get('/');\n }\n retrieve(id) {\n return this.get(`/${id}`);\n }\n update(id, payload) {\n return this.put(`/${id}`, {\n payload,\n });\n }\n create(payload) {\n return this.post('/', {\n payload,\n });\n }\n delete(id) {\n return this.del(`/${id}`);\n }\n}\n//# sourceMappingURL=WorkflowsApi.js.map","import { AbstractFetchClient, } from '@vertesia/api-fetch-client';\nimport { APP_VERSION_HEADER } from '@vertesia/common';\nimport { AgentsApi } from './AgentsApi.js';\nimport { CollectionsApi } from './CollectionsApi.js';\nimport { CostApi } from './CostApi.js';\nimport { DataApi } from './DataApi.js';\nimport { EmailApi } from './EmailApi.js';\nimport { EmbeddingsApi } from './EmbeddingsApi.js';\nimport { ZenoClientNotFoundError } from './errors.js';\nimport { FilesApi } from './FilesApi.js';\nimport { HiveMemoryApi } from './HiveMemoryApi.js';\nimport { IndexingApi } from './IndexingApi.js';\nimport { ObjectsApi } from './ObjectsApi.js';\nimport { PendingAsksApi } from './PendingAsksApi.js';\nimport { ProcessApi } from './ProcessApi.js';\nimport { QueryApi } from './QueryApi.js';\nimport { RenderingApi } from './RenderingApi.js';\nimport { SchedulesApi } from './SchedulesApi.js';\nimport { TaskApi } from './TaskApi.js';\nimport { ToolsApi } from './ToolsApi.js';\nimport { TypesApi } from './TypesApi.js';\nimport { VERSION, VERSION_HEADER } from './version.js';\nimport { WorkflowsApi } from './WorkflowsApi.js';\nfunction ensureDefined(serverUrl) {\n if (!serverUrl) {\n throw new Error('zeno client serverUrl is required');\n }\n return serverUrl;\n}\nexport class ZenoClient extends AbstractFetchClient {\n constructor(opts = {}) {\n super(ensureDefined(opts.serverUrl), opts.fetch);\n if (opts.apikey) {\n this.withApiKey(opts.apikey);\n }\n if (opts.retryPolicy) {\n this.withRetryPolicy(opts.retryPolicy);\n }\n if (opts.timeout !== undefined) {\n this.withTimeout(opts.timeout);\n }\n this.onRequest = opts.onRequest;\n this.onResponse = opts.onResponse;\n this.errorFactory = (err) => {\n if (err.status === 404) {\n return new ZenoClientNotFoundError(err.request, err);\n }\n else {\n return err;\n }\n };\n }\n withApiVersion(version) {\n if (!version) {\n delete this.headers[VERSION_HEADER];\n }\n else {\n this.headers[VERSION_HEADER] = String(version);\n }\n return this;\n }\n /** Pin the app version this client's requests resolve against (see VertesiaClient.withAppVersion). */\n withAppVersion(version) {\n if (!version) {\n delete this.headers[APP_VERSION_HEADER];\n }\n else {\n this.headers[APP_VERSION_HEADER] = String(version);\n }\n return this;\n }\n withApiKey(apiKey) {\n return this.withAuthCallback(apiKey ? () => Promise.resolve(`Bearer ${apiKey}`) : undefined);\n }\n runOperation(payload) {\n return this.post('/api/v1/operations', {\n payload,\n });\n }\n get initialHeaders() {\n return {\n ...super.initialHeaders,\n [VERSION_HEADER]: VERSION,\n };\n }\n agents = new AgentsApi(this);\n cost = new CostApi(this);\n objects = new ObjectsApi(this);\n types = new TypesApi(this);\n workflows = new WorkflowsApi(this);\n schedules = new SchedulesApi(this);\n processes = new ProcessApi(this);\n tasks = new TaskApi(this);\n files = new FilesApi(this);\n collections = new CollectionsApi(this);\n embeddings = new EmbeddingsApi(this);\n email = new EmailApi(this);\n pendingAsks = new PendingAsksApi(this);\n data = new DataApi(this);\n tools = new ToolsApi(this);\n indexing = new IndexingApi(this);\n query = new QueryApi(this);\n hiveMemory = new HiveMemoryApi(this);\n rendering = new RenderingApi(this);\n}\n//# sourceMappingURL=client.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\n/**\n * Project-scoped unified tool registry.\n *\n * Wraps:\n * - `GET /api/v1/tools` — list every tool visible to the current principal across all sources\n * - `POST /api/v1/tools/validate` — resolve a list of names against the same registry\n *\n * Note: this is distinct from `client.store.tools` (the static builtin catalog exposed by zeno-server)\n * — that one is global and source-incomplete (no app/interaction tools). Use this client for anything\n * project-aware.\n */\nexport default class ToolsApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/tools');\n }\n /**\n * List the project's unified tool registry as seen by the current principal.\n * Use `sources` for an allowlist or `exclude` for a denylist. Excluded sources\n * are not fetched, so denylisting `'app'` skips the per-installation HTTP calls.\n *\n * **Interactive UI consumers should prefer `{ exclude: ['app'] }`** and fetch\n * app tools directly via `client.apps.getInstalledApps()` + per-app\n * `client.apps.listAppInstallationTools(id)`. Reason: app tools require N\n * per-installation HTTP fetches; doing them browser-side keeps studio-server's\n * fetch budget free, lets one slow app fail in isolation, and exploits browser\n * parallelism. Server-side aggregation of the `app` source is intended for\n * one-shot consumers (validation, CLI, agent tools) — not hot UI paths.\n */\n list(query) {\n const params = {};\n if (query?.sources?.length)\n params.sources = query.sources.join(',');\n if (query?.exclude?.length)\n params.exclude = query.exclude.join(',');\n return this.get('/', { query: Object.keys(params).length > 0 ? params : undefined });\n }\n /**\n * Validate a list of tool names. Each result reports validity, source, app provenance,\n * and (for invalid names) a closest-match suggestion.\n */\n validate(names) {\n return this.post('/validate', { payload: { names } });\n }\n}\n//# sourceMappingURL=ToolsApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport default class TrainingApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/training');\n }\n listSessions(query = {}) {\n return this.get('/', { query: { ...query } });\n }\n listSessionNames(query = {}) {\n return this.get('/names', { query: { ...query } });\n }\n createSession(payload) {\n return this.post('/', { payload });\n }\n getSession(sessionId) {\n return this.get(`/${sessionId}`);\n }\n addToSession(sessionId, runs) {\n return this.post(`/${sessionId}/add`, { payload: { runs } });\n }\n listSessionRuns(sessionId, limit = 100, offset = 0) {\n return this.get(`/${sessionId}/runs`, { query: { limit, offset } });\n }\n buildSession(sessionId) {\n return this.post(`/${sessionId}/build`);\n }\n getDataUrl(sessionId) {\n return this.get(`/${sessionId}/url`);\n }\n getDataUploadUrl(sessionId, isResumable = false) {\n return this.get(`/${sessionId}/upload-url`, isResumable ? { query: { resumable: 'true' } } : {});\n }\n startTraining(sessionId) {\n return this.post(`/${sessionId}/start`);\n }\n cancelTraining(sessionId) {\n return this.post(`/${sessionId}/cancel`);\n }\n getTrainingJob(jobId) {\n return this.get(`/job/${jobId}`);\n }\n getAndSyncTrainingJob(jobId) {\n return this.get(`/job/${jobId}`, {\n query: { sync: 'true' },\n });\n }\n setDataset(sessionId, name = 'default') {\n return this.post(`/${sessionId}/dataset`, { payload: { dataset: name } });\n }\n}\n//# sourceMappingURL=TrainingApi.js.map","import { ApiTopic } from '@vertesia/api-fetch-client';\nexport default class UsersApi extends ApiTopic {\n constructor(parent) {\n super(parent, '/api/v1/users');\n }\n retrieve(userId) {\n return this.get(`/${userId}`);\n }\n update(userId, payload) {\n return this.put(`/${userId}`, { payload });\n }\n delete(userId) {\n return this.del(`/${userId}`);\n }\n}\n//# sourceMappingURL=UsersApi.js.map","import { AbstractFetchClient } from '@vertesia/api-fetch-client';\nimport { APP_VERSION_HEADER } from '@vertesia/common';\nimport AccountApi from './AccountApi.js';\nimport AccountsApi from './AccountsApi.js';\nimport AnalyticsApi from './AnalyticsApi.js';\nimport { ApiKeysApi } from './ApiKeysApi.js';\nimport AppsApi from './AppsApi.js';\nimport AuditTrailApi from './AuditTrailApi.js';\nimport CommandsApi from './CommandsApi.js';\nimport EnvironmentsApi from './EnvironmentsApi.js';\nimport { IamApi } from './IamApi.js';\nimport InteractionsApi from './InteractionsApi.js';\nimport OAuthClientsApi from './OAuthClientsApi.js';\nimport OAuthGrantsApi from './OAuthGrantsApi.js';\nimport OAuthProvidersApi from './OAuthProvidersApi.js';\nimport OAuthServerApi from './OAuthServerApi.js';\nimport ProjectsApi from './ProjectsApi.js';\nimport PromptsApi from './PromptsApi.js';\nimport { RefsApi } from './RefsApi.js';\nimport RemoteMcpConnectionsApi from './RemoteMcpConnectionsApi.js';\nimport { RunsApi } from './RunsApi.js';\nimport SecretsApi from './SecretsApi.js';\nimport SkillsApi from './SkillsApi.js';\nimport { ZenoClient } from './store/client.js';\nimport { VERSION, VERSION_HEADER } from './store/version.js';\nimport ToolsApi from './ToolsApi.js';\nimport TrainingApi from './TrainingApi.js';\nimport UsersApi from './UsersApi.js';\n/**\n * 1 min threshold constant in ms\n */\nconst EXPIRATION_THRESHOLD = 60000;\nexport class VertesiaClient extends AbstractFetchClient {\n /**\n * The JWT token linked to the API KEY (sk or pk)\n */\n _jwt = null;\n /**\n * The store client\n */\n store;\n /**\n * The session name will be sent when executing an interaction as a tag\n */\n sessionTags;\n /**\n * tokenServerUrl\n */\n tokenServerUrl;\n oauthClients;\n oauthGrants;\n oauthServer;\n oauthProviders;\n remoteMcpConnections;\n secrets;\n /**\n * Create a client from the given token.\n * If you already have the decoded token you can pass it as the second argument to avoid decodinf it again.\n *\n * @param token the raw JWT token\n * @param payload the decoded JWT token as an AuthTokenPayload - optional\n * @param endpoints optional endpoints to override those in the payload\n */\n static async fromAuthToken(token, payload, endpoints) {\n if (!payload) {\n payload = decodeJWT(token);\n }\n const resolvedEndpoints = endpoints || decodeEndpoints(payload.endpoints);\n return await new VertesiaClient({\n serverUrl: resolvedEndpoints.studio,\n storeUrl: resolvedEndpoints.store,\n tokenServerUrl: resolvedEndpoints.token || payload.iss,\n }).withApiKey(token);\n }\n static decodeEndpoints() { }\n constructor(opts = {\n site: 'api.vertesia.io',\n }) {\n let studioServerUrl;\n let zenoServerUrl;\n if (opts.serverUrl) {\n studioServerUrl = opts.serverUrl;\n }\n else if (opts.site) {\n studioServerUrl = `https://${opts.site}`;\n }\n else {\n throw new Error(\"Parameter 'site' or 'serverUrl' is required for VertesiaClient\");\n }\n if (opts.storeUrl) {\n zenoServerUrl = opts.storeUrl;\n }\n else if (opts.site) {\n zenoServerUrl = `https://${opts.site}`;\n }\n else {\n throw new Error(\"Parameter 'site' or 'storeUrl' is required for VertesiaClient\");\n }\n super(studioServerUrl, opts.fetch);\n if (opts.tokenServerUrl) {\n this.tokenServerUrl = opts.tokenServerUrl;\n }\n else if (opts.site) {\n // Strip -preview (preview uses the same STS as production for the same region),\n // then replace api prefix with sts.\n // Examples:\n // api.vertesia.io -> sts.vertesia.io\n // api-preview.vertesia.io -> sts.vertesia.io\n // api.us1.vertesia.io -> sts.us1.vertesia.io\n // api-preview.eu1.vertesia.io -> sts.eu1.vertesia.io\n const stsHost = opts.site.replace('api-preview.', 'api.').replace(/^api/, 'sts');\n this.tokenServerUrl = `https://${stsHost}`;\n }\n else if (opts.serverUrl || opts.storeUrl) {\n // Determine STS URL based on environment in serverUrl or storeUrl\n const urlToCheck = opts.serverUrl || opts.storeUrl || '';\n try {\n const url = new URL(urlToCheck);\n if (url.hostname.startsWith('api')) {\n // Strip -preview and replace api with sts.\n // api.us1.vertesia.io -> sts.us1.vertesia.io\n // api-preview.us1.vertesia.io -> sts.us1.vertesia.io\n // api.vertesia.io -> sts.vertesia.io\n const stsHost = url.hostname.replace('api-preview.', 'api.').replace(/^api/, 'sts');\n this.tokenServerUrl = `https://${stsHost}`;\n }\n else {\n this.tokenServerUrl = 'https://sts.dev1.vertesia.io';\n }\n }\n catch {\n this.tokenServerUrl = 'https://sts.dev1.vertesia.io';\n }\n }\n else {\n this.tokenServerUrl = 'https://sts.dev1.vertesia.io';\n }\n this.store = new ZenoClient({\n serverUrl: zenoServerUrl,\n tokenServerUrl: this.tokenServerUrl,\n apikey: opts.apikey,\n onRequest: opts.onRequest,\n onResponse: opts.onResponse,\n retryPolicy: opts.retryPolicy,\n timeout: opts.timeout,\n fetch: opts.fetch,\n });\n if (opts.retryPolicy) {\n this.withRetryPolicy(opts.retryPolicy);\n }\n if (opts.timeout !== undefined) {\n this.withTimeout(opts.timeout);\n }\n if (opts.apikey) {\n void this.withApiKey(opts.apikey);\n }\n this.onRequest = opts.onRequest;\n this.onResponse = opts.onResponse;\n this.sessionTags = opts.sessionTags;\n this.oauthClients = new OAuthClientsApi(this);\n this.oauthGrants = new OAuthGrantsApi(this);\n this.oauthServer = new OAuthServerApi(this, this.tokenServerUrl);\n this.oauthProviders = new OAuthProvidersApi(this);\n this.remoteMcpConnections = new RemoteMcpConnectionsApi(this);\n this.secrets = new SecretsApi(this);\n }\n withApiVersion(version) {\n if (!version) {\n delete this.headers[VERSION_HEADER];\n }\n else {\n this.headers[VERSION_HEADER] = String(version);\n }\n return this;\n }\n /**\n * Pin the app version this client's requests resolve against. A generated app's UI sets this from\n * its build-time `VITE_APP_VERSION` so studio/zeno resolve its `app:<app>:…` refs against that\n * published version (candidate testing) instead of current. Pass null/empty to clear (→ current).\n */\n withAppVersion(version) {\n if (!version) {\n delete this.headers[APP_VERSION_HEADER];\n }\n else {\n this.headers[APP_VERSION_HEADER] = String(version);\n }\n return this;\n }\n /**\n * Overwrite to keep store and composable clients synchronized on the auth callback\n * @param authCb\n * @returns\n */\n withAuthCallback(authCb) {\n this.store.withAuthCallback(authCb);\n return super.withAuthCallback(authCb);\n }\n withRetryPolicy(policy) {\n this.store.withRetryPolicy(policy);\n return super.withRetryPolicy(policy);\n }\n withTimeout(timeoutMs) {\n this.store.withTimeout(timeoutMs);\n return super.withTimeout(timeoutMs);\n }\n async withApiKey(apiKey) {\n return this.withAuthCallback(apiKey\n ? async () => {\n if (!isApiKey(apiKey)) {\n return `Bearer ${apiKey}`;\n }\n if (isTokenExpired(this._jwt)) {\n const jwt = await this.getAuthToken(apiKey);\n this._jwt = jwt.token;\n }\n return `Bearer ${this._jwt}`;\n }\n : undefined);\n }\n async getRawJWT() {\n if (!this._jwt && this._auth) {\n const auth = await this._auth();\n if (!this._jwt) {\n // the _jwt may be set by the auth callback\n this._jwt = auth.trim().split(' ')[1]; // remove Bearer prefix\n }\n }\n return this._jwt || null;\n }\n async getDecodedJWT() {\n const jwt = await this.getRawJWT();\n return jwt ? decodeJWT(jwt) : null;\n }\n async getProject() {\n const jwt = await this.getDecodedJWT();\n return jwt?.project || null;\n }\n async getAccount() {\n const jwt = await this.getDecodedJWT();\n return jwt?.account || null;\n }\n /**\n * Alias for store.agents\n */\n get agents() {\n return this.store.agents;\n }\n /**\n * Alias for store.workflows\n */\n get workflows() {\n return this.store.workflows;\n }\n /**\n * Alias for store.objects\n */\n get objects() {\n return this.store.objects;\n }\n get files() {\n return this.store.files;\n }\n get processes() {\n return this.store.processes;\n }\n get tasks() {\n return this.store.tasks;\n }\n /**\n * Alias for store.types\n */\n get types() {\n return this.store.types;\n }\n /**\n * Alias for store.data\n */\n get data() {\n return this.store.data;\n }\n get storeUrl() {\n return this.store.baseUrl;\n }\n /**\n *\n * Generate a token for use with other Vertesia's services\n *\n * @returns AuthTokenResponse\n */\n async getAuthToken(token) {\n // Route through the base client (absolute URL) so the call benefits from the\n // retry policy. The default retry methods exclude POST as non-idempotent, but\n // /token/issue is safe to retry, so we opt POST in explicitly for this request.\n return this.post(`${this.tokenServerUrl}/token/issue`, {\n headers: {\n 'content-type': 'application/json',\n authorization: `Bearer ${token}`,\n },\n retryPolicy: {\n attempts: 4,\n methods: ['POST'],\n statuses: [429, 500, 502, 503, 504],\n },\n }).catch((error) => {\n console.error(`Error fetching token from ${this.tokenServerUrl}:`, { error });\n throw error;\n });\n }\n get initialHeaders() {\n return {\n ...super.initialHeaders,\n [VERSION_HEADER]: VERSION,\n };\n }\n projects = new ProjectsApi(this);\n environments = new EnvironmentsApi(this);\n interactions = new InteractionsApi(this);\n skills = new SkillsApi(this);\n prompts = new PromptsApi(this);\n runs = new RunsApi(this);\n account = new AccountApi(this);\n accounts = new AccountsApi(this);\n apikeys = new ApiKeysApi(this);\n analytics = new AnalyticsApi(this);\n auditTrail = new AuditTrailApi(this);\n training = new TrainingApi(this);\n users = new UsersApi(this);\n iam = new IamApi(this);\n refs = new RefsApi(this);\n commands = new CommandsApi(this);\n apps = new AppsApi(this);\n tools = new ToolsApi(this);\n}\nfunction isApiKey(apiKey) {\n return apiKey.startsWith('pk-') || apiKey.startsWith('sk-');\n}\n/**\n * Returns true when the token should be refreshed: either missing, or within\n * EXPIRATION_THRESHOLD of its `exp` claim, or already expired. Exported for tests.\n */\nexport function isTokenExpired(token) {\n if (!token) {\n return true;\n }\n const decoded = decodeJWT(token);\n const exp = decoded.exp;\n const currentTime = Date.now();\n return currentTime >= exp * 1000 - EXPIRATION_THRESHOLD;\n}\nexport function decodeJWT(jwt) {\n const payloadBase64 = jwt.split('.')[1];\n const decodedJson = base64UrlDecode(payloadBase64);\n return JSON.parse(decodedJson);\n}\nfunction getRuntimeBuffer() {\n return globalThis.Buffer;\n}\nfunction getRuntimeStsUrl() {\n const runtimeProcess = globalThis.process;\n return runtimeProcess?.env?.STS_URL;\n}\nfunction base64UrlDecode(input) {\n // Convert base64url to base64\n const base64 = input\n .replace(/-/g, '+')\n .replace(/_/g, '/')\n // Pad with '=' to make length a multiple of 4\n .padEnd(Math.ceil(input.length / 4) * 4, '=');\n const runtimeBuffer = getRuntimeBuffer();\n if (runtimeBuffer) {\n // Node.js\n return runtimeBuffer.from(base64, 'base64').toString('utf-8');\n }\n else if (typeof atob !== 'undefined' && typeof TextDecoder !== 'undefined') {\n // Browser\n const binary = atob(base64);\n const bytes = Uint8Array.from(binary, (c) => c.charCodeAt(0));\n // decode to utf8\n return new TextDecoder().decode(bytes);\n }\n else {\n throw new Error('No base64 decoder available');\n }\n}\nexport function decodeEndpoints(endpoints) {\n if (!endpoints) {\n return getEndpointsFromDomain('api.vertesia.io');\n }\n if (typeof endpoints === 'string') {\n return getEndpointsFromDomain(endpoints);\n }\n else {\n return endpoints;\n }\n}\nfunction getEndpointsFromDomain(domain) {\n if (domain === 'local') {\n return {\n studio: `http://localhost:8091`,\n store: `http://localhost:8092`,\n token: getRuntimeStsUrl() ?? 'https://sts.dev1.vertesia.io',\n git: 'https://git.dev1.vertesia.io',\n };\n }\n else {\n const url = `https://${domain}`;\n // Supports both dot-separated (api.us1.vertesia.io → sts.us1.vertesia.io)\n // and legacy (api.vertesia.io → sts.vertesia.io)\n return {\n studio: url,\n store: url,\n token: url.replace('api', 'sts'),\n git: url.replace('api', 'git'),\n };\n }\n}\n//# sourceMappingURL=client.js.map","import { VertesiaClient } from './client.js';\nimport { executeInteraction } from './execute.js';\nexport class InteractionBase {\n id;\n client;\n constructor(id, clientOrOpts) {\n this.id = id;\n if (clientOrOpts instanceof VertesiaClient) {\n this.client = clientOrOpts;\n }\n else {\n this.client = new VertesiaClient(clientOrOpts);\n }\n }\n retrieve() {\n return this.client.interactions.retrieve(this.id);\n }\n update(payload) {\n return this.client.interactions.update(this.id, payload);\n }\n //TODO - Not implemented\n render(_data) {\n throw new Error('Not implemented');\n }\n /**\n * Execute an interaction and return a promise which will be resolved with the executed run when\n * the run completes or fails.\n * If the onChunk callback is passed then the streaming of the result is enabled.\n * The onChunk callback with be called with the next chunk of the result as soon as it is available.\n * When all chunks are received the function will return the resolved promise\n * @param id of the interaction to execute\n * @param payload InteractionExecutionPayload\n * @param onChunk callback to be called when the next chunk of the response is available\n * @returns the resolved interaction execution result\n */\n async execute(payload = {}, onChunk) {\n return executeInteraction(this.client, this.id, payload, onChunk);\n }\n}\n//# sourceMappingURL=InteractionBase.js.map"],"names":["isRecord","value","getDetails","payload","details","error","undefined","RequestError","Error","status","request","request_info","displayDetails","original_message","constructor","message","super","msg","method","url","detailsType","JSON","stringify","createMessage","this","ServerError","req","updateDetails","ConnectionError","err","ParseError","options","name","type","field","line","SPACE","noop","_arg","createParser","config","TypeError","onEvent","onError","onRetry","onComment","maxBufferSize","pendingFragments","id","eventType","pendingFragmentsLength","isFirstChunk","data","dataLines","terminated","checkBufferSize","length","processLines","chunk","searchIndex","indexOf","lfIndex","event","firstCharCode","charCodeAt","isDataPrefix","valueStart","slice","isEventPrefix","parseLine","crIndex","lineEnd","start","end","value2","includes","line2","fieldSeparatorIndex","processField","offset","test","parseInt","feed","trailing2","push","input","join","trailing","reset","consume","incompleteLine","i","EventSourceParserStream","TransformStream","parser","controller","parsedEvent","enqueue","transform","_TextDecoderStream","globalThis","TextDecoderStream","MyTextDecoderStream","_options","encoding","fatal","ignoreBOM","TextDecodeTransformer","TextDecoder","decoder","ArrayBuffer","isView","text","decode","stream","flush","removeTrailingSlash","path","DEFAULT_RETRY_METHODS","DEFAULT_RETRY_STATUSES","retryDelayMs","policy","attempt","res","retryAfter","headers","get","seconds","Number","isFinite","retryAt","Date","parse","isNaN","Math","max","now","retryAfterDelayMs","delay","min","maxDelayMs","baseDelayMs","jitter","floor","random","toError","String","timeoutSignal","ms","timeoutFn","AbortSignal","timeout","AbortController","setTimeout","abort","DOMException","signal","async","discardBody","body","cancel","ClientBase","_fetch","baseUrl","errorFactory","verboseErrors","retryPolicy","defaultTimeoutMs","fetchImpl","Promise","resolve","fetch","fetchPromise","throwError","withRetryPolicy","getRetryPolicy","withTimeout","timeoutMs","getTimeout","resolveTimeout","params","reader","requestTimeout","clientTimeout","getUrl","startsWith","left","right","endsWith","substring","del","post","put","jsonParse","createRequest","init","Request","handleFetchResponse","_req","_res","createServerError","isInvalidJsonPayload","statusText","readJSONPayload","then","catch","isAbortError","handleResponse","response","ok","pipeThrough","sse","call","query","parts","key","Object","keys","val","encodeURIComponent","buildQueryString","assign","paramsHeaders","toLowerCase","jsonPayload","accept","normalizedMethod","toUpperCase","createRequestInit","signals","list","filter","s","anyFn","any","aborted","reason","addEventListener","once","combineAbortSignals","resolveRetryPolicy","console","replayableBody","ReadableStream","isReplayableBody","lastReq","attempts","shouldRetryConnectionError","waitBeforeRetry","shouldRetryResponse","requestPolicy","clientPolicy","methods","Set","map","statuses","retryNonJsonServerErrors","retryOnConnectionError","normalizeRetryPolicy","retryableStatus","has","isNonJsonServerError","sseRequest","getReader","lastEvent","done","read","releaseLock","AbstractFetchClient","_auth","onRequest","onResponse","initialHeaders","runtime","window","process","versions","node","bun","Bun","isServerFetchRuntime","withAuthCallback","authCb","withErrorFactory","factory","withLang","locale","withHeaders","thisHeaders","setHeader","auth","authorization","ApiTopic","client","basePath","AccountApi","parent","info","update","projects","members","inviteUser","listInvites","listInvitation","acceptInvite","rejectInvite","onboardingProgress","getStripeBillingStatus","AccountsApi","create","AnalyticsApi","runsSummary","environmentId","URLSearchParams","set","qs","toString","runsTimeSeries","runsTokenUsage","ApiKeysApi","level","retrieve","withValue","getToken","requestPublicKey","AppsApi","manifest","previewDelete","deleteApp","confirm","listVersions","app_id","kind","include_expired","limit","upsertVersion","getVersion","recordId","activateVersion","startBuild","appIdOrRecordId","getBuildProgress","workflowId","runId","listAppInstallationTools","appInstallId","inspect","appIdOrName","getAppInstallationPackage","scope","Array","isArray","getSystemToolsPackage","install","appId","settings","oauthParams","oauthProviderParams","oauth_params","oauth_provider_params","uninstall","installationId","getAppInstallationByName","appName","getAppInstallationProjects","app","getInstalledApps","getAllAppInstallations","listInstallations","updateInstallationSettings","settingsPayload","access_control","updateToolAllowlist","installId","tool_allowlist","validateUrl","AuditTrailApi","actions","resourceTypes","resourceId","principalId","principalType","effectivePrincipalId","hasEffectivePrincipal","projectId","from","to","CommandsApi","isNamespaceAvailable","available","initSamples","EnvironmentsApi","all","updateConfig","listModels","listTrainableModels","embeddings","migrateInteractions","GroupsApi","groupId","listMembers","addMember","userId","removeMember","syncMembers","IamApi","aces","AcesApi","roles","RolesApi","groups","getPrincipalIdentity","listSystem","listProjectAces","INTERACTION_EXECUTION_TIMEOUT_MS","raw","env","VERTESIA_INTERACTION_TIMEOUT_MS","parsed","NaN","EventSourceProvider","EventSource","import","executeInteraction","interactionId","onChunk","runs","interaction","ExecutionRunStatus","failed","handleStreaming","reject","EventSourceImpl","streamUrl","URL","bearerToken","token","split","searchParams","href","ev","close","InteractionCatalogApi","listStoredInteractions","listSysInteractions","tag","listAppInteractions","listAllAppInteractions","IS_INTERACTION_OUTPUT","Symbol","enhanceInteractionExecutionResult","r","result","InteractionOutput","enhanceExecutionRun","results","isInteractionOutputMarker","createInteractionOutput","isInteractionOutputArray","obj","isEmpty","hasObject","some","hasText","hasImage","delimiter","texts","object","jsonResult","find","lastError","part","trim","parseCompletionResultAsJson","objects","objectAt","index","image","imageResult","images","separator","indent","toJSON","wrapper","Proxy","target","prop","receiver","Reflect","bind","hasIdPayload","InteractionsApi","catalog","listEndpoints","listVersionsByName","listTags","computeFacets","listNames","cascade","rest","mergedQuery","delete","execute","run_id","executeByName","nameWithTag","executeInteractionByName","executeAsync","executeInteractionAsync","publish","fork","generateInteraction","generateTestData","suggestImprovements","suggestPromptImprovements","listForks","requestSlot","checkRateLimit","nameOrId","OAuthClientsApi","clientId","scopeMetadata","remove","toQueryRecord","fromEntries","entries","OAuthGrantsApi","grantId","revoke","revokeBulk","OAuthProvidersApi","authorize","exchange","code","state","getStatus","connect","disconnect","OAuthServerApi","createAuthorizationRequest","createDeviceAuthorization","retrieveDeviceRequest","userCode","retrieveRequest","requestId","retrieveGrantableScopes","project_id","approveRequest","denyRequest","ProjectsApi","integrations","IntegrationsConfigurationApi","account","updateConfiguration","getTools","getToolByName","toolName","listAppContentTypes","getAppContentType","typeId","listAppProcesses","getAppProcess","processId","listAppRenderingTemplates","getAppRenderingTemplate","templateUri","getCompositeAppConfiguration","updateCompositeAppConfiguration","integrationId","updatePlugins","plugins","listPlugins","PromptsApi","render","listInteractions","RefsApi","refs","RemoteMcpConnectionsApi","getCollectionStatus","collectionId","getMetadata","getCollectionToken","app_install_id","collection_id","mcpServerUrl","mcp_server_url","RunsApi","filters","retrievePopulated","populate","filterOptions","sessionTags","tags","concat","sendToolResults","sendUserMessage","search","clone","SecretsApi","secrets","secretId","fillWebsiteCredential","SkillsApi","findRelevant","context","findRelevantForTask","taskDescription","toolNames","task_description","tool_names","DEFAULT_RETRYABLE_STATUSES","DEFAULT_ATTEMPTS","DEFAULT_BASE_DELAY_MS","DEFAULT_MAX_DELAY_MS","sleep","backoffMs","header","date","retryAfterMs","capped","textEncoder","TextEncoder","chunkToBlobPart","encode","Blob","Uint8Array","buffer","byteOffset","byteLength","fetchSignedUrl","retryableStatuses","toReplayableBody","isLastAttempt","isRootProcessMessage","rootRunId","processRunId","process_run_id","readProcessRunId","shouldCloseAgentRunStream","AgentMessageType","TERMINATED","COMPLETE","workstream_id","shouldCloseCompactRunStream","t","w","d","AgentsApi","recordRun","createRecord","retrieveRun","retrieveProcess","buildListQueryParams","listProcessRuns","run_kind","items","isProcessRunResponse","started_by","since","toISOString","until","schedule_id","run_type","cursor","sort","order","categories","content_type_name","terminate","restart","getContext","getHistory","advance","retryNode","answerTask","taskId","task_id","updateStatus","bindWorkflowRun","sendSignal","signalName","queryName","getActiveWorkstreams","retrieveMessages","messages","m","toAgentMessage","parseMessage","postMessage","streamMessages","onMessage","resolveFn","rejectFn","promise","reconnectAttempts","lastMessageTimestamp","historyFetchStartedAt","isClosed","currentSse","interval","reconnectTimer","abortHandler","calculateBackoffDelay","exponentialDelay","cleanup","clearTimeout","clearInterval","removeEventListener","exit","degradeToPolling","warn","tick","recent","timestamp","run","historical","onHistoryLoaded","shouldCloseAfterHistory","onHistoryError","setupStream","isReconnect","agents","log","setInterval","connectionOpenedAt","onopen","onmessage","compactMessage","ts","agentMessage","onerror","_err","getInternals","getRunDetails","includeHistory","include_history","hydratePayloads","hydrate_payloads","streamRunDetails","listChildren","getChildDetails","childWorkflowId","listArtifacts","visibility","getArtifactUrl","disposition","fileName","filename","uploadArtifact","content","contentType","mimeType","downloadArtifact","ingestEvents","agentRunId","events","getAnalyticsSummary","getTokenUsageAnalytics","getLlmLatencyAnalytics","getToolLatencyAnalytics","getAgentLatencyAnalytics","getErrorAnalytics","getToolAnalytics","getToolParameterAnalytics","getAnalyticsFilterOptions","getPromptSizeAnalytics","getTopPrincipalsAnalytics","getRunsByAgentAnalytics","getTimeToFirstResponseAnalytics","getFirstResponseBehaviorAnalytics","CollectionsApi","computeListFacets","addMembers","action","searchMembers","deleteMembers","addChildren","children","deleteChildren","searchChildren","updatePermissions","permissions","propagatePermissions","propagateSharedProperties","CostApi","getAnalytics","getGlobalAnalytics","getModelPrices","getRunPrice","getRunPriceComparison","include_comparison_pricing","getExportUrl","workflow_id","DashboardApi","storeId","storeHeaders","DataStoreApiHeaders","DATA_STORE_ID","bulkArchive","ids","bulkDelete","dashboardId","snapshotsOnly","versionId","createSnapshot","promoteVersion","setVersioningEnabled","enabled","DataApi","getSchema","format","updateSchema","getSchemaHistory","listTables","createTables","getTable","tableName","sample","alterTable","dropTable","getImportStatus","importId","rollback","queryVersion","queryBatch","queries","validateQueries","getDownloadInfo","dashboards","EmailApi","send","resolveRoute","routeKey","route_key","createRoute","getRoute","updateRoute","updates","forwardEmail","EmbeddingsApi","activate","environment","disable","recalculate","ZenoClientNotFoundError","StreamSource","MEMORIES_PREFIX","ARTIFACTS_PREFIX","getMemoryFilePath","nameWithExt","getAgentArtifactPath","FilesApi","deleteFile","prefix","uri","file","setFileMetadata","metadata","getOrCreateBucket","ensureBucketReadAccess","principal","getBucketReadAccessStatus","getUploadUrl","getDownloadUrl","getDownloadUrlWithOptions","bulkGetUploadUrls","bulkUpload","sources","concurrency","fileDescriptors","mime_type","files","batch","source","j","idx","isStream","sourceMimeType","etag","replace","uploadFile","uploadFileWithPath","downloadFile","location","needSign","copyFile","dest","uploadMemoryPack","fileId","File","downloadMemoryPack","gunzip","ds","DecompressionStream","listByPrefix","artifactPath","getArtifactDownloadUrl","HiveMemoryApi","category","queryString","recall","tools","max_results","maxResults","getFormatted","recordUsage","getByCategory","getStats","applyDecay","days_threshold","daysThreshold","decay_rate","decayRate","archiveLowConfidence","threshold","IndexingApi","reindex","reindexAgentRuns","analyzeDrift","getDriftAnalysis","enableIndexing","disableIndexing","enableQueries","disableQueries","objectId","document","object_id","bulkIndex","documents","targetIndex","target_index","ensureIndex","recreate","createReindexTarget","fetchBatch","getNextIndexCursor","count","analyzeDriftBatch","triggerReindex","full_reindex","fullReindex","object_ids","objectIds","recreate_index","recreateIndex","fetchDocumentsByIds","getConfiguration","zenoBulkBaseUrl","storeBaseUrl","zenoBulkPost","computeShards","tenantId","shardSize","updatedSince","backend","tenant_id","shard_size","updated_since","indexShard","swapAlias","alias","reindexViaBulk","dryRun","tuning","bulkUrl","dry_run","shards","bulk_concurrency","bulkConcurrency","bulk_size_bytes","bulkSizeBytes","bulk_max_docs","bulkMaxDocs","lastResult","AnalyzeDocApi","getResults","adaptTables","getAdaptedTables","queryParams","responseType","getXml","getTables","getImages","getAnnotated","ObjectsApi","analyze","fileUri","getContentSource","select","all_revisions","from_root","listFolders","_path","getObjectText","upload","payloadWithoutContent","createPayload","processing_priority","ContentObjectApiHeaders","PROCESSING_PRIORITY","COLLECTION_ID","createFromExternalSource","updatePayload","ifMatch","createRevision","CREATE_REVISION","revisionLabel","REVISION_LABEL","suppressWorkflows","SUPPRESS_WORKFLOWS","getRevisions","getCollections","idOrIds","runOperation","bulkUpdate","bulkCreate","listWorkflowRuns","documentId","listRenditions","getRendition","max_hw","generate_if_missing","sign_url","block_on_generation","getRenditionSafe","canGenerateRendition","exportProperties","setEmbedding","PendingAsksApi","register","askId","ProcessApi","allVersions","all_versions","revert","QueryApi","sql","esql","dsl","RenderingApi","workflowRunId","workflow_run_id","pollIntervalMs","started","startTime","WorkflowExecutionStatus","COMPLETED","download_url","file_uri","isWorkflowTerminalStatus","statusLabel","SchedulesApi","trigger","pause","note","resume","TaskApi","assignee","source_type","complete","getBuiltinCatalog","TypeCatalogApi","listSysTypes","listAppTypes","listStoredTypes","typeOrRef","TypesApi","layout","schema","getTypeByName","typeName","VERSION","VERSION_HEADER","WorkflowsApi","getActivityCatalog","listRuns","eventName","ruleId","listConversations","searchRuns","historyFormat","history_format","getRunInteraction","maxReconnectAttempts","workflows","streamMessagesWS","ws","wsUrl","protocol","WebSocket","readyState","OPEN","rawMessage","debug","workstreamId","onclose","rules","WorkflowsRulesApi","definitions","WorkflowsDefinitionApi","vars","ZenoClient","opts","serverUrl","ensureDefined","apikey","withApiKey","withApiVersion","version","withAppVersion","APP_VERSION_HEADER","apiKey","cost","types","schedules","processes","tasks","collections","email","pendingAsks","ToolsApi","indexing","hiveMemory","rendering","exclude","validate","names","TrainingApi","listSessions","listSessionNames","createSession","getSession","sessionId","addToSession","listSessionRuns","buildSession","getDataUrl","getDataUploadUrl","isResumable","resumable","startTraining","cancelTraining","getTrainingJob","jobId","getAndSyncTrainingJob","sync","setDataset","dataset","UsersApi","VertesiaClient","_jwt","store","tokenServerUrl","oauthClients","oauthGrants","oauthServer","oauthProviders","remoteMcpConnections","fromAuthToken","endpoints","decodeJWT","resolvedEndpoints","decodeEndpoints","studio","storeUrl","iss","site","studioServerUrl","zenoServerUrl","stsHost","urlToCheck","hostname","isApiKey","isTokenExpired","jwt","getAuthToken","getRawJWT","getDecodedJWT","getProject","project","getAccount","environments","interactions","skills","prompts","accounts","apikeys","analytics","auditTrail","training","users","iam","commands","apps","exp","decodedJson","base64","padEnd","ceil","runtimeBuffer","Buffer","atob","binary","bytes","c","base64UrlDecode","getRuntimeStsUrl","runtimeProcess","STS_URL","getEndpointsFromDomain","domain","git","InteractionBase","clientOrOpts","_data"],"mappings":"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","x_google_ignoreList":[1]}