@agentuity/core 1.0.32 → 1.0.34

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 (702) hide show
  1. package/dist/env-example.d.ts +11 -0
  2. package/dist/env-example.d.ts.map +1 -0
  3. package/dist/env-example.js +70 -0
  4. package/dist/env-example.js.map +1 -0
  5. package/dist/index.d.ts +6 -18
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +5 -15
  8. package/dist/index.js.map +1 -1
  9. package/dist/services/adapter.d.ts +57 -22
  10. package/dist/services/adapter.d.ts.map +1 -1
  11. package/dist/services/adapter.js +52 -1
  12. package/dist/services/adapter.js.map +1 -1
  13. package/dist/services/api.d.ts +222 -0
  14. package/dist/services/api.d.ts.map +1 -0
  15. package/dist/services/api.js +662 -0
  16. package/dist/services/api.js.map +1 -0
  17. package/dist/services/apikey/create.d.ts +34 -0
  18. package/dist/services/apikey/create.d.ts.map +1 -0
  19. package/dist/services/apikey/create.js +29 -0
  20. package/dist/services/apikey/create.js.map +1 -0
  21. package/dist/services/apikey/delete.d.ts +19 -0
  22. package/dist/services/apikey/delete.d.ts.map +1 -0
  23. package/dist/services/apikey/delete.js +19 -0
  24. package/dist/services/apikey/delete.js.map +1 -0
  25. package/dist/services/apikey/get.d.ts +45 -0
  26. package/dist/services/apikey/get.d.ts.map +1 -0
  27. package/dist/services/apikey/get.js +36 -0
  28. package/dist/services/apikey/get.js.map +1 -0
  29. package/dist/services/apikey/index.d.ts +6 -0
  30. package/dist/services/apikey/index.d.ts.map +1 -0
  31. package/dist/services/apikey/index.js +6 -0
  32. package/dist/services/apikey/index.js.map +1 -0
  33. package/dist/services/apikey/list.d.ts +65 -0
  34. package/dist/services/apikey/list.d.ts.map +1 -0
  35. package/dist/services/apikey/list.js +50 -0
  36. package/dist/services/apikey/list.js.map +1 -0
  37. package/dist/services/apikey/util.d.ts +23 -0
  38. package/dist/services/apikey/util.d.ts.map +1 -0
  39. package/dist/services/apikey/util.js +3 -0
  40. package/dist/services/apikey/util.js.map +1 -0
  41. package/dist/services/config.d.ts +22 -0
  42. package/dist/services/config.d.ts.map +1 -0
  43. package/dist/services/config.js +55 -0
  44. package/dist/services/config.js.map +1 -0
  45. package/dist/services/db/index.d.ts +5 -0
  46. package/dist/services/db/index.d.ts.map +1 -0
  47. package/dist/services/db/index.js +5 -0
  48. package/dist/services/db/index.js.map +1 -0
  49. package/dist/services/db/logs.d.ts +70 -0
  50. package/dist/services/db/logs.d.ts.map +1 -0
  51. package/dist/services/db/logs.js +59 -0
  52. package/dist/services/db/logs.js.map +1 -0
  53. package/dist/services/db/query.d.ts +40 -0
  54. package/dist/services/db/query.d.ts.map +1 -0
  55. package/dist/services/db/query.js +55 -0
  56. package/dist/services/db/query.js.map +1 -0
  57. package/dist/services/db/tables.d.ts +50 -0
  58. package/dist/services/db/tables.d.ts.map +1 -0
  59. package/dist/services/db/tables.js +64 -0
  60. package/dist/services/db/tables.js.map +1 -0
  61. package/dist/services/db/util.d.ts +31 -0
  62. package/dist/services/db/util.d.ts.map +1 -0
  63. package/dist/services/db/util.js +4 -0
  64. package/dist/services/db/util.js.map +1 -0
  65. package/dist/services/email/index.d.ts +2 -0
  66. package/dist/services/email/index.d.ts.map +1 -0
  67. package/dist/services/email/index.js +2 -0
  68. package/dist/services/email/index.js.map +1 -0
  69. package/dist/services/{email.d.ts → email/service.d.ts} +137 -296
  70. package/dist/services/email/service.d.ts.map +1 -0
  71. package/dist/services/{email.js → email/service.js} +403 -18
  72. package/dist/services/email/service.js.map +1 -0
  73. package/dist/services/env.d.ts +5 -0
  74. package/dist/services/env.d.ts.map +1 -0
  75. package/dist/services/env.js +10 -0
  76. package/dist/services/env.js.map +1 -0
  77. package/dist/services/{evalrun.d.ts → eval/events.d.ts} +1 -1
  78. package/dist/services/eval/events.d.ts.map +1 -0
  79. package/dist/services/{evalrun.js → eval/events.js} +1 -1
  80. package/dist/services/eval/events.js.map +1 -0
  81. package/dist/services/eval/get.d.ts +36 -0
  82. package/dist/services/eval/get.d.ts.map +1 -0
  83. package/dist/services/eval/get.js +23 -0
  84. package/dist/services/eval/get.js.map +1 -0
  85. package/dist/services/eval/index.d.ts +6 -0
  86. package/dist/services/eval/index.d.ts.map +1 -0
  87. package/dist/services/eval/index.js +6 -0
  88. package/dist/services/eval/index.js.map +1 -0
  89. package/dist/services/eval/list.d.ts +50 -0
  90. package/dist/services/eval/list.d.ts.map +1 -0
  91. package/dist/services/eval/list.js +32 -0
  92. package/dist/services/eval/list.js.map +1 -0
  93. package/dist/services/eval/run-get.d.ts +48 -0
  94. package/dist/services/eval/run-get.d.ts.map +1 -0
  95. package/dist/services/eval/run-get.js +29 -0
  96. package/dist/services/eval/run-get.js.map +1 -0
  97. package/dist/services/eval/run-list.d.ts +70 -0
  98. package/dist/services/eval/run-list.d.ts.map +1 -0
  99. package/dist/services/eval/run-list.js +42 -0
  100. package/dist/services/eval/run-list.js.map +1 -0
  101. package/dist/services/exception.d.ts +28 -9
  102. package/dist/services/exception.d.ts.map +1 -1
  103. package/dist/services/exception.js +14 -0
  104. package/dist/services/exception.js.map +1 -1
  105. package/dist/services/index.d.ts +26 -12
  106. package/dist/services/index.d.ts.map +1 -1
  107. package/dist/services/index.js +26 -11
  108. package/dist/services/index.js.map +1 -1
  109. package/dist/services/keyvalue/index.d.ts +2 -0
  110. package/dist/services/keyvalue/index.d.ts.map +1 -0
  111. package/dist/services/keyvalue/index.js +2 -0
  112. package/dist/services/keyvalue/index.js.map +1 -0
  113. package/dist/services/{keyvalue.d.ts → keyvalue/service.d.ts} +98 -120
  114. package/dist/services/keyvalue/service.d.ts.map +1 -0
  115. package/dist/services/{keyvalue.js → keyvalue/service.js} +182 -12
  116. package/dist/services/keyvalue/service.js.map +1 -0
  117. package/dist/services/logger.d.ts +7 -0
  118. package/dist/services/logger.d.ts.map +1 -0
  119. package/dist/services/logger.js +23 -0
  120. package/dist/services/logger.js.map +1 -0
  121. package/dist/services/machine/index.d.ts +3 -0
  122. package/dist/services/machine/index.d.ts.map +1 -0
  123. package/dist/services/machine/index.js +3 -0
  124. package/dist/services/machine/index.js.map +1 -0
  125. package/dist/services/machine/machine.d.ts +192 -0
  126. package/dist/services/machine/machine.d.ts.map +1 -0
  127. package/dist/services/machine/machine.js +177 -0
  128. package/dist/services/machine/machine.js.map +1 -0
  129. package/dist/services/machine/util.d.ts +14 -0
  130. package/dist/services/machine/util.d.ts.map +1 -0
  131. package/dist/services/machine/util.js +3 -0
  132. package/dist/services/machine/util.js.map +1 -0
  133. package/dist/services/org/env-delete.d.ts +23 -0
  134. package/dist/services/org/env-delete.d.ts.map +1 -0
  135. package/dist/services/org/env-delete.js +25 -0
  136. package/dist/services/org/env-delete.js.map +1 -0
  137. package/dist/services/org/env-get.d.ts +33 -0
  138. package/dist/services/org/env-get.d.ts.map +1 -0
  139. package/dist/services/org/env-get.js +33 -0
  140. package/dist/services/org/env-get.js.map +1 -0
  141. package/dist/services/org/env-update.d.ts +24 -0
  142. package/dist/services/org/env-update.d.ts.map +1 -0
  143. package/dist/services/org/env-update.js +26 -0
  144. package/dist/services/org/env-update.js.map +1 -0
  145. package/dist/services/org/index.d.ts +7 -0
  146. package/dist/services/org/index.d.ts.map +1 -0
  147. package/dist/services/org/index.js +7 -0
  148. package/dist/services/org/index.js.map +1 -0
  149. package/dist/services/org/list.d.ts +27 -0
  150. package/dist/services/org/list.d.ts.map +1 -0
  151. package/dist/services/org/list.js +22 -0
  152. package/dist/services/org/list.js.map +1 -0
  153. package/dist/services/org/resources.d.ts +150 -0
  154. package/dist/services/org/resources.d.ts.map +1 -0
  155. package/dist/services/org/resources.js +111 -0
  156. package/dist/services/org/resources.js.map +1 -0
  157. package/dist/services/org/util.d.ts +45 -0
  158. package/dist/services/org/util.d.ts.map +1 -0
  159. package/dist/services/org/util.js +4 -0
  160. package/dist/services/org/util.js.map +1 -0
  161. package/dist/services/pagination.d.ts +38 -11
  162. package/dist/services/pagination.d.ts.map +1 -1
  163. package/dist/services/pagination.js +30 -1
  164. package/dist/services/pagination.js.map +1 -1
  165. package/dist/services/project/agent.d.ts +89 -0
  166. package/dist/services/project/agent.d.ts.map +1 -0
  167. package/dist/services/project/agent.js +60 -0
  168. package/dist/services/project/agent.js.map +1 -0
  169. package/dist/services/project/create.d.ts +37 -0
  170. package/dist/services/project/create.d.ts.map +1 -0
  171. package/dist/services/project/create.js +31 -0
  172. package/dist/services/project/create.js.map +1 -0
  173. package/dist/services/project/delete.d.ts +15 -0
  174. package/dist/services/project/delete.d.ts.map +1 -0
  175. package/dist/services/project/delete.js +15 -0
  176. package/dist/services/project/delete.js.map +1 -0
  177. package/dist/services/project/deploy.d.ts +468 -0
  178. package/dist/services/project/deploy.d.ts.map +1 -0
  179. package/dist/services/project/deploy.js +313 -0
  180. package/dist/services/project/deploy.js.map +1 -0
  181. package/dist/services/project/deployment.d.ts +237 -0
  182. package/dist/services/project/deployment.d.ts.map +1 -0
  183. package/dist/services/project/deployment.js +180 -0
  184. package/dist/services/project/deployment.js.map +1 -0
  185. package/dist/services/project/env-delete.d.ts +22 -0
  186. package/dist/services/project/env-delete.d.ts.map +1 -0
  187. package/dist/services/project/env-delete.js +29 -0
  188. package/dist/services/project/env-delete.js.map +1 -0
  189. package/dist/services/project/env-update.d.ts +31 -0
  190. package/dist/services/project/env-update.d.ts.map +1 -0
  191. package/dist/services/project/env-update.js +36 -0
  192. package/dist/services/project/env-update.js.map +1 -0
  193. package/dist/services/project/exists.d.ts +25 -0
  194. package/dist/services/project/exists.d.ts.map +1 -0
  195. package/dist/services/project/exists.js +45 -0
  196. package/dist/services/project/exists.js.map +1 -0
  197. package/dist/services/project/get.d.ts +43 -0
  198. package/dist/services/project/get.d.ts.map +1 -0
  199. package/dist/services/project/get.js +36 -0
  200. package/dist/services/project/get.js.map +1 -0
  201. package/dist/services/project/hostname.d.ts +25 -0
  202. package/dist/services/project/hostname.d.ts.map +1 -0
  203. package/dist/services/project/hostname.js +43 -0
  204. package/dist/services/project/hostname.js.map +1 -0
  205. package/dist/services/project/index.d.ts +14 -0
  206. package/dist/services/project/index.d.ts.map +1 -0
  207. package/dist/services/project/index.js +14 -0
  208. package/dist/services/project/index.js.map +1 -0
  209. package/dist/services/project/list.d.ts +48 -0
  210. package/dist/services/project/list.d.ts.map +1 -0
  211. package/dist/services/project/list.js +38 -0
  212. package/dist/services/project/list.js.map +1 -0
  213. package/dist/services/project/malware.d.ts +71 -0
  214. package/dist/services/project/malware.d.ts.map +1 -0
  215. package/dist/services/project/malware.js +57 -0
  216. package/dist/services/project/malware.js.map +1 -0
  217. package/dist/services/project/update-region.d.ts +27 -0
  218. package/dist/services/project/update-region.d.ts.map +1 -0
  219. package/dist/services/project/update-region.js +25 -0
  220. package/dist/services/project/update-region.js.map +1 -0
  221. package/dist/services/project/util.d.ts +62 -0
  222. package/dist/services/project/util.d.ts.map +1 -0
  223. package/dist/services/project/util.js +6 -0
  224. package/dist/services/project/util.js.map +1 -0
  225. package/dist/services/queue/analytics.d.ts +261 -0
  226. package/dist/services/queue/analytics.d.ts.map +1 -0
  227. package/dist/services/queue/analytics.js +254 -0
  228. package/dist/services/queue/analytics.js.map +1 -0
  229. package/dist/services/queue/consumers.d.ts +48 -0
  230. package/dist/services/queue/consumers.d.ts.map +1 -0
  231. package/dist/services/queue/consumers.js +43 -0
  232. package/dist/services/queue/consumers.js.map +1 -0
  233. package/dist/services/queue/destinations.d.ts +269 -0
  234. package/dist/services/queue/destinations.d.ts.map +1 -0
  235. package/dist/services/queue/destinations.js +215 -0
  236. package/dist/services/queue/destinations.js.map +1 -0
  237. package/dist/services/queue/dlq.d.ts +170 -0
  238. package/dist/services/queue/dlq.d.ts.map +1 -0
  239. package/dist/services/queue/dlq.js +166 -0
  240. package/dist/services/queue/dlq.js.map +1 -0
  241. package/dist/services/queue/index.d.ts +58 -0
  242. package/dist/services/queue/index.d.ts.map +1 -0
  243. package/dist/services/queue/index.js +98 -0
  244. package/dist/services/queue/index.js.map +1 -0
  245. package/dist/services/queue/messages.d.ts +511 -0
  246. package/dist/services/queue/messages.d.ts.map +1 -0
  247. package/dist/services/queue/messages.js +549 -0
  248. package/dist/services/queue/messages.js.map +1 -0
  249. package/dist/services/queue/queues.d.ts +228 -0
  250. package/dist/services/queue/queues.d.ts.map +1 -0
  251. package/dist/services/queue/queues.js +321 -0
  252. package/dist/services/queue/queues.js.map +1 -0
  253. package/dist/services/{queue.d.ts → queue/service.d.ts} +44 -96
  254. package/dist/services/queue/service.d.ts.map +1 -0
  255. package/dist/services/{queue.js → queue/service.js} +154 -6
  256. package/dist/services/queue/service.js.map +1 -0
  257. package/dist/services/queue/sources.d.ts +252 -0
  258. package/dist/services/queue/sources.d.ts.map +1 -0
  259. package/dist/services/queue/sources.js +249 -0
  260. package/dist/services/queue/sources.js.map +1 -0
  261. package/dist/services/queue/types.d.ts +1335 -0
  262. package/dist/services/queue/types.d.ts.map +1 -0
  263. package/dist/services/queue/types.js +1376 -0
  264. package/dist/services/queue/types.js.map +1 -0
  265. package/dist/services/queue/util.d.ts +278 -0
  266. package/dist/services/queue/util.d.ts.map +1 -0
  267. package/dist/services/queue/util.js +233 -0
  268. package/dist/services/queue/util.js.map +1 -0
  269. package/dist/services/queue/validation.d.ts +218 -0
  270. package/dist/services/queue/validation.d.ts.map +1 -0
  271. package/dist/services/queue/validation.js +498 -0
  272. package/dist/services/queue/validation.js.map +1 -0
  273. package/dist/services/queue/websocket.d.ts +154 -0
  274. package/dist/services/queue/websocket.d.ts.map +1 -0
  275. package/dist/services/queue/websocket.js +472 -0
  276. package/dist/services/queue/websocket.js.map +1 -0
  277. package/dist/services/region/create.d.ts +81 -0
  278. package/dist/services/region/create.d.ts.map +1 -0
  279. package/dist/services/region/create.js +177 -0
  280. package/dist/services/region/create.js.map +1 -0
  281. package/dist/services/region/delete.d.ts +62 -0
  282. package/dist/services/region/delete.d.ts.map +1 -0
  283. package/dist/services/region/delete.js +37 -0
  284. package/dist/services/region/delete.js.map +1 -0
  285. package/dist/services/region/index.d.ts +5 -0
  286. package/dist/services/region/index.d.ts.map +1 -0
  287. package/dist/services/region/index.js +5 -0
  288. package/dist/services/region/index.js.map +1 -0
  289. package/dist/services/region/list.d.ts +27 -0
  290. package/dist/services/region/list.d.ts.map +1 -0
  291. package/dist/services/region/list.js +22 -0
  292. package/dist/services/region/list.js.map +1 -0
  293. package/dist/services/region/resources.d.ts +71 -0
  294. package/dist/services/region/resources.d.ts.map +1 -0
  295. package/dist/services/region/resources.js +53 -0
  296. package/dist/services/region/resources.js.map +1 -0
  297. package/dist/services/region/util.d.ts +23 -0
  298. package/dist/services/region/util.d.ts.map +1 -0
  299. package/dist/services/region/util.js +3 -0
  300. package/dist/services/region/util.js.map +1 -0
  301. package/dist/services/sandbox/cli-list.d.ts +103 -0
  302. package/dist/services/sandbox/cli-list.d.ts.map +1 -0
  303. package/dist/services/sandbox/cli-list.js +106 -0
  304. package/dist/services/sandbox/cli-list.js.map +1 -0
  305. package/dist/services/sandbox/client.d.ts +173 -0
  306. package/dist/services/sandbox/client.d.ts.map +1 -0
  307. package/dist/services/sandbox/client.js +302 -0
  308. package/dist/services/sandbox/client.js.map +1 -0
  309. package/dist/services/sandbox/create.d.ts +193 -0
  310. package/dist/services/sandbox/create.d.ts.map +1 -0
  311. package/dist/services/sandbox/create.js +215 -0
  312. package/dist/services/sandbox/create.js.map +1 -0
  313. package/dist/services/sandbox/destroy.d.ts +23 -0
  314. package/dist/services/sandbox/destroy.d.ts.map +1 -0
  315. package/dist/services/sandbox/destroy.js +30 -0
  316. package/dist/services/sandbox/destroy.js.map +1 -0
  317. package/dist/services/sandbox/disk-checkpoint.d.ts +108 -0
  318. package/dist/services/sandbox/disk-checkpoint.d.ts.map +1 -0
  319. package/dist/services/sandbox/disk-checkpoint.js +124 -0
  320. package/dist/services/sandbox/disk-checkpoint.js.map +1 -0
  321. package/dist/services/sandbox/execute.d.ts +96 -0
  322. package/dist/services/sandbox/execute.d.ts.map +1 -0
  323. package/dist/services/sandbox/execute.js +109 -0
  324. package/dist/services/sandbox/execute.js.map +1 -0
  325. package/dist/services/sandbox/execution.d.ts +145 -0
  326. package/dist/services/sandbox/execution.d.ts.map +1 -0
  327. package/dist/services/sandbox/execution.js +113 -0
  328. package/dist/services/sandbox/execution.js.map +1 -0
  329. package/dist/services/sandbox/files.d.ts +269 -0
  330. package/dist/services/sandbox/files.d.ts.map +1 -0
  331. package/dist/services/sandbox/files.js +454 -0
  332. package/dist/services/sandbox/files.js.map +1 -0
  333. package/dist/services/sandbox/get.d.ts +284 -0
  334. package/dist/services/sandbox/get.d.ts.map +1 -0
  335. package/dist/services/sandbox/get.js +231 -0
  336. package/dist/services/sandbox/get.js.map +1 -0
  337. package/dist/services/sandbox/getStatus.d.ts +20 -0
  338. package/dist/services/sandbox/getStatus.d.ts.map +1 -0
  339. package/dist/services/sandbox/getStatus.js +36 -0
  340. package/dist/services/sandbox/getStatus.js.map +1 -0
  341. package/dist/services/sandbox/index.d.ts +40 -0
  342. package/dist/services/sandbox/index.d.ts.map +1 -0
  343. package/dist/services/sandbox/index.js +21 -0
  344. package/dist/services/sandbox/index.js.map +1 -0
  345. package/dist/services/sandbox/list.d.ts +327 -0
  346. package/dist/services/sandbox/list.d.ts.map +1 -0
  347. package/dist/services/sandbox/list.js +204 -0
  348. package/dist/services/sandbox/list.js.map +1 -0
  349. package/dist/services/sandbox/pause.d.ts +23 -0
  350. package/dist/services/sandbox/pause.d.ts.map +1 -0
  351. package/dist/services/sandbox/pause.js +30 -0
  352. package/dist/services/sandbox/pause.js.map +1 -0
  353. package/dist/services/sandbox/resolve.d.ts +75 -0
  354. package/dist/services/sandbox/resolve.d.ts.map +1 -0
  355. package/dist/services/sandbox/resolve.js +76 -0
  356. package/dist/services/sandbox/resolve.js.map +1 -0
  357. package/dist/services/sandbox/resume.d.ts +23 -0
  358. package/dist/services/sandbox/resume.d.ts.map +1 -0
  359. package/dist/services/sandbox/resume.js +30 -0
  360. package/dist/services/sandbox/resume.js.map +1 -0
  361. package/dist/services/sandbox/run.d.ts +71 -0
  362. package/dist/services/sandbox/run.d.ts.map +1 -0
  363. package/dist/services/sandbox/run.js +355 -0
  364. package/dist/services/sandbox/run.js.map +1 -0
  365. package/dist/services/sandbox/runtime.d.ts +94 -0
  366. package/dist/services/sandbox/runtime.d.ts.map +1 -0
  367. package/dist/services/sandbox/runtime.js +82 -0
  368. package/dist/services/sandbox/runtime.js.map +1 -0
  369. package/dist/services/sandbox/snapshot-build.d.ts +48 -0
  370. package/dist/services/sandbox/snapshot-build.d.ts.map +1 -0
  371. package/dist/services/sandbox/snapshot-build.js +72 -0
  372. package/dist/services/sandbox/snapshot-build.js.map +1 -0
  373. package/dist/services/sandbox/snapshot.d.ts +596 -0
  374. package/dist/services/sandbox/snapshot.d.ts.map +1 -0
  375. package/dist/services/sandbox/snapshot.js +612 -0
  376. package/dist/services/sandbox/snapshot.js.map +1 -0
  377. package/dist/services/sandbox/types.d.ts +851 -0
  378. package/dist/services/sandbox/types.d.ts.map +1 -0
  379. package/dist/services/sandbox/types.js +674 -0
  380. package/dist/services/sandbox/types.js.map +1 -0
  381. package/dist/services/sandbox/util.d.ts +295 -0
  382. package/dist/services/sandbox/util.d.ts.map +1 -0
  383. package/dist/services/sandbox/util.js +233 -0
  384. package/dist/services/sandbox/util.js.map +1 -0
  385. package/dist/services/schedule/index.d.ts +2 -0
  386. package/dist/services/schedule/index.d.ts.map +1 -0
  387. package/dist/services/schedule/index.js +2 -0
  388. package/dist/services/schedule/index.js.map +1 -0
  389. package/dist/services/{schedule.d.ts → schedule/service.d.ts} +150 -212
  390. package/dist/services/schedule/service.d.ts.map +1 -0
  391. package/dist/services/{schedule.js → schedule/service.js} +286 -12
  392. package/dist/services/schedule/service.js.map +1 -0
  393. package/dist/services/{session.d.ts → session/events.d.ts} +5 -5
  394. package/dist/services/session/events.d.ts.map +1 -0
  395. package/dist/services/{session.js → session/events.js} +1 -1
  396. package/dist/services/session/events.js.map +1 -0
  397. package/dist/services/session/get.d.ts +170 -0
  398. package/dist/services/session/get.d.ts.map +1 -0
  399. package/dist/services/session/get.js +56 -0
  400. package/dist/services/session/get.js.map +1 -0
  401. package/dist/services/session/index.d.ts +5 -0
  402. package/dist/services/session/index.d.ts.map +1 -0
  403. package/dist/services/session/index.js +5 -0
  404. package/dist/services/session/index.js.map +1 -0
  405. package/dist/services/session/list.d.ts +150 -0
  406. package/dist/services/session/list.d.ts.map +1 -0
  407. package/dist/services/session/list.js +117 -0
  408. package/dist/services/session/list.js.map +1 -0
  409. package/dist/services/session/logs.d.ts +40 -0
  410. package/dist/services/session/logs.d.ts.map +1 -0
  411. package/dist/services/session/logs.js +28 -0
  412. package/dist/services/session/logs.js.map +1 -0
  413. package/dist/services/session/util.d.ts +23 -0
  414. package/dist/services/session/util.d.ts.map +1 -0
  415. package/dist/services/session/util.js +3 -0
  416. package/dist/services/session/util.js.map +1 -0
  417. package/dist/services/stats.d.ts +261 -0
  418. package/dist/services/stats.d.ts.map +1 -0
  419. package/dist/services/stats.js +181 -0
  420. package/dist/services/stats.js.map +1 -0
  421. package/dist/services/storage/config.d.ts +99 -0
  422. package/dist/services/storage/config.d.ts.map +1 -0
  423. package/dist/services/storage/config.js +61 -0
  424. package/dist/services/storage/config.js.map +1 -0
  425. package/dist/services/storage/index.d.ts +5 -0
  426. package/dist/services/storage/index.d.ts.map +1 -0
  427. package/dist/services/storage/index.js +5 -0
  428. package/dist/services/storage/index.js.map +1 -0
  429. package/dist/services/storage/objects.d.ts +158 -0
  430. package/dist/services/storage/objects.d.ts.map +1 -0
  431. package/dist/services/storage/objects.js +161 -0
  432. package/dist/services/storage/objects.js.map +1 -0
  433. package/dist/services/storage/types.d.ts +161 -0
  434. package/dist/services/storage/types.d.ts.map +1 -0
  435. package/dist/services/storage/types.js +141 -0
  436. package/dist/services/storage/types.js.map +1 -0
  437. package/dist/services/storage/util.d.ts +45 -0
  438. package/dist/services/storage/util.d.ts.map +1 -0
  439. package/dist/services/storage/util.js +4 -0
  440. package/dist/services/storage/util.js.map +1 -0
  441. package/dist/services/stream/get.d.ts +58 -0
  442. package/dist/services/stream/get.d.ts.map +1 -0
  443. package/dist/services/stream/get.js +40 -0
  444. package/dist/services/stream/get.js.map +1 -0
  445. package/dist/services/stream/index.d.ts +5 -0
  446. package/dist/services/stream/index.d.ts.map +1 -0
  447. package/dist/services/stream/index.js +5 -0
  448. package/dist/services/stream/index.js.map +1 -0
  449. package/dist/services/stream/list.d.ts +96 -0
  450. package/dist/services/stream/list.d.ts.map +1 -0
  451. package/dist/services/stream/list.js +92 -0
  452. package/dist/services/stream/list.js.map +1 -0
  453. package/dist/services/{stream.d.ts → stream/service.d.ts} +62 -91
  454. package/dist/services/stream/service.d.ts.map +1 -0
  455. package/dist/services/{stream.js → stream/service.js} +137 -6
  456. package/dist/services/stream/service.js.map +1 -0
  457. package/dist/services/stream/util.d.ts +23 -0
  458. package/dist/services/stream/util.d.ts.map +1 -0
  459. package/dist/services/stream/util.js +3 -0
  460. package/dist/services/stream/util.js.map +1 -0
  461. package/dist/services/task/index.d.ts +2 -0
  462. package/dist/services/task/index.d.ts.map +1 -0
  463. package/dist/services/task/index.js +2 -0
  464. package/dist/services/task/index.js.map +1 -0
  465. package/dist/services/{task.d.ts → task/service.d.ts} +591 -437
  466. package/dist/services/task/service.d.ts.map +1 -0
  467. package/dist/services/{task.js → task/service.js} +494 -4
  468. package/dist/services/task/service.js.map +1 -0
  469. package/dist/services/thread/delete.d.ts +23 -0
  470. package/dist/services/thread/delete.d.ts.map +1 -0
  471. package/dist/services/thread/delete.js +21 -0
  472. package/dist/services/thread/delete.js.map +1 -0
  473. package/dist/services/thread/get.d.ts +36 -0
  474. package/dist/services/thread/get.d.ts.map +1 -0
  475. package/dist/services/thread/get.js +23 -0
  476. package/dist/services/thread/get.js.map +1 -0
  477. package/dist/services/thread/index.d.ts +5 -0
  478. package/dist/services/thread/index.d.ts.map +1 -0
  479. package/dist/services/thread/index.js +5 -0
  480. package/dist/services/thread/index.js.map +1 -0
  481. package/dist/services/thread/list.d.ts +75 -0
  482. package/dist/services/thread/list.d.ts.map +1 -0
  483. package/dist/services/thread/list.js +65 -0
  484. package/dist/services/thread/list.js.map +1 -0
  485. package/dist/services/thread/util.d.ts +23 -0
  486. package/dist/services/thread/util.d.ts.map +1 -0
  487. package/dist/services/thread/util.js +3 -0
  488. package/dist/services/thread/util.js.map +1 -0
  489. package/dist/services/user/index.d.ts +2 -0
  490. package/dist/services/user/index.d.ts.map +1 -0
  491. package/dist/services/user/index.js +2 -0
  492. package/dist/services/user/index.js.map +1 -0
  493. package/dist/services/user/util.d.ts +23 -0
  494. package/dist/services/user/util.d.ts.map +1 -0
  495. package/dist/services/user/util.js +3 -0
  496. package/dist/services/user/util.js.map +1 -0
  497. package/dist/services/user/whoami.d.ts +39 -0
  498. package/dist/services/user/whoami.d.ts.map +1 -0
  499. package/dist/services/user/whoami.js +27 -0
  500. package/dist/services/user/whoami.js.map +1 -0
  501. package/dist/services/vector/index.d.ts +2 -0
  502. package/dist/services/vector/index.d.ts.map +1 -0
  503. package/dist/services/vector/index.js +2 -0
  504. package/dist/services/vector/index.js.map +1 -0
  505. package/dist/services/{vector.d.ts → vector/service.d.ts} +178 -217
  506. package/dist/services/vector/service.d.ts.map +1 -0
  507. package/dist/services/{vector.js → vector/service.js} +339 -13
  508. package/dist/services/vector/service.js.map +1 -0
  509. package/dist/services/webhook/deliveries.d.ts +94 -0
  510. package/dist/services/webhook/deliveries.d.ts.map +1 -0
  511. package/dist/services/webhook/deliveries.js +79 -0
  512. package/dist/services/webhook/deliveries.js.map +1 -0
  513. package/dist/services/webhook/destinations.d.ts +136 -0
  514. package/dist/services/webhook/destinations.d.ts.map +1 -0
  515. package/dist/services/webhook/destinations.js +137 -0
  516. package/dist/services/webhook/destinations.js.map +1 -0
  517. package/dist/services/webhook/index.d.ts +42 -0
  518. package/dist/services/webhook/index.d.ts.map +1 -0
  519. package/dist/services/webhook/index.js +60 -0
  520. package/dist/services/webhook/index.js.map +1 -0
  521. package/dist/services/webhook/receipts.d.ts +77 -0
  522. package/dist/services/webhook/receipts.d.ts.map +1 -0
  523. package/dist/services/webhook/receipts.js +78 -0
  524. package/dist/services/webhook/receipts.js.map +1 -0
  525. package/dist/services/{webhook.d.ts → webhook/service.d.ts} +23 -144
  526. package/dist/services/webhook/service.d.ts.map +1 -0
  527. package/dist/services/{webhook.js → webhook/service.js} +15 -17
  528. package/dist/services/webhook/service.js.map +1 -0
  529. package/dist/services/webhook/types.d.ts +103 -0
  530. package/dist/services/webhook/types.d.ts.map +1 -0
  531. package/dist/services/webhook/types.js +126 -0
  532. package/dist/services/webhook/types.js.map +1 -0
  533. package/dist/services/webhook/util.d.ts +202 -0
  534. package/dist/services/webhook/util.d.ts.map +1 -0
  535. package/dist/services/webhook/util.js +199 -0
  536. package/dist/services/webhook/util.js.map +1 -0
  537. package/dist/services/webhook/webhooks.d.ts +146 -0
  538. package/dist/services/webhook/webhooks.d.ts.map +1 -0
  539. package/dist/services/webhook/webhooks.js +165 -0
  540. package/dist/services/webhook/webhooks.js.map +1 -0
  541. package/package.json +59 -7
  542. package/src/env-example.ts +90 -0
  543. package/src/index.ts +12 -250
  544. package/src/services/adapter.ts +69 -24
  545. package/src/services/api-example.md +164 -0
  546. package/src/services/api.ts +951 -0
  547. package/src/services/apikey/create.ts +48 -0
  548. package/src/services/apikey/delete.ts +30 -0
  549. package/src/services/apikey/get.ts +48 -0
  550. package/src/services/apikey/index.ts +5 -0
  551. package/src/services/apikey/list.ts +66 -0
  552. package/src/services/apikey/util.ts +3 -0
  553. package/src/services/config.ts +65 -0
  554. package/src/services/db/index.ts +27 -0
  555. package/src/services/db/logs.ts +75 -0
  556. package/src/services/db/query.ts +69 -0
  557. package/src/services/db/tables.ts +94 -0
  558. package/src/services/db/util.ts +9 -0
  559. package/src/services/email/index.ts +1 -0
  560. package/src/services/{email.ts → email/service.ts} +172 -115
  561. package/src/services/env.ts +9 -0
  562. package/src/services/eval/get.ts +33 -0
  563. package/src/services/eval/index.ts +29 -0
  564. package/src/services/eval/list.ts +49 -0
  565. package/src/services/eval/run-get.ts +39 -0
  566. package/src/services/eval/run-list.ts +59 -0
  567. package/src/services/exception.ts +16 -7
  568. package/src/services/index.ts +29 -28
  569. package/src/services/keyvalue/index.ts +1 -0
  570. package/src/services/{keyvalue.ts → keyvalue/service.ts} +149 -95
  571. package/src/services/logger.ts +24 -0
  572. package/src/services/machine/index.ts +2 -0
  573. package/src/services/machine/machine.ts +228 -0
  574. package/src/services/machine/util.ts +5 -0
  575. package/src/services/org/env-delete.ts +37 -0
  576. package/src/services/org/env-get.ts +48 -0
  577. package/src/services/org/env-update.ts +38 -0
  578. package/src/services/org/index.ts +6 -0
  579. package/src/services/org/list.ts +28 -0
  580. package/src/services/org/resources.ts +140 -0
  581. package/src/services/org/util.ts +4 -0
  582. package/src/services/pagination.ts +40 -11
  583. package/src/services/project/agent.ts +86 -0
  584. package/src/services/project/create.ts +47 -0
  585. package/src/services/project/delete.ts +27 -0
  586. package/src/services/project/deploy.ts +433 -0
  587. package/src/services/project/deployment.ts +250 -0
  588. package/src/services/project/env-delete.ts +45 -0
  589. package/src/services/project/env-update.ts +55 -0
  590. package/src/services/project/exists.ts +58 -0
  591. package/src/services/project/get.ts +49 -0
  592. package/src/services/project/hostname.ts +79 -0
  593. package/src/services/project/index.ts +13 -0
  594. package/src/services/project/list.ts +54 -0
  595. package/src/services/project/malware.ts +85 -0
  596. package/src/services/project/update-region.ts +44 -0
  597. package/src/services/project/util.ts +8 -0
  598. package/src/services/queue/analytics.ts +343 -0
  599. package/src/services/queue/consumers.ts +56 -0
  600. package/src/services/queue/destinations.ts +329 -0
  601. package/src/services/queue/dlq.ts +243 -0
  602. package/src/services/queue/index.ts +339 -0
  603. package/src/services/queue/messages.ts +784 -0
  604. package/src/services/queue/queues.ts +460 -0
  605. package/src/services/{queue.ts → queue/service.ts} +71 -43
  606. package/src/services/queue/sources.ts +364 -0
  607. package/src/services/queue/types.ts +1656 -0
  608. package/src/services/queue/util.ts +275 -0
  609. package/src/services/queue/validation.ts +541 -0
  610. package/src/services/queue/websocket.ts +554 -0
  611. package/src/services/region/create.ts +207 -0
  612. package/src/services/region/delete.ts +57 -0
  613. package/src/services/region/index.ts +4 -0
  614. package/src/services/region/list.ts +32 -0
  615. package/src/services/region/resources.ts +69 -0
  616. package/src/services/region/util.ts +3 -0
  617. package/src/services/sandbox/cli-list.ts +117 -0
  618. package/src/services/sandbox/client.ts +435 -0
  619. package/src/services/sandbox/create.ts +249 -0
  620. package/src/services/sandbox/destroy.ts +43 -0
  621. package/src/services/sandbox/disk-checkpoint.ts +184 -0
  622. package/src/services/sandbox/execute.ts +134 -0
  623. package/src/services/sandbox/execution.ts +144 -0
  624. package/src/services/sandbox/files.ts +608 -0
  625. package/src/services/sandbox/get.ts +262 -0
  626. package/src/services/sandbox/getStatus.ts +51 -0
  627. package/src/services/sandbox/index.ts +230 -0
  628. package/src/services/sandbox/list.ts +234 -0
  629. package/src/services/sandbox/pause.ts +41 -0
  630. package/src/services/sandbox/resolve.ts +96 -0
  631. package/src/services/sandbox/resume.ts +41 -0
  632. package/src/services/sandbox/run.ts +441 -0
  633. package/src/services/sandbox/runtime.ts +106 -0
  634. package/src/services/sandbox/snapshot-build.ts +94 -0
  635. package/src/services/sandbox/snapshot.ts +791 -0
  636. package/src/services/sandbox/types.ts +799 -0
  637. package/src/services/sandbox/util.ts +279 -0
  638. package/src/services/schedule/index.ts +1 -0
  639. package/src/services/{schedule.ts → schedule/service.ts} +120 -80
  640. package/src/services/session/get.ts +108 -0
  641. package/src/services/session/index.ts +4 -0
  642. package/src/services/session/list.ts +143 -0
  643. package/src/services/session/logs.ts +47 -0
  644. package/src/services/session/util.ts +3 -0
  645. package/src/services/stats.ts +232 -0
  646. package/src/services/storage/config.ts +111 -0
  647. package/src/services/storage/index.ts +4 -0
  648. package/src/services/storage/objects.ts +256 -0
  649. package/src/services/storage/types.ts +174 -0
  650. package/src/services/storage/util.ts +4 -0
  651. package/src/services/stream/get.ts +51 -0
  652. package/src/services/stream/index.ts +14 -0
  653. package/src/services/stream/list.ts +105 -0
  654. package/src/services/{stream.ts → stream/service.ts} +78 -35
  655. package/src/services/stream/util.ts +3 -0
  656. package/src/services/task/index.ts +1 -0
  657. package/src/services/{task.ts → task/service.ts} +314 -352
  658. package/src/services/thread/delete.ts +31 -0
  659. package/src/services/thread/get.ts +34 -0
  660. package/src/services/thread/index.ts +4 -0
  661. package/src/services/thread/list.ts +81 -0
  662. package/src/services/thread/util.ts +3 -0
  663. package/src/services/user/index.ts +1 -0
  664. package/src/services/user/util.ts +3 -0
  665. package/src/services/user/whoami.ts +32 -0
  666. package/src/services/vector/index.ts +1 -0
  667. package/src/services/{vector.ts → vector/service.ts} +266 -146
  668. package/src/services/webhook/deliveries.ts +129 -0
  669. package/src/services/webhook/destinations.ts +224 -0
  670. package/src/services/webhook/index.ts +135 -0
  671. package/src/services/webhook/receipts.ts +124 -0
  672. package/src/services/{webhook.ts → webhook/service.ts} +48 -203
  673. package/src/services/webhook/types.ts +185 -0
  674. package/src/services/webhook/util.ts +234 -0
  675. package/src/services/webhook/webhooks.ts +260 -0
  676. package/dist/services/email.d.ts.map +0 -1
  677. package/dist/services/email.js.map +0 -1
  678. package/dist/services/evalrun.d.ts.map +0 -1
  679. package/dist/services/evalrun.js.map +0 -1
  680. package/dist/services/keyvalue.d.ts.map +0 -1
  681. package/dist/services/keyvalue.js.map +0 -1
  682. package/dist/services/queue.d.ts.map +0 -1
  683. package/dist/services/queue.js.map +0 -1
  684. package/dist/services/sandbox.d.ts +0 -1241
  685. package/dist/services/sandbox.d.ts.map +0 -1
  686. package/dist/services/sandbox.js +0 -6
  687. package/dist/services/sandbox.js.map +0 -1
  688. package/dist/services/schedule.d.ts.map +0 -1
  689. package/dist/services/schedule.js.map +0 -1
  690. package/dist/services/session.d.ts.map +0 -1
  691. package/dist/services/session.js.map +0 -1
  692. package/dist/services/stream.d.ts.map +0 -1
  693. package/dist/services/stream.js.map +0 -1
  694. package/dist/services/task.d.ts.map +0 -1
  695. package/dist/services/task.js.map +0 -1
  696. package/dist/services/vector.d.ts.map +0 -1
  697. package/dist/services/vector.js.map +0 -1
  698. package/dist/services/webhook.d.ts.map +0 -1
  699. package/dist/services/webhook.js.map +0 -1
  700. package/src/services/sandbox.ts +0 -1466
  701. /package/src/services/{evalrun.ts → eval/events.ts} +0 -0
  702. /package/src/services/{session.ts → session/events.ts} +0 -0
@@ -0,0 +1,75 @@
1
+ import { z } from 'zod';
2
+ import { type APIClient } from '../api.ts';
3
+ /**
4
+ * Data schema for sandbox resolve endpoint
5
+ */
6
+ export declare const SandboxResolveDataSchema: z.ZodObject<{
7
+ id: z.ZodString;
8
+ name: z.ZodNullable<z.ZodString>;
9
+ region: z.ZodString;
10
+ status: z.ZodString;
11
+ orgId: z.ZodString;
12
+ projectId: z.ZodNullable<z.ZodString>;
13
+ }, z.core.$strip>;
14
+ /**
15
+ * Response schema for sandbox resolve endpoint using standardized discriminated union
16
+ */
17
+ export declare const SandboxResolveResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
18
+ success: z.ZodLiteral<false>;
19
+ message: z.ZodString;
20
+ code: z.ZodOptional<z.ZodString>;
21
+ }, z.core.$strip>, z.ZodObject<{
22
+ success: z.ZodLiteral<true>;
23
+ data: z.ZodOptional<z.ZodObject<{
24
+ id: z.ZodString;
25
+ name: z.ZodNullable<z.ZodString>;
26
+ region: z.ZodString;
27
+ status: z.ZodString;
28
+ orgId: z.ZodString;
29
+ projectId: z.ZodNullable<z.ZodString>;
30
+ }, z.core.$strip>>;
31
+ }, z.core.$strip>], "success">;
32
+ /**
33
+ * Resolved sandbox info returned from the CLI API
34
+ */
35
+ export type ResolvedSandboxInfo = z.infer<typeof SandboxResolveDataSchema>;
36
+ /**
37
+ * Error thrown when sandbox resolution fails.
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * try {
42
+ * await sandboxResolve(client, 'sbx_123');
43
+ * } catch (error) {
44
+ * if (error._tag === 'SandboxResolveError') {
45
+ * console.error(`Sandbox not found: ${error.sandboxId}`);
46
+ * }
47
+ * }
48
+ * ```
49
+ */
50
+ export declare const SandboxResolveError: {
51
+ new (args?: ({
52
+ sandboxId?: string;
53
+ statusCode?: number;
54
+ } & {
55
+ message?: string;
56
+ cause?: unknown;
57
+ }) | undefined): import("../../error.ts").RichError & {
58
+ readonly _tag: "SandboxResolveError";
59
+ } & Readonly<{
60
+ sandboxId?: string;
61
+ statusCode?: number;
62
+ }>;
63
+ readonly defaultMessage?: string;
64
+ };
65
+ /**
66
+ * Resolve a sandbox by ID across all organizations the user has access to.
67
+ * Uses the CLI API endpoint which searches across all user's orgs.
68
+ *
69
+ * @param client - API client configured for CLI endpoints
70
+ * @param sandboxId - The sandbox ID to resolve
71
+ * @returns Resolved sandbox info including region and orgId
72
+ * @throws {SandboxResolveError} If sandbox not found or request fails
73
+ */
74
+ export declare function sandboxResolve(client: APIClient, sandboxId: string): Promise<ResolvedSandboxInfo>;
75
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/services/sandbox/resolve.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,SAAS,EAAiC,MAAM,WAAW,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;iBAYqC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;8BAA0D,CAAC;AAEpG;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE3E;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB;;oBACnB,MAAM;qBACL,MAAM;;;;;;;oBADP,MAAM;qBACL,MAAM;;;CAChB,CAAC;AAEL;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CACnC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC,CAiC9B"}
@@ -0,0 +1,76 @@
1
+ import { StructuredError } from "../../error.js";
2
+ import { z } from 'zod';
3
+ import { APIResponseSchemaOptionalData } from "../api.js";
4
+ /**
5
+ * Data schema for sandbox resolve endpoint
6
+ */
7
+ export const SandboxResolveDataSchema = z
8
+ .object({
9
+ id: z.string().describe('Unique identifier for the sandbox.'),
10
+ name: z.string().nullable().describe('Sandbox name, or null if unnamed.'),
11
+ region: z.string().describe('Cloud region where the sandbox is running.'),
12
+ status: z.string().describe('Current status of the sandbox.'),
13
+ orgId: z.string().describe('Organization ID that owns the sandbox.'),
14
+ projectId: z
15
+ .string()
16
+ .nullable()
17
+ .describe('Project ID the sandbox belongs to, or null if unassigned.'),
18
+ })
19
+ .describe('Resolved sandbox information from cross-organization lookup.');
20
+ /**
21
+ * Response schema for sandbox resolve endpoint using standardized discriminated union
22
+ */
23
+ export const SandboxResolveResponseSchema = APIResponseSchemaOptionalData(SandboxResolveDataSchema);
24
+ /**
25
+ * Error thrown when sandbox resolution fails.
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * try {
30
+ * await sandboxResolve(client, 'sbx_123');
31
+ * } catch (error) {
32
+ * if (error._tag === 'SandboxResolveError') {
33
+ * console.error(`Sandbox not found: ${error.sandboxId}`);
34
+ * }
35
+ * }
36
+ * ```
37
+ */
38
+ export const SandboxResolveError = StructuredError('SandboxResolveError')();
39
+ /**
40
+ * Resolve a sandbox by ID across all organizations the user has access to.
41
+ * Uses the CLI API endpoint which searches across all user's orgs.
42
+ *
43
+ * @param client - API client configured for CLI endpoints
44
+ * @param sandboxId - The sandbox ID to resolve
45
+ * @returns Resolved sandbox info including region and orgId
46
+ * @throws {SandboxResolveError} If sandbox not found or request fails
47
+ */
48
+ export async function sandboxResolve(client, sandboxId) {
49
+ const response = await client.get(`/cli/sandbox/${sandboxId}`, SandboxResolveResponseSchema);
50
+ if (!response.success) {
51
+ // Extract status code from error code if present (e.g., "NOT_FOUND" -> 404)
52
+ // Fall back to 404 if no code is provided
53
+ const statusCode = response.code === 'NOT_FOUND' ? 404 : response.code ? 400 : 404;
54
+ throw new SandboxResolveError({
55
+ message: response.message || 'Sandbox not found',
56
+ sandboxId,
57
+ statusCode,
58
+ });
59
+ }
60
+ if (!response.data) {
61
+ throw new SandboxResolveError({
62
+ message: 'Sandbox not found',
63
+ sandboxId,
64
+ statusCode: 404,
65
+ });
66
+ }
67
+ return {
68
+ id: response.data.id,
69
+ name: response.data.name,
70
+ region: response.data.region,
71
+ status: response.data.status,
72
+ orgId: response.data.orgId,
73
+ projectId: response.data.projectId,
74
+ };
75
+ }
76
+ //# sourceMappingURL=resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/services/sandbox/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAE1E;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACvC,MAAM,CAAC;IACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IAC7D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACzE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACzE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC7D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACpE,SAAS,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2DAA2D,CAAC;CACvE,CAAC;KACD,QAAQ,CAAC,8DAA8D,CAAC,CAAC;AAE3E;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,6BAA6B,CAAC,wBAAwB,CAAC,CAAC;AAOpG;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC,qBAAqB,CAAC,EAGrE,CAAC;AAEL;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,MAAiB,EACjB,SAAiB;IAEjB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAChC,gBAAgB,SAAS,EAAE,EAC3B,4BAA4B,CAC5B,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvB,4EAA4E;QAC5E,0CAA0C;QAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACnF,MAAM,IAAI,mBAAmB,CAAC;YAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,mBAAmB;YAChD,SAAS;YACT,UAAU;SACV,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,mBAAmB,CAAC;YAC7B,OAAO,EAAE,mBAAmB;YAC5B,SAAS;YACT,UAAU,EAAE,GAAG;SACf,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACN,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;QACpB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;QACxB,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;QAC1B,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS;KAClC,CAAC;AACH,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ import { type APIClient } from '../api.ts';
3
+ export declare const ResumeResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
4
+ success: z.ZodLiteral<false>;
5
+ message: z.ZodString;
6
+ code: z.ZodOptional<z.ZodString>;
7
+ }, z.core.$strip>, z.ZodObject<{
8
+ success: z.ZodLiteral<true>;
9
+ }, z.core.$strip>], "success">;
10
+ export declare const SandboxResumeParamsSchema: z.ZodObject<{
11
+ sandboxId: z.ZodString;
12
+ orgId: z.ZodOptional<z.ZodString>;
13
+ }, z.core.$strip>;
14
+ export type SandboxResumeParams = z.infer<typeof SandboxResumeParamsSchema>;
15
+ /**
16
+ * Resumes a paused sandbox from its checkpoint.
17
+ *
18
+ * @param client - The API client to use for the request
19
+ * @param params - Parameters including the sandbox ID to resume
20
+ * @throws {SandboxResponseError} If the sandbox is not found or resume fails
21
+ */
22
+ export declare function sandboxResume(client: APIClient, params: SandboxResumeParams): Promise<void>;
23
+ //# sourceMappingURL=resume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../../src/services/sandbox/resume.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,SAAS,EAA2B,MAAM,WAAW,CAAC;AAGpE,eAAO,MAAM,oBAAoB;;;;;;8BAA4B,CAAC;AAE9D,eAAO,MAAM,yBAAyB;;;iBAGpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBjG"}
@@ -0,0 +1,30 @@
1
+ import { z } from 'zod';
2
+ import { APIResponseSchemaNoData } from "../api.js";
3
+ import { throwSandboxError } from "./util.js";
4
+ export const ResumeResponseSchema = APIResponseSchemaNoData();
5
+ export const SandboxResumeParamsSchema = z.object({
6
+ sandboxId: z.string().describe('Sandbox ID to resume'),
7
+ orgId: z.string().optional().describe('Optional org id for CLI auth context'),
8
+ });
9
+ /**
10
+ * Resumes a paused sandbox from its checkpoint.
11
+ *
12
+ * @param client - The API client to use for the request
13
+ * @param params - Parameters including the sandbox ID to resume
14
+ * @throws {SandboxResponseError} If the sandbox is not found or resume fails
15
+ */
16
+ export async function sandboxResume(client, params) {
17
+ const { sandboxId, orgId } = params;
18
+ const queryParams = new URLSearchParams();
19
+ if (orgId) {
20
+ queryParams.set('orgId', orgId);
21
+ }
22
+ const queryString = queryParams.toString();
23
+ const url = `/sandbox/${encodeURIComponent(sandboxId)}/resume${queryString ? `?${queryString}` : ''}`;
24
+ const resp = await client.post(url, undefined, ResumeResponseSchema);
25
+ if (resp.success) {
26
+ return;
27
+ }
28
+ throwSandboxError(resp, { sandboxId });
29
+ }
30
+ //# sourceMappingURL=resume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../src/services/sandbox/resume.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAC;AAE9D,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACtD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CAC7E,CAAC,CAAC;AAIH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAiB,EAAE,MAA2B;IACjF,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC;QACX,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC3C,MAAM,GAAG,GAAG,YAAY,kBAAkB,CAAC,SAAS,CAAC,UAAU,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEtG,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC7B,GAAG,EACH,SAAS,EACT,oBAAoB,CACpB,CAAC;IAEF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO;IACR,CAAC;IAED,iBAAiB,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,71 @@
1
+ import type { Logger } from '../../logger.ts';
2
+ import type { Readable, Writable } from 'node:stream';
3
+ import { z } from 'zod';
4
+ import { APIClient } from '../api.ts';
5
+ import { type SandboxRunResult } from './types.ts';
6
+ export declare const SandboxRunParamsSchema: z.ZodObject<{
7
+ options: z.ZodObject<{
8
+ name: z.ZodOptional<z.ZodString>;
9
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
10
+ projectId: z.ZodOptional<z.ZodString>;
11
+ description: z.ZodOptional<z.ZodString>;
12
+ stream: z.ZodOptional<z.ZodObject<{
13
+ stdout: z.ZodOptional<z.ZodString>;
14
+ stderr: z.ZodOptional<z.ZodString>;
15
+ stdin: z.ZodOptional<z.ZodString>;
16
+ timestamps: z.ZodOptional<z.ZodBoolean>;
17
+ }, z.core.$strip>>;
18
+ resources: z.ZodOptional<z.ZodObject<{
19
+ memory: z.ZodOptional<z.ZodString>;
20
+ cpu: z.ZodOptional<z.ZodString>;
21
+ disk: z.ZodOptional<z.ZodString>;
22
+ }, z.core.$strip>>;
23
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
24
+ timeout: z.ZodOptional<z.ZodObject<{
25
+ idle: z.ZodOptional<z.ZodString>;
26
+ execution: z.ZodOptional<z.ZodString>;
27
+ }, z.core.$strip>>;
28
+ dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
29
+ files: z.ZodOptional<z.ZodArray<z.ZodObject<{
30
+ path: z.ZodString;
31
+ content: z.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>;
32
+ }, z.core.$strip>>>;
33
+ runtime: z.ZodOptional<z.ZodString>;
34
+ runtimeId: z.ZodOptional<z.ZodString>;
35
+ network: z.ZodOptional<z.ZodObject<{
36
+ enabled: z.ZodOptional<z.ZodBoolean>;
37
+ port: z.ZodOptional<z.ZodNumber>;
38
+ }, z.core.$strip>>;
39
+ snapshot: z.ZodOptional<z.ZodString>;
40
+ packages: z.ZodOptional<z.ZodArray<z.ZodString>>;
41
+ command: z.ZodObject<{
42
+ exec: z.ZodArray<z.ZodString>;
43
+ files: z.ZodOptional<z.ZodArray<z.ZodObject<{
44
+ path: z.ZodString;
45
+ content: z.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>;
46
+ }, z.core.$strip>>>;
47
+ }, z.core.$strip>;
48
+ }, z.core.$strip>;
49
+ orgId: z.ZodOptional<z.ZodString>;
50
+ region: z.ZodOptional<z.ZodString>;
51
+ apiKey: z.ZodOptional<z.ZodString>;
52
+ signal: z.ZodOptional<z.ZodCustom<AbortSignal, AbortSignal>>;
53
+ stdin: z.ZodOptional<z.ZodCustom<Readable, Readable>>;
54
+ stdout: z.ZodOptional<z.ZodCustom<Writable, Writable>>;
55
+ stderr: z.ZodOptional<z.ZodCustom<Writable, Writable>>;
56
+ logger: z.ZodOptional<z.ZodCustom<Logger, Logger>>;
57
+ }, z.core.$strip>;
58
+ export type SandboxRunParams = z.infer<typeof SandboxRunParamsSchema>;
59
+ /**
60
+ * Creates a sandbox, executes a command, and waits for completion.
61
+ *
62
+ * This is a high-level convenience function that handles the full lifecycle:
63
+ * creating a sandbox, streaming I/O, polling for completion, and cleanup.
64
+ *
65
+ * @param client - The API client to use for the request
66
+ * @param params - Parameters including command options, I/O streams, and timeout settings
67
+ * @returns The run result including exit code and duration
68
+ * @throws {SandboxResponseError} If sandbox creation fails, execution times out, or is cancelled
69
+ */
70
+ export declare function sandboxRun(client: APIClient, params: SandboxRunParams): Promise<SandboxRunResult>;
71
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/services/sandbox/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAwB,MAAM,WAAW,CAAC;AAK5D,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA+B5E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAC/B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CA0M3B"}
@@ -0,0 +1,355 @@
1
+ import { PassThrough } from 'node:stream';
2
+ import { z } from 'zod';
3
+ import { PaymentRequiredError } from "../api.js";
4
+ import { sandboxCreate } from "./create.js";
5
+ import { sandboxDestroy } from "./destroy.js";
6
+ import { sandboxGetStatus } from "./getStatus.js";
7
+ import { ExecutionCancelledError, writeAndDrain } from "./util.js";
8
+ import { SandboxRunOptionsSchema } from "./types.js";
9
+ import { getServiceUrls } from "../config.js";
10
+ const timingLogsEnabled = false;
11
+ /**
12
+ * Creates a Writable stream that captures all chunks to a buffer array
13
+ * and optionally tees (forwards) them to one or more user-provided streams.
14
+ *
15
+ * @param chunks - Array to collect Buffer chunks into
16
+ * @param userStreams - Optional user-provided Writable stream(s) to forward chunks to
17
+ * @returns A Writable stream that captures and optionally forwards data
18
+ */
19
+ function createTeeWritable(chunks, ...userStreams) {
20
+ const tee = new PassThrough();
21
+ // Always capture chunks to the buffer
22
+ tee.on('data', (chunk) => {
23
+ chunks.push(chunk);
24
+ });
25
+ // Pipe to all provided user streams with proper backpressure handling
26
+ for (const userStream of userStreams) {
27
+ if (userStream) {
28
+ tee.pipe(userStream, { end: false });
29
+ }
30
+ }
31
+ return tee;
32
+ }
33
+ export const SandboxRunParamsSchema = z.object({
34
+ options: SandboxRunOptionsSchema.describe('sandbox run options'),
35
+ orgId: z.string().optional().describe('organization id'),
36
+ region: z.string().optional().describe('region id'),
37
+ apiKey: z.string().optional().describe('api key'),
38
+ signal: z.custom().optional().describe('abort signal'),
39
+ stdin: z.custom().optional().describe('stdin readable stream'),
40
+ stdout: z.custom().optional().describe('stdout writable stream'),
41
+ stderr: z.custom().optional().describe('stderr writable stream'),
42
+ logger: z.custom().optional().describe('logger instance'),
43
+ });
44
+ /**
45
+ * Creates a sandbox, executes a command, and waits for completion.
46
+ *
47
+ * This is a high-level convenience function that handles the full lifecycle:
48
+ * creating a sandbox, streaming I/O, polling for completion, and cleanup.
49
+ *
50
+ * @param client - The API client to use for the request
51
+ * @param params - Parameters including command options, I/O streams, and timeout settings
52
+ * @returns The run result including exit code and duration
53
+ * @throws {SandboxResponseError} If sandbox creation fails, execution times out, or is cancelled
54
+ */
55
+ export async function sandboxRun(client, params) {
56
+ const { options, orgId, region, apiKey, signal, stdin, stdout, stderr, logger } = params;
57
+ const started = Date.now();
58
+ if (timingLogsEnabled)
59
+ console.error(`[TIMING] +0ms: sandbox run started`);
60
+ let stdinStreamId;
61
+ let stdinStreamUrl;
62
+ // If stdin is provided and has data, create a stream for it
63
+ if (stdin && region && apiKey) {
64
+ const streamResult = await createStdinStream(region, apiKey, orgId, logger);
65
+ stdinStreamId = streamResult.id;
66
+ stdinStreamUrl = streamResult.url;
67
+ logger?.debug('created stdin stream: %s', stdinStreamId);
68
+ }
69
+ const createResponse = await sandboxCreate(client, {
70
+ options: {
71
+ ...options,
72
+ command: {
73
+ exec: options.command.exec,
74
+ files: options.command.files,
75
+ mode: 'oneshot',
76
+ },
77
+ stream: {
78
+ ...options.stream,
79
+ stdin: stdinStreamId,
80
+ },
81
+ },
82
+ orgId,
83
+ });
84
+ const sandboxId = createResponse.sandboxId;
85
+ const stdoutStreamUrl = createResponse.stdoutStreamUrl;
86
+ const stderrStreamUrl = createResponse.stderrStreamUrl;
87
+ logger?.debug('sandbox created: %s, stdoutUrl: %s, stderrUrl: %s', sandboxId, stdoutStreamUrl ?? 'none', stderrStreamUrl ?? 'none');
88
+ if (timingLogsEnabled)
89
+ console.error(`[TIMING] +${Date.now() - started}ms: sandbox created (${sandboxId})`);
90
+ const abortController = new AbortController();
91
+ const streamPromises = [];
92
+ // Create capture buffers for stdout/stderr
93
+ const stdoutChunks = [];
94
+ const stderrChunks = [];
95
+ try {
96
+ // Start stdin streaming if we have stdin and a stream URL
97
+ if (stdin && stdinStreamUrl && apiKey) {
98
+ const stdinPromise = streamStdinToUrl(stdin, stdinStreamUrl, apiKey, abortController.signal, logger);
99
+ streamPromises.push(stdinPromise);
100
+ }
101
+ // Check if stdout and stderr are the same stream (combined output)
102
+ const isCombinedOutput = stdoutStreamUrl && stderrStreamUrl && stdoutStreamUrl === stderrStreamUrl;
103
+ if (isCombinedOutput) {
104
+ // Stream combined output to stdout only to avoid duplicates
105
+ if (stdoutStreamUrl) {
106
+ logger?.debug('using combined output stream (stdout === stderr)');
107
+ const teeStream = createTeeWritable(stdoutChunks, stdout);
108
+ const combinedPromise = streamUrlToWritable(stdoutStreamUrl, teeStream, abortController.signal, logger, started);
109
+ streamPromises.push(combinedPromise);
110
+ }
111
+ }
112
+ else {
113
+ // Start stdout streaming with capture
114
+ if (stdoutStreamUrl) {
115
+ const teeStream = createTeeWritable(stdoutChunks, stdout);
116
+ const stdoutPromise = streamUrlToWritable(stdoutStreamUrl, teeStream, abortController.signal, logger, started);
117
+ streamPromises.push(stdoutPromise);
118
+ }
119
+ // Start stderr streaming with capture
120
+ if (stderrStreamUrl) {
121
+ const teeStream = createTeeWritable(stderrChunks, stderr);
122
+ const stderrPromise = streamUrlToWritable(stderrStreamUrl, teeStream, abortController.signal, logger, started);
123
+ streamPromises.push(stderrPromise);
124
+ }
125
+ }
126
+ // Wait for streams to complete — Pulse closes streams on sandbox termination (EOF).
127
+ // This is our primary completion signal; no polling needed.
128
+ logger?.debug('waiting for streams to complete...');
129
+ if (streamPromises.length > 0) {
130
+ if (signal) {
131
+ // Race streams against abort signal, cleaning up the listener
132
+ // in all cases so an orphaned reject cannot fire after settlement.
133
+ let onAbort;
134
+ try {
135
+ await Promise.race([
136
+ Promise.allSettled(streamPromises),
137
+ new Promise((_, reject) => {
138
+ onAbort = () => {
139
+ abortController.abort();
140
+ reject(new ExecutionCancelledError({
141
+ message: 'Sandbox execution cancelled',
142
+ sandboxId,
143
+ }));
144
+ };
145
+ if (signal.aborted) {
146
+ onAbort();
147
+ }
148
+ else {
149
+ signal.addEventListener('abort', onAbort, { once: true });
150
+ }
151
+ }),
152
+ ]);
153
+ }
154
+ finally {
155
+ if (onAbort && signal) {
156
+ signal.removeEventListener('abort', onAbort);
157
+ }
158
+ }
159
+ }
160
+ else {
161
+ await Promise.allSettled(streamPromises);
162
+ }
163
+ }
164
+ else {
165
+ // No streams available (shouldn't happen for oneshot, but handle defensively).
166
+ // Fall back to a single wait then check.
167
+ logger?.debug('no streams to wait on, checking sandbox status directly');
168
+ }
169
+ if (timingLogsEnabled)
170
+ console.error(`[TIMING] +${Date.now() - started}ms: all streams done, fetching exit code`);
171
+ logger?.debug('streams completed, fetching final status');
172
+ // Stream EOF means the sandbox is done — hadron only closes streams after the
173
+ // container exits. Fetch status once for the exit code; if lifecycle events
174
+ // haven't propagated to Catalyst yet, default to exit code 0.
175
+ let exitCode = 0;
176
+ try {
177
+ const sandboxStatus = await sandboxGetStatus(client, { sandboxId, orgId });
178
+ if (sandboxStatus.exitCode != null) {
179
+ exitCode = sandboxStatus.exitCode;
180
+ }
181
+ else if (sandboxStatus.status === 'failed') {
182
+ exitCode = 1;
183
+ }
184
+ }
185
+ catch {
186
+ // Sandbox may already be destroyed (fire-and-forget teardown).
187
+ // Stream EOF already confirmed execution completed.
188
+ logger?.debug('sandboxGetStatus failed after stream EOF, using default exit code 0');
189
+ }
190
+ if (timingLogsEnabled)
191
+ console.error(`[TIMING] +${Date.now() - started}ms: sandboxGet complete (exit: ${exitCode})`);
192
+ // Build captured output strings
193
+ const capturedStdout = Buffer.concat(stdoutChunks).toString('utf-8');
194
+ const capturedStderr = isCombinedOutput
195
+ ? capturedStdout
196
+ : Buffer.concat(stderrChunks).toString('utf-8');
197
+ return {
198
+ sandboxId,
199
+ exitCode,
200
+ durationMs: Date.now() - started,
201
+ stdout: capturedStdout,
202
+ stderr: capturedStderr,
203
+ };
204
+ }
205
+ catch (error) {
206
+ abortController.abort();
207
+ try {
208
+ await sandboxDestroy(client, { sandboxId, orgId });
209
+ }
210
+ catch {
211
+ // Ignore cleanup errors
212
+ }
213
+ throw error;
214
+ }
215
+ }
216
+ async function createStdinStream(region, apiKey, orgId, logger) {
217
+ const urls = getServiceUrls(region);
218
+ const streamBaseUrl = urls.stream;
219
+ // Build URL with orgId query param for CLI token validation
220
+ const queryParams = new URLSearchParams();
221
+ if (orgId) {
222
+ queryParams.set('orgId', orgId);
223
+ }
224
+ const queryString = queryParams.toString();
225
+ const url = `${streamBaseUrl}${queryString ? `?${queryString}` : ''}`;
226
+ logger?.trace('creating stdin stream: %s', url);
227
+ const response = await fetch(url, {
228
+ method: 'POST',
229
+ headers: {
230
+ 'Content-Type': 'application/json',
231
+ Authorization: `Bearer ${apiKey}`,
232
+ },
233
+ body: JSON.stringify({
234
+ name: `sandbox-stdin-${Date.now()}`,
235
+ }),
236
+ });
237
+ if (!response.ok) {
238
+ if (response.status === 402) {
239
+ throw new PaymentRequiredError({
240
+ url: url,
241
+ });
242
+ }
243
+ throw new Error(`Failed to create stdin stream: ${response.status} ${response.statusText}`);
244
+ }
245
+ const data = (await response.json());
246
+ logger?.debug('created stdin stream: %s', data.id);
247
+ // Include orgId in the URL for subsequent PUT requests (needed for CLI token auth)
248
+ const putQueryString = orgId ? `?orgId=${encodeURIComponent(orgId)}` : '';
249
+ return {
250
+ id: data.id,
251
+ url: `${streamBaseUrl}/${data.id}${putQueryString}`,
252
+ };
253
+ }
254
+ async function streamStdinToUrl(stdin, url, apiKey, signal, logger) {
255
+ try {
256
+ logger?.debug('streaming stdin to: %s', url);
257
+ // Convert Node.js Readable to a web ReadableStream for fetch body
258
+ let controllerClosed = false;
259
+ const webStream = new ReadableStream({
260
+ start(controller) {
261
+ stdin.on('data', (chunk) => {
262
+ if (!signal.aborted && !controllerClosed) {
263
+ controller.enqueue(chunk);
264
+ }
265
+ });
266
+ stdin.on('end', () => {
267
+ if (!controllerClosed) {
268
+ controllerClosed = true;
269
+ controller.close();
270
+ }
271
+ });
272
+ stdin.on('error', (err) => {
273
+ if (!controllerClosed) {
274
+ controllerClosed = true;
275
+ controller.error(err);
276
+ }
277
+ });
278
+ signal.addEventListener('abort', () => {
279
+ if (!controllerClosed) {
280
+ controllerClosed = true;
281
+ controller.close();
282
+ }
283
+ });
284
+ },
285
+ });
286
+ const response = await fetch(url, {
287
+ method: 'PUT',
288
+ headers: {
289
+ Authorization: `Bearer ${apiKey}`,
290
+ },
291
+ body: webStream,
292
+ signal,
293
+ duplex: 'half',
294
+ });
295
+ if (!response.ok) {
296
+ logger?.debug('stdin stream PUT failed: %d', response.status);
297
+ }
298
+ else {
299
+ logger?.debug('stdin stream completed');
300
+ }
301
+ }
302
+ catch (err) {
303
+ if (err instanceof Error && err.name === 'AbortError') {
304
+ logger?.debug('stdin stream aborted (expected on completion)');
305
+ }
306
+ else {
307
+ logger?.debug('stdin stream error: %s', err);
308
+ }
309
+ }
310
+ }
311
+ async function streamUrlToWritable(url, writable, signal, logger, started) {
312
+ try {
313
+ logger?.debug('fetching stream: %s', url);
314
+ const response = await fetch(url, { signal });
315
+ logger?.debug('stream response status: %d', response.status);
316
+ if (timingLogsEnabled && started)
317
+ console.error(`[TIMING] +${Date.now() - started}ms: stream response received (status: ${response.status})`);
318
+ if (!response.ok || !response.body) {
319
+ logger?.debug('stream response not ok or no body');
320
+ return;
321
+ }
322
+ const reader = response.body.getReader();
323
+ let firstChunk = true;
324
+ // Read until EOF - Pulse will block until data is available
325
+ while (true) {
326
+ const { done, value } = await reader.read();
327
+ if (done) {
328
+ logger?.debug('stream EOF');
329
+ if (timingLogsEnabled && started)
330
+ console.error(`[TIMING] +${Date.now() - started}ms: stream EOF`);
331
+ break;
332
+ }
333
+ if (value) {
334
+ if (firstChunk && started) {
335
+ if (timingLogsEnabled)
336
+ console.error(`[TIMING] +${Date.now() - started}ms: first chunk (${value.length} bytes)`);
337
+ firstChunk = false;
338
+ }
339
+ logger?.debug('stream chunk: %d bytes', value.length);
340
+ await writeAndDrain(writable, value);
341
+ }
342
+ }
343
+ // Signal end-of-stream to the tee/pipe chain so downstream
344
+ // consumers (e.g. process.stdout pipe) know no more data is coming.
345
+ writable.end();
346
+ }
347
+ catch (err) {
348
+ if (err instanceof Error && err.name === 'AbortError') {
349
+ logger?.debug('stream aborted');
350
+ return;
351
+ }
352
+ logger?.debug('stream error: %s', err);
353
+ }
354
+ }
355
+ //# sourceMappingURL=run.js.map