@boxrouter/sdk 0.0.0-stage → 0.12.190

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 (343) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +40 -0
  3. package/README.md +508 -2
  4. package/dist/addresses.d.ts +5 -0
  5. package/dist/addresses.js +10 -0
  6. package/dist/api-error.d.ts +62 -0
  7. package/dist/api-error.js +264 -0
  8. package/dist/boxrouter.d.ts +68 -0
  9. package/dist/boxrouter.js +291 -0
  10. package/dist/browser-session/index.d.ts +17 -0
  11. package/dist/browser-session/index.js +48 -0
  12. package/dist/browser-session/operations.gen.d.ts +272 -0
  13. package/dist/browser-session/operations.gen.js +58 -0
  14. package/dist/browser-session/responseContracts/api_keys.d.ts +2 -0
  15. package/dist/browser-session/responseContracts/api_keys.js +10 -0
  16. package/dist/browser-session/responseContracts/credits.d.ts +2 -0
  17. package/dist/browser-session/responseContracts/credits.js +8 -0
  18. package/dist/browser-session/responseContracts/github.d.ts +2 -0
  19. package/dist/browser-session/responseContracts/github.js +11 -0
  20. package/dist/browser-session/responseContracts/identity.d.ts +2 -0
  21. package/dist/browser-session/responseContracts/identity.js +30 -0
  22. package/dist/browser-session/responseContracts/organizations.d.ts +2 -0
  23. package/dist/browser-session/responseContracts/organizations.js +17 -0
  24. package/dist/browser-session/responseContracts/privacy.d.ts +2 -0
  25. package/dist/browser-session/responseContracts/privacy.js +7 -0
  26. package/dist/browser-session/responseContracts.gen.d.ts +3 -0
  27. package/dist/browser-session/responseContracts.gen.js +10 -0
  28. package/dist/browser-session/responseValidators/api_keys-diagnostics.cjs +1 -0
  29. package/dist/browser-session/responseValidators/api_keys-diagnostics.d.cts +4 -0
  30. package/dist/browser-session/responseValidators/api_keys.cjs +2 -0
  31. package/dist/browser-session/responseValidators/api_keys.d.cts +4 -0
  32. package/dist/browser-session/responseValidators/credits-diagnostics.cjs +1 -0
  33. package/dist/browser-session/responseValidators/credits-diagnostics.d.cts +3 -0
  34. package/dist/browser-session/responseValidators/credits.cjs +2 -0
  35. package/dist/browser-session/responseValidators/credits.d.cts +3 -0
  36. package/dist/browser-session/responseValidators/github-diagnostics.cjs +1 -0
  37. package/dist/browser-session/responseValidators/github-diagnostics.d.cts +3 -0
  38. package/dist/browser-session/responseValidators/github.cjs +2 -0
  39. package/dist/browser-session/responseValidators/github.d.cts +3 -0
  40. package/dist/browser-session/responseValidators/identity-diagnostics.cjs +1 -0
  41. package/dist/browser-session/responseValidators/identity-diagnostics.d.cts +23 -0
  42. package/dist/browser-session/responseValidators/identity.cjs +2 -0
  43. package/dist/browser-session/responseValidators/identity.d.cts +23 -0
  44. package/dist/browser-session/responseValidators/organizations-diagnostics.cjs +1 -0
  45. package/dist/browser-session/responseValidators/organizations-diagnostics.d.cts +15 -0
  46. package/dist/browser-session/responseValidators/organizations.cjs +2 -0
  47. package/dist/browser-session/responseValidators/organizations.d.cts +15 -0
  48. package/dist/browser-session/responseValidators/privacy-diagnostics.cjs +1 -0
  49. package/dist/browser-session/responseValidators/privacy-diagnostics.d.cts +2 -0
  50. package/dist/browser-session/responseValidators/privacy.cjs +2 -0
  51. package/dist/browser-session/responseValidators/privacy.d.cts +2 -0
  52. package/dist/client/client.gen.d.ts +2 -0
  53. package/dist/client/client.gen.js +168 -0
  54. package/dist/client/index.d.ts +10 -0
  55. package/dist/client/index.js +17 -0
  56. package/dist/client/types.gen.d.ts +120 -0
  57. package/dist/client/types.gen.js +3 -0
  58. package/dist/client/utils.gen.d.ts +37 -0
  59. package/dist/client/utils.gen.js +239 -0
  60. package/dist/client.gen.d.ts +12 -0
  61. package/dist/client.gen.js +6 -0
  62. package/dist/command-check.gen.d.ts +14 -0
  63. package/dist/command-check.gen.js +23 -0
  64. package/dist/command-input.gen.d.ts +6 -0
  65. package/dist/command-input.gen.js +45 -0
  66. package/dist/core/auth.gen.d.ts +25 -0
  67. package/dist/core/auth.gen.js +18 -0
  68. package/dist/core/binaryStream.d.ts +8 -0
  69. package/dist/core/binaryStream.js +76 -0
  70. package/dist/core/bodySerializer.gen.d.ts +25 -0
  71. package/dist/core/bodySerializer.gen.js +60 -0
  72. package/dist/core/commandValidators.cjs +1 -0
  73. package/dist/core/commandValidators.d.cts +14 -0
  74. package/dist/core/eventValidation.d.ts +17 -0
  75. package/dist/core/eventValidation.js +56 -0
  76. package/dist/core/eventValidators.cjs +1 -0
  77. package/dist/core/eventValidators.d.cts +2 -0
  78. package/dist/core/json.d.ts +3 -0
  79. package/dist/core/json.js +33 -0
  80. package/dist/core/params.gen.d.ts +43 -0
  81. package/dist/core/params.gen.js +112 -0
  82. package/dist/core/pathSerializer.gen.d.ts +33 -0
  83. package/dist/core/pathSerializer.gen.js +115 -0
  84. package/dist/core/queryKeySerializer.gen.d.ts +18 -0
  85. package/dist/core/queryKeySerializer.gen.js +98 -0
  86. package/dist/core/responseContracts/actions.d.ts +2 -0
  87. package/dist/core/responseContracts/actions.js +30 -0
  88. package/dist/core/responseContracts/agents.d.ts +2 -0
  89. package/dist/core/responseContracts/agents.js +7 -0
  90. package/dist/core/responseContracts/artifacts.d.ts +2 -0
  91. package/dist/core/responseContracts/artifacts.js +8 -0
  92. package/dist/core/responseContracts/commands.d.ts +2 -0
  93. package/dist/core/responseContracts/commands.js +6 -0
  94. package/dist/core/responseContracts/credits.d.ts +2 -0
  95. package/dist/core/responseContracts/credits.js +27 -0
  96. package/dist/core/responseContracts/files.d.ts +2 -0
  97. package/dist/core/responseContracts/files.js +15 -0
  98. package/dist/core/responseContracts/github.d.ts +2 -0
  99. package/dist/core/responseContracts/github.js +8 -0
  100. package/dist/core/responseContracts/images.d.ts +2 -0
  101. package/dist/core/responseContracts/images.js +8 -0
  102. package/dist/core/responseContracts/launchRuns.d.ts +2 -0
  103. package/dist/core/responseContracts/launchRuns.js +10 -0
  104. package/dist/core/responseContracts/launches.d.ts +2 -0
  105. package/dist/core/responseContracts/launches.js +10 -0
  106. package/dist/core/responseContracts/operations.d.ts +2 -0
  107. package/dist/core/responseContracts/operations.js +7 -0
  108. package/dist/core/responseContracts/previews.d.ts +2 -0
  109. package/dist/core/responseContracts/previews.js +8 -0
  110. package/dist/core/responseContracts/pricing.d.ts +2 -0
  111. package/dist/core/responseContracts/pricing.js +6 -0
  112. package/dist/core/responseContracts/processes.d.ts +2 -0
  113. package/dist/core/responseContracts/processes.js +11 -0
  114. package/dist/core/responseContracts/provider_accounts.d.ts +2 -0
  115. package/dist/core/responseContracts/provider_accounts.js +13 -0
  116. package/dist/core/responseContracts/providers.d.ts +2 -0
  117. package/dist/core/responseContracts/providers.js +6 -0
  118. package/dist/core/responseContracts/routing.d.ts +2 -0
  119. package/dist/core/responseContracts/routing.js +8 -0
  120. package/dist/core/responseContracts/sandboxes.d.ts +2 -0
  121. package/dist/core/responseContracts/sandboxes.js +15 -0
  122. package/dist/core/responseContracts/secrets.d.ts +2 -0
  123. package/dist/core/responseContracts/secrets.js +8 -0
  124. package/dist/core/responseContracts/spend_limits.d.ts +2 -0
  125. package/dist/core/responseContracts/spend_limits.js +8 -0
  126. package/dist/core/responseContracts/terminals.d.ts +2 -0
  127. package/dist/core/responseContracts/terminals.js +11 -0
  128. package/dist/core/responseContracts/usage.d.ts +2 -0
  129. package/dist/core/responseContracts/usage.js +7 -0
  130. package/dist/core/responseContracts/volumes.d.ts +2 -0
  131. package/dist/core/responseContracts/volumes.js +19 -0
  132. package/dist/core/responseContracts.gen.d.ts +3 -0
  133. package/dist/core/responseContracts.gen.js +27 -0
  134. package/dist/core/responseModes.d.ts +19 -0
  135. package/dist/core/responseModes.js +13 -0
  136. package/dist/core/responseValidation.d.ts +44 -0
  137. package/dist/core/responseValidation.js +174 -0
  138. package/dist/core/responseValidators/actions-diagnostics.cjs +4 -0
  139. package/dist/core/responseValidators/actions-diagnostics.d.cts +24 -0
  140. package/dist/core/responseValidators/actions.cjs +2 -0
  141. package/dist/core/responseValidators/actions.d.cts +24 -0
  142. package/dist/core/responseValidators/agents-diagnostics.cjs +1 -0
  143. package/dist/core/responseValidators/agents-diagnostics.d.cts +2 -0
  144. package/dist/core/responseValidators/agents.cjs +2 -0
  145. package/dist/core/responseValidators/agents.d.cts +2 -0
  146. package/dist/core/responseValidators/artifacts-diagnostics.cjs +1 -0
  147. package/dist/core/responseValidators/artifacts-diagnostics.d.cts +2 -0
  148. package/dist/core/responseValidators/artifacts.cjs +2 -0
  149. package/dist/core/responseValidators/artifacts.d.cts +2 -0
  150. package/dist/core/responseValidators/commands-diagnostics.cjs +1 -0
  151. package/dist/core/responseValidators/commands-diagnostics.d.cts +1 -0
  152. package/dist/core/responseValidators/commands.cjs +2 -0
  153. package/dist/core/responseValidators/commands.d.cts +1 -0
  154. package/dist/core/responseValidators/compact.cjs +122 -0
  155. package/dist/core/responseValidators/credits-diagnostics.cjs +1 -0
  156. package/dist/core/responseValidators/credits-diagnostics.d.cts +21 -0
  157. package/dist/core/responseValidators/credits.cjs +2 -0
  158. package/dist/core/responseValidators/credits.d.cts +21 -0
  159. package/dist/core/responseValidators/files-diagnostics.cjs +1 -0
  160. package/dist/core/responseValidators/files-diagnostics.d.cts +5 -0
  161. package/dist/core/responseValidators/files.cjs +2 -0
  162. package/dist/core/responseValidators/files.d.cts +5 -0
  163. package/dist/core/responseValidators/github-diagnostics.cjs +1 -0
  164. package/dist/core/responseValidators/github-diagnostics.d.cts +2 -0
  165. package/dist/core/responseValidators/github.cjs +2 -0
  166. package/dist/core/responseValidators/github.d.cts +2 -0
  167. package/dist/core/responseValidators/images-diagnostics.cjs +1 -0
  168. package/dist/core/responseValidators/images-diagnostics.d.cts +3 -0
  169. package/dist/core/responseValidators/images.cjs +2 -0
  170. package/dist/core/responseValidators/images.d.cts +3 -0
  171. package/dist/core/responseValidators/launchRuns-diagnostics.cjs +1 -0
  172. package/dist/core/responseValidators/launchRuns-diagnostics.d.cts +5 -0
  173. package/dist/core/responseValidators/launchRuns.cjs +2 -0
  174. package/dist/core/responseValidators/launchRuns.d.cts +5 -0
  175. package/dist/core/responseValidators/launches-diagnostics.cjs +10 -0
  176. package/dist/core/responseValidators/launches-diagnostics.d.cts +5 -0
  177. package/dist/core/responseValidators/launches.cjs +2 -0
  178. package/dist/core/responseValidators/launches.d.cts +5 -0
  179. package/dist/core/responseValidators/operations-diagnostics.cjs +1 -0
  180. package/dist/core/responseValidators/operations-diagnostics.d.cts +2 -0
  181. package/dist/core/responseValidators/operations.cjs +2 -0
  182. package/dist/core/responseValidators/operations.d.cts +2 -0
  183. package/dist/core/responseValidators/previews-diagnostics.cjs +1 -0
  184. package/dist/core/responseValidators/previews-diagnostics.d.cts +3 -0
  185. package/dist/core/responseValidators/previews.cjs +2 -0
  186. package/dist/core/responseValidators/previews.d.cts +3 -0
  187. package/dist/core/responseValidators/pricing-diagnostics.cjs +7 -0
  188. package/dist/core/responseValidators/pricing-diagnostics.d.cts +1 -0
  189. package/dist/core/responseValidators/pricing.cjs +2 -0
  190. package/dist/core/responseValidators/pricing.d.cts +1 -0
  191. package/dist/core/responseValidators/processes-diagnostics.cjs +1 -0
  192. package/dist/core/responseValidators/processes-diagnostics.d.cts +2 -0
  193. package/dist/core/responseValidators/processes.cjs +2 -0
  194. package/dist/core/responseValidators/processes.d.cts +2 -0
  195. package/dist/core/responseValidators/provider_accounts-diagnostics.cjs +1 -0
  196. package/dist/core/responseValidators/provider_accounts-diagnostics.d.cts +8 -0
  197. package/dist/core/responseValidators/provider_accounts.cjs +2 -0
  198. package/dist/core/responseValidators/provider_accounts.d.cts +8 -0
  199. package/dist/core/responseValidators/providers-diagnostics.cjs +1 -0
  200. package/dist/core/responseValidators/providers-diagnostics.d.cts +1 -0
  201. package/dist/core/responseValidators/providers.cjs +2 -0
  202. package/dist/core/responseValidators/providers.d.cts +1 -0
  203. package/dist/core/responseValidators/routing-diagnostics.cjs +1 -0
  204. package/dist/core/responseValidators/routing-diagnostics.d.cts +3 -0
  205. package/dist/core/responseValidators/routing.cjs +2 -0
  206. package/dist/core/responseValidators/routing.d.cts +3 -0
  207. package/dist/core/responseValidators/sandboxes-diagnostics.cjs +1 -0
  208. package/dist/core/responseValidators/sandboxes-diagnostics.d.cts +10 -0
  209. package/dist/core/responseValidators/sandboxes.cjs +2 -0
  210. package/dist/core/responseValidators/sandboxes.d.cts +10 -0
  211. package/dist/core/responseValidators/secrets-diagnostics.cjs +1 -0
  212. package/dist/core/responseValidators/secrets-diagnostics.d.cts +1 -0
  213. package/dist/core/responseValidators/secrets.cjs +2 -0
  214. package/dist/core/responseValidators/secrets.d.cts +1 -0
  215. package/dist/core/responseValidators/spend_limits-diagnostics.cjs +1 -0
  216. package/dist/core/responseValidators/spend_limits-diagnostics.d.cts +3 -0
  217. package/dist/core/responseValidators/spend_limits.cjs +2 -0
  218. package/dist/core/responseValidators/spend_limits.d.cts +3 -0
  219. package/dist/core/responseValidators/terminals-diagnostics.cjs +1 -0
  220. package/dist/core/responseValidators/terminals-diagnostics.d.cts +2 -0
  221. package/dist/core/responseValidators/terminals.cjs +2 -0
  222. package/dist/core/responseValidators/terminals.d.cts +2 -0
  223. package/dist/core/responseValidators/usage-diagnostics.cjs +1 -0
  224. package/dist/core/responseValidators/usage-diagnostics.d.cts +1 -0
  225. package/dist/core/responseValidators/usage.cjs +2 -0
  226. package/dist/core/responseValidators/usage.d.cts +1 -0
  227. package/dist/core/responseValidators/volumes-diagnostics.cjs +1 -0
  228. package/dist/core/responseValidators/volumes-diagnostics.d.cts +10 -0
  229. package/dist/core/responseValidators/volumes.cjs +2 -0
  230. package/dist/core/responseValidators/volumes.d.cts +10 -0
  231. package/dist/core/serverSentEvents.gen.d.ts +30 -0
  232. package/dist/core/serverSentEvents.gen.js +313 -0
  233. package/dist/core/streamErrors.d.ts +32 -0
  234. package/dist/core/streamErrors.js +51 -0
  235. package/dist/core/types.gen.d.ts +83 -0
  236. package/dist/core/types.gen.js +3 -0
  237. package/dist/core/utils.gen.d.ts +19 -0
  238. package/dist/core/utils.gen.js +93 -0
  239. package/dist/creation.gen.d.ts +21 -0
  240. package/dist/creation.gen.js +35 -0
  241. package/dist/data-origin.d.ts +25 -0
  242. package/dist/data-origin.js +57 -0
  243. package/dist/error-codes.gen.d.ts +2 -0
  244. package/dist/error-codes.gen.js +2 -0
  245. package/dist/idempotency.gen.d.ts +1 -0
  246. package/dist/idempotency.gen.js +60 -0
  247. package/dist/images.d.ts +74 -0
  248. package/dist/images.js +88 -0
  249. package/dist/index.d.ts +22 -0
  250. package/dist/index.js +80 -0
  251. package/dist/launch-input.gen.d.ts +9 -0
  252. package/dist/launch-input.gen.js +83 -0
  253. package/dist/launch.d.ts +28 -0
  254. package/dist/launch.js +222 -0
  255. package/dist/namespace-actions.d.mts +307 -0
  256. package/dist/namespace-actions.mjs +595 -0
  257. package/dist/namespace-agents.d.mts +33 -0
  258. package/dist/namespace-agents.mjs +40 -0
  259. package/dist/namespace-artifacts.d.mts +46 -0
  260. package/dist/namespace-artifacts.mjs +69 -0
  261. package/dist/namespace-base.d.mts +7 -0
  262. package/dist/namespace-base.mjs +7 -0
  263. package/dist/namespace-commands.d.mts +57 -0
  264. package/dist/namespace-commands.mjs +57 -0
  265. package/dist/namespace-credits.d.mts +213 -0
  266. package/dist/namespace-credits.mjs +476 -0
  267. package/dist/namespace-files.d.mts +203 -0
  268. package/dist/namespace-files.mjs +334 -0
  269. package/dist/namespace-github.d.mts +50 -0
  270. package/dist/namespace-github.mjs +68 -0
  271. package/dist/namespace-images.d.mts +52 -0
  272. package/dist/namespace-images.mjs +78 -0
  273. package/dist/namespace-launch_runs.d.mts +89 -0
  274. package/dist/namespace-launch_runs.mjs +133 -0
  275. package/dist/namespace-launches.d.mts +89 -0
  276. package/dist/namespace-launches.mjs +133 -0
  277. package/dist/namespace-operations.d.mts +45 -0
  278. package/dist/namespace-operations.mjs +52 -0
  279. package/dist/namespace-previews.d.mts +79 -0
  280. package/dist/namespace-previews.mjs +101 -0
  281. package/dist/namespace-pricing.d.mts +31 -0
  282. package/dist/namespace-pricing.mjs +22 -0
  283. package/dist/namespace-processes.d.mts +125 -0
  284. package/dist/namespace-processes.mjs +184 -0
  285. package/dist/namespace-provider_accounts.d.mts +156 -0
  286. package/dist/namespace-provider_accounts.mjs +241 -0
  287. package/dist/namespace-providers.d.mts +28 -0
  288. package/dist/namespace-providers.mjs +24 -0
  289. package/dist/namespace-routing.d.mts +64 -0
  290. package/dist/namespace-routing.mjs +86 -0
  291. package/dist/namespace-sandboxes.d.mts +287 -0
  292. package/dist/namespace-sandboxes.mjs +402 -0
  293. package/dist/namespace-secrets.d.mts +46 -0
  294. package/dist/namespace-secrets.mjs +68 -0
  295. package/dist/namespace-spend_limits.d.mts +48 -0
  296. package/dist/namespace-spend_limits.mjs +70 -0
  297. package/dist/namespace-terminals.d.mts +112 -0
  298. package/dist/namespace-terminals.mjs +177 -0
  299. package/dist/namespace-usage.d.mts +46 -0
  300. package/dist/namespace-usage.mjs +53 -0
  301. package/dist/namespace-volumes.d.mts +110 -0
  302. package/dist/namespace-volumes.mjs +269 -0
  303. package/dist/operations.d.ts +14 -0
  304. package/dist/operations.js +31 -0
  305. package/dist/retry.d.ts +8 -0
  306. package/dist/retry.js +63 -0
  307. package/dist/routing-choices.gen.d.ts +132 -0
  308. package/dist/routing-choices.gen.js +136 -0
  309. package/dist/routing.d.ts +23 -0
  310. package/dist/routing.js +38 -0
  311. package/dist/sandbox-handle.gen.d.ts +8 -0
  312. package/dist/sandbox-handle.gen.js +14 -0
  313. package/dist/sandboxes.d.ts +213 -0
  314. package/dist/sandboxes.js +507 -0
  315. package/dist/sdk.gen.d.ts +2029 -0
  316. package/dist/sdk.gen.js +3862 -0
  317. package/dist/server-timing.d.ts +19 -0
  318. package/dist/server-timing.gen.d.ts +265 -0
  319. package/dist/server-timing.gen.js +254 -0
  320. package/dist/server-timing.js +421 -0
  321. package/dist/spend-limits.d.ts +17 -0
  322. package/dist/spend-limits.js +26 -0
  323. package/dist/telemetry.d.ts +51 -0
  324. package/dist/telemetry.gen.d.ts +1 -0
  325. package/dist/telemetry.gen.js +5 -0
  326. package/dist/telemetry.js +438 -0
  327. package/dist/terminal.d.ts +61 -0
  328. package/dist/terminal.js +266 -0
  329. package/dist/transfer.d.ts +75 -0
  330. package/dist/transfer.js +389 -0
  331. package/dist/types.gen.d.ts +15016 -0
  332. package/dist/types.gen.js +3 -0
  333. package/dist/user-agent.d.ts +2 -0
  334. package/dist/user-agent.js +18 -0
  335. package/dist/version.gen.d.ts +1 -0
  336. package/dist/version.gen.js +5 -0
  337. package/dist/volumes.d.ts +33 -0
  338. package/dist/volumes.js +221 -0
  339. package/dist/waits.d.ts +31 -0
  340. package/dist/waits.js +42 -0
  341. package/dist/workflow-policy.gen.d.ts +41 -0
  342. package/dist/workflow-policy.gen.js +45 -0
  343. package/package.json +135 -4
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Terminal = exports.TerminalError = void 0;
4
+ exports.closeObservers = closeObservers;
5
+ exports.combineCleanupErrors = combineCleanupErrors;
6
+ exports.openTerminal = openTerminal;
7
+ const workflow_policy_gen_1 = require("./workflow-policy.gen");
8
+ const sandboxes_1 = require("./sandboxes");
9
+ class TerminalError extends Error {
10
+ event;
11
+ code;
12
+ outcome;
13
+ retry;
14
+ constructor(event) {
15
+ super(event.error.message);
16
+ this.event = event;
17
+ this.name = 'TerminalError';
18
+ this.code = event.error.code;
19
+ this.outcome = event.error.outcome;
20
+ this.retry = event.error.retry;
21
+ }
22
+ }
23
+ exports.TerminalError = TerminalError;
24
+ function closeObservers(observers) {
25
+ const failures = [];
26
+ for (const close of [...observers]) {
27
+ try {
28
+ close();
29
+ }
30
+ catch (error) {
31
+ failures.push(error);
32
+ }
33
+ }
34
+ if (failures.length)
35
+ throw combineCleanupErrors(failures, 'Terminal observers failed to close');
36
+ }
37
+ function combineCleanupErrors(errors, message) {
38
+ return errors.length === 1 ? errors[0] : new AggregateError(errors, message);
39
+ }
40
+ function size(rows, cols) {
41
+ if ([rows, cols].some(n => !Number.isInteger(n) || n < workflow_policy_gen_1.TERMINAL_SIZE_MINIMUM || n > workflow_policy_gen_1.TERMINAL_SIZE_MAXIMUM)) {
42
+ throw new RangeError(`Terminal rows and cols must be integers between ${workflow_policy_gen_1.TERMINAL_SIZE_MINIMUM} and ${workflow_policy_gen_1.TERMINAL_SIZE_MAXIMUM}`);
43
+ }
44
+ }
45
+ function base64(data) {
46
+ const chunks = [];
47
+ for (let offset = 0; offset < data.length; offset += 32768) {
48
+ chunks.push(String.fromCharCode(...data.subarray(offset, offset + 32768)));
49
+ }
50
+ return btoa(chunks.join(''));
51
+ }
52
+ /**
53
+ * One PTY shell on any provider. Closing this handle detaches local observers only; the shell runs
54
+ * until it exits, is killed or reaches its timeout. Attach again with its id.
55
+ */
56
+ class Terminal {
57
+ state;
58
+ #api;
59
+ #path;
60
+ #observers = new Set();
61
+ #registerObserver;
62
+ #lastEventId = null;
63
+ #exitCode = null;
64
+ #confirmedExit = false;
65
+ constructor(api, state, registerObserver) {
66
+ this.state = state;
67
+ this.#api = api;
68
+ this.#path = { sandbox_id: state.sandbox_id, terminal_id: state.id };
69
+ this.#registerObserver = registerObserver;
70
+ }
71
+ get id() { return this.#path.terminal_id; }
72
+ get sandboxId() { return this.#path.sandbox_id; }
73
+ get lastEventId() { return this.#lastEventId; }
74
+ get exitCode() { return this.#exitCode; }
75
+ /** Detach this handle's HTTP observers only; the remote shell keeps running. */
76
+ close() {
77
+ closeObservers(this.#observers);
78
+ }
79
+ /** Raw typed events; an early end throws. */
80
+ async events(options = {}) {
81
+ if (options.lastEventId !== undefined) {
82
+ this.#confirmedExit = false;
83
+ this.#lastEventId = options.lastEventId;
84
+ }
85
+ const lastEventId = options.lastEventId === undefined ? this.#lastEventId ?? undefined : options.lastEventId;
86
+ let closed = false;
87
+ let sourceClosed = false;
88
+ let source;
89
+ let unregister = () => { };
90
+ const closeSource = () => {
91
+ if (source === undefined || sourceClosed)
92
+ return;
93
+ sourceClosed = true;
94
+ source.close();
95
+ };
96
+ const close = () => {
97
+ if (closed)
98
+ return;
99
+ closed = true;
100
+ try {
101
+ closeSource();
102
+ }
103
+ finally {
104
+ this.#observers.delete(close);
105
+ unregister();
106
+ }
107
+ };
108
+ this.#observers.add(close);
109
+ try {
110
+ unregister = this.#registerObserver?.(close) ?? (() => { });
111
+ if (closed)
112
+ unregister();
113
+ source = await this.#api.terminals.events({ path: this.#path, signal: options.signal,
114
+ headers: lastEventId === undefined ? undefined : { [workflow_policy_gen_1.TERMINAL_EVENT_ID_HEADER]: lastEventId } });
115
+ if (closed)
116
+ throw new Error('Terminal observer was closed while opening');
117
+ }
118
+ catch (error) {
119
+ const cleanupErrors = [];
120
+ try {
121
+ closeSource();
122
+ }
123
+ catch (cleanupError) {
124
+ cleanupErrors.push(cleanupError);
125
+ }
126
+ try {
127
+ close();
128
+ }
129
+ catch (cleanupError) {
130
+ cleanupErrors.push(cleanupError);
131
+ }
132
+ if (cleanupErrors.length) {
133
+ throw combineCleanupErrors([error, ...cleanupErrors], 'Terminal events open and observer cleanup failed');
134
+ }
135
+ throw error;
136
+ }
137
+ const openedSource = source;
138
+ if (openedSource === undefined)
139
+ throw new Error('Terminal event stream did not open');
140
+ const terminal = this;
141
+ async function* data() {
142
+ let failure;
143
+ let failed = false;
144
+ try {
145
+ for await (const envelope of openedSource.stream) {
146
+ const event = envelope.data;
147
+ const id = envelope[workflow_policy_gen_1.TERMINAL_EVENT_ID_FIELD];
148
+ if (id !== undefined)
149
+ terminal.#lastEventId = id;
150
+ if (event.type === workflow_policy_gen_1.TERMINAL_EXIT_EVENT_TYPE) {
151
+ terminal.#confirmedExit = true;
152
+ terminal.#exitCode = event.exit_code === null || event.exit_code === undefined
153
+ ? null : Number(event.exit_code);
154
+ }
155
+ if (event.type !== workflow_policy_gen_1.TERMINAL_OUTPUT_EVENT_TYPE) {
156
+ yield event;
157
+ continue;
158
+ }
159
+ const { data_base64, ...fields } = event;
160
+ yield { ...fields, data: (0, sandboxes_1.decodeBase64)(data_base64) };
161
+ }
162
+ }
163
+ catch (error) {
164
+ failure = error;
165
+ failed = true;
166
+ throw error;
167
+ }
168
+ finally {
169
+ try {
170
+ close();
171
+ }
172
+ catch (cleanupError) {
173
+ if (failed)
174
+ throw combineCleanupErrors([failure, cleanupError], 'Terminal stream and observer cleanup failed');
175
+ throw cleanupError;
176
+ }
177
+ }
178
+ }
179
+ return { stream: data(), close };
180
+ }
181
+ /** Yield exact output chunks, then stop at exit; errors and incomplete streams raise. */
182
+ async *output(options = {}) {
183
+ if (options.lastEventId === undefined && this.#confirmedExit)
184
+ return;
185
+ const events = await this.events(options);
186
+ const iterator = events.stream[Symbol.asyncIterator]();
187
+ let failure;
188
+ let failed = false;
189
+ try {
190
+ while (true) {
191
+ const next = await iterator.next();
192
+ if (next.done)
193
+ return;
194
+ const event = next.value;
195
+ if (event.type === workflow_policy_gen_1.TERMINAL_OUTPUT_EVENT_TYPE)
196
+ yield event.data;
197
+ else if (event.type === workflow_policy_gen_1.TERMINAL_ERROR_EVENT_TYPE)
198
+ throw new TerminalError(event);
199
+ else
200
+ return;
201
+ }
202
+ }
203
+ catch (error) {
204
+ failure = error;
205
+ failed = true;
206
+ throw error;
207
+ }
208
+ finally {
209
+ const cleanupErrors = [];
210
+ try {
211
+ await iterator.return?.(undefined);
212
+ }
213
+ catch (error) {
214
+ cleanupErrors.push(error);
215
+ }
216
+ try {
217
+ events.close();
218
+ }
219
+ catch (error) {
220
+ cleanupErrors.push(error);
221
+ }
222
+ if (cleanupErrors.length) {
223
+ throw failed
224
+ ? combineCleanupErrors([failure, ...cleanupErrors], 'Terminal output and observer cleanup failed')
225
+ : combineCleanupErrors(cleanupErrors, 'Terminal observers failed to close');
226
+ }
227
+ }
228
+ }
229
+ /** Await writes sequentially. Never replay an uncertain write. */
230
+ async write(data, options = {}) {
231
+ if (!(data instanceof Uint8Array) || data.byteLength > workflow_policy_gen_1.TERMINAL_INPUT_BYTES) {
232
+ throw new RangeError(workflow_policy_gen_1.TERMINAL_INPUT_ERROR);
233
+ }
234
+ await this.#api.terminals.write({ path: this.#path, body: { data_base64: base64(data) }, ...(0, sandboxes_1.mutationOptions)(options) });
235
+ }
236
+ /** Change the window size; the foreground program receives SIGWINCH. */
237
+ async resize(rows, cols, options = {}) {
238
+ size(rows, cols);
239
+ await this.#api.terminals.resize({ path: this.#path, body: { rows, columns: cols }, ...(0, sandboxes_1.mutationOptions)(options) });
240
+ }
241
+ /** End the shell; its exit event follows on the stream. */
242
+ async kill(options = {}) {
243
+ await this.#api.terminals.kill({ path: this.#path, ...(0, sandboxes_1.mutationOptions)(options) });
244
+ }
245
+ }
246
+ exports.Terminal = Terminal;
247
+ /** Open a PTY shell by sandbox ID, or attach to terminalId; observer ownership stays local. */
248
+ async function openTerminal(api, sandboxId, options = {}, registerObserver) {
249
+ const { rows = workflow_policy_gen_1.TERMINAL_ROWS, cols = workflow_policy_gen_1.TERMINAL_COLS, terminalId, signal } = options;
250
+ size(rows, cols);
251
+ if (terminalId !== undefined && (typeof terminalId !== 'string' || !terminalId)) {
252
+ throw new TypeError('Terminal terminalId must be a nonempty string');
253
+ }
254
+ let state;
255
+ if (options.terminalId === undefined) {
256
+ state = await api.terminals.open({ path: { sandbox_id: sandboxId },
257
+ body: { columns: cols, rows, timeout_seconds: options.timeoutSeconds }, ...(0, sandboxes_1.mutationOptions)(options) });
258
+ }
259
+ else {
260
+ state = await api.terminals.get({ path: { sandbox_id: sandboxId, terminal_id: terminalId }, signal });
261
+ }
262
+ if (state.sandbox_id !== sandboxId)
263
+ throw new TypeError('The terminal is unconfirmed');
264
+ const terminal = new Terminal(api, state, registerObserver);
265
+ return terminal;
266
+ }
@@ -0,0 +1,75 @@
1
+ export interface TransferPart {
2
+ number: number | bigint;
3
+ size: number | bigint;
4
+ url: string;
5
+ method?: string | null;
6
+ headers?: Record<string, string> | null;
7
+ form_field?: string | null;
8
+ }
9
+ export interface TransferLink {
10
+ url: string;
11
+ method?: string | null;
12
+ headers?: Record<string, string> | null;
13
+ }
14
+ /** `bytesTotal` is undefined while the size of a download is unknown. */
15
+ export type TransferProgress = (bytesDone: number, bytesTotal?: number) => void;
16
+ export interface UploadSourceInput {
17
+ /** A local file path (Node), a Blob, bytes, or a stream. A stream needs `size`. */
18
+ source: string | Blob | Uint8Array | ReadableStream<Uint8Array>;
19
+ size?: number;
20
+ }
21
+ /** An opened upload source: `slice` returns a lazy body of exactly `end - start` bytes. */
22
+ export interface OpenedSource {
23
+ readonly size: number;
24
+ slice(start: number, end: number): Blob | Uint8Array;
25
+ close(): Promise<void>;
26
+ }
27
+ export interface SendPartsOptions {
28
+ concurrency: number;
29
+ /** Send a part again after a network error or 5xx, even if bytes were sent. See the file comment. */
30
+ replayParts: boolean;
31
+ /** Prefix of error messages, for example `Volume`. */
32
+ label?: string;
33
+ progress?: TransferProgress;
34
+ signal?: AbortSignal;
35
+ }
36
+ export interface PartResult {
37
+ number: number;
38
+ etag?: string;
39
+ }
40
+ export declare class TransferError extends Error {
41
+ readonly status?: number;
42
+ constructor(message: string, status?: number);
43
+ }
44
+ /** Per socket operation: a 5 GiB part is fine while it moves, a connection that stalls for 300 s fails. */
45
+ export declare const TRANSFER_TIMEOUTS: {
46
+ readonly connectMs: 10000;
47
+ readonly headersMs: 300000;
48
+ readonly bodyMs: 300000;
49
+ };
50
+ /** Open an upload source and learn its size without reading it into memory. A stream is copied to disk
51
+ * while `signal` is live: aborting it cancels the pending read and removes the temporary data. */
52
+ export declare function openSource({ source, size }: UploadSourceInput, signal?: AbortSignal): Promise<OpenedSource>;
53
+ /**
54
+ * Send every part with bounded parallelism and return each part's ETag when the response had one.
55
+ * The first failure stops the other parts and is raised; aborting the upload session is the caller's.
56
+ */
57
+ export declare function sendParts(source: OpenedSource, parts: TransferPart[], options: SendPartsOptions): Promise<PartResult[]>;
58
+ /**
59
+ * Run a completion call, retrying while the answer is unknown (503 or no response). Every retry
60
+ * carries the idempotency key the first send used (`call` gets it, undefined on the first attempt), so a
61
+ * completion whose answer was lost is recovered rather than repeated under a new key.
62
+ */
63
+ export declare function retryCompletion<T>(call: (idempotencyKey: string | undefined) => Promise<T>, signal?: AbortSignal): Promise<T>;
64
+ export interface DownloadOptions {
65
+ /** The size the API reported; the body must match it exactly. Absent when the API does not know it:
66
+ * the response's Content-Length is then the expected length, and with neither the body is read to its end. */
67
+ size?: number | null;
68
+ label?: string;
69
+ progress?: TransferProgress;
70
+ signal?: AbortSignal;
71
+ }
72
+ /** Stream a download. The stream errors if the body does not match `size`. */
73
+ export declare function downloadStream(link: TransferLink, options?: DownloadOptions): Promise<ReadableStream<Uint8Array>>;
74
+ /** Download to `destination` through `<destination>.part-<random>`, renaming only after the full length is on disk. */
75
+ export declare function downloadToFile(link: TransferLink, destination: string, options?: DownloadOptions): Promise<void>;