@boatdev/sdk 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/.openapi-generator/FILES +2 -0
  2. package/dist/apis/BoatApi.d.ts +24 -2
  3. package/dist/apis/BoatApi.js +53 -2
  4. package/dist/esm/apis/BoatApi.d.ts +24 -2
  5. package/dist/esm/apis/BoatApi.js +53 -2
  6. package/dist/esm/models/CreateSandboxRequest.d.ts +1 -1
  7. package/dist/esm/models/ForkRequest.d.ts +6 -0
  8. package/dist/esm/models/ForkRequest.js +2 -0
  9. package/dist/esm/models/PromptRequest.d.ts +6 -0
  10. package/dist/esm/models/PromptRequest.js +2 -0
  11. package/dist/esm/models/PromptResponse.d.ts +6 -0
  12. package/dist/esm/models/PromptResponse.js +2 -0
  13. package/dist/esm/models/PromptRun.d.ts +6 -0
  14. package/dist/esm/models/PromptRun.js +2 -0
  15. package/dist/esm/models/ResumeRequest.d.ts +6 -0
  16. package/dist/esm/models/ResumeRequest.js +2 -0
  17. package/dist/esm/models/Sandbox.d.ts +65 -0
  18. package/dist/esm/models/Sandbox.js +31 -0
  19. package/dist/esm/models/Share200Response.d.ts +45 -0
  20. package/dist/esm/models/Share200Response.js +46 -0
  21. package/dist/esm/models/WebhookEventData.d.ts +10 -4
  22. package/dist/esm/models/WebhookEventData.js +4 -6
  23. package/dist/esm/models/WebhookEventType.d.ts +2 -0
  24. package/dist/esm/models/WebhookEventType.js +3 -1
  25. package/dist/esm/models/index.d.ts +1 -0
  26. package/dist/esm/models/index.js +1 -0
  27. package/dist/models/CreateSandboxRequest.d.ts +1 -1
  28. package/dist/models/ForkRequest.d.ts +6 -0
  29. package/dist/models/ForkRequest.js +2 -0
  30. package/dist/models/PromptRequest.d.ts +6 -0
  31. package/dist/models/PromptRequest.js +2 -0
  32. package/dist/models/PromptResponse.d.ts +6 -0
  33. package/dist/models/PromptResponse.js +2 -0
  34. package/dist/models/PromptRun.d.ts +6 -0
  35. package/dist/models/PromptRun.js +2 -0
  36. package/dist/models/ResumeRequest.d.ts +6 -0
  37. package/dist/models/ResumeRequest.js +2 -0
  38. package/dist/models/Sandbox.d.ts +65 -0
  39. package/dist/models/Sandbox.js +32 -1
  40. package/dist/models/Share200Response.d.ts +45 -0
  41. package/dist/models/Share200Response.js +53 -0
  42. package/dist/models/WebhookEventData.d.ts +10 -4
  43. package/dist/models/WebhookEventData.js +4 -6
  44. package/dist/models/WebhookEventType.d.ts +2 -0
  45. package/dist/models/WebhookEventType.js +3 -1
  46. package/dist/models/index.d.ts +1 -0
  47. package/dist/models/index.js +1 -0
  48. package/docs/BoatApi.md +89 -3
  49. package/docs/ForkRequest.md +2 -0
  50. package/docs/PromptRequest.md +2 -0
  51. package/docs/PromptResponse.md +2 -0
  52. package/docs/PromptRun.md +2 -0
  53. package/docs/ResumeRequest.md +2 -0
  54. package/docs/Sandbox.md +16 -0
  55. package/docs/Share200Response.md +36 -0
  56. package/docs/WebhookEventData.md +2 -0
  57. package/package.json +1 -1
  58. package/src/apis/BoatApi.ts +78 -2
  59. package/src/models/CreateSandboxRequest.ts +1 -1
  60. package/src/models/ForkRequest.ts +8 -0
  61. package/src/models/PromptRequest.ts +8 -0
  62. package/src/models/PromptResponse.ts +8 -0
  63. package/src/models/PromptRun.ts +8 -0
  64. package/src/models/ResumeRequest.ts +8 -0
  65. package/src/models/Sandbox.ts +83 -0
  66. package/src/models/Share200Response.ts +89 -0
  67. package/src/models/WebhookEventData.ts +14 -8
  68. package/src/models/WebhookEventType.ts +3 -1
  69. package/src/models/index.ts +1 -0
@@ -104,6 +104,7 @@ docs/SecretsUpdateRequest.md
104
104
  docs/SelectedRepository.md
105
105
  docs/SetEnvironmentSecretFileRequest.md
106
106
  docs/SetEnvironmentVarRequest.md
107
+ docs/Share200Response.md
107
108
  docs/SnapshotChunk.md
108
109
  docs/SnapshotDownloadResponse.md
109
110
  docs/SnapshotDownloadResponseAllOfInventory.md
@@ -243,6 +244,7 @@ src/models/SecretsUpdateRequest.ts
243
244
  src/models/SelectedRepository.ts
244
245
  src/models/SetEnvironmentSecretFileRequest.ts
245
246
  src/models/SetEnvironmentVarRequest.ts
247
+ src/models/Share200Response.ts
246
248
  src/models/SnapshotChunk.ts
247
249
  src/models/SnapshotDownloadResponse.ts
248
250
  src/models/SnapshotDownloadResponseAllOfInventory.ts
@@ -64,6 +64,7 @@ import { type SecretsResponse } from '../models/SecretsResponse';
64
64
  import { type SecretsUpdateRequest } from '../models/SecretsUpdateRequest';
65
65
  import { type SetEnvironmentSecretFileRequest } from '../models/SetEnvironmentSecretFileRequest';
66
66
  import { type SetEnvironmentVarRequest } from '../models/SetEnvironmentVarRequest';
67
+ import { type Share200Response } from '../models/Share200Response';
67
68
  import { type SnapshotDownloadResponse } from '../models/SnapshotDownloadResponse';
68
69
  import { type SnapshotLatestResponse } from '../models/SnapshotLatestResponse';
69
70
  import { type SnapshotListResponse } from '../models/SnapshotListResponse';
@@ -257,6 +258,8 @@ export interface RotateWebhookSigningSecretRequest {
257
258
  webhookId: string;
258
259
  }
259
260
  export interface SandboxesRequest {
261
+ org?: string;
262
+ xBoatOrg?: string;
260
263
  limit?: number;
261
264
  cursor?: string | null;
262
265
  sort?: SandboxesSortEnum;
@@ -280,6 +283,9 @@ export interface SetEnvironmentVarOperationRequest {
280
283
  key: string;
281
284
  setEnvironmentVarRequest: SetEnvironmentVarRequest;
282
285
  }
286
+ export interface ShareRequest {
287
+ sandboxId: string;
288
+ }
283
289
  export interface SshKeyOperationRequest {
284
290
  sandboxId: string;
285
291
  sshKeyRequest: SshKeyRequest;
@@ -387,12 +393,12 @@ export declare class BoatApi extends runtime.BaseAPI {
387
393
  */
388
394
  commandRequestOpts(input: CommandOperationRequest | runtime.FlatBody<CommandOperationRequest, 'commandRequest'>): Promise<runtime.RequestOpts>;
389
395
  /**
390
- * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
396
+ * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. A sandbox that is not starting (`error`, `stopped`) returns 409 sandbox_not_ready with `retryable: false` and its `state` at once: resume or recover it first. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
391
397
  * Execute a command in a sandbox
392
398
  */
393
399
  commandRaw(requestParameters: CommandOperationRequest | runtime.FlatBody<CommandOperationRequest, 'commandRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Command200Response>>;
394
400
  /**
395
- * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
401
+ * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. A sandbox that is not starting (`error`, `stopped`) returns 409 sandbox_not_ready with `retryable: false` and its `state` at once: resume or recover it first. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
396
402
  * Execute a command in a sandbox
397
403
  */
398
404
  command(requestParameters: CommandOperationRequest | runtime.FlatBody<CommandOperationRequest, 'commandRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Command200Response>;
@@ -1023,10 +1029,12 @@ export declare class BoatApi extends runtime.BaseAPI {
1023
1029
  */
1024
1030
  sandboxesRequestOpts(requestParameters: SandboxesRequest): Promise<runtime.RequestOpts>;
1025
1031
  /**
1032
+ * Your sandboxes. In an organization\'s scope (the active wallet, `org`, or `X-Boat-Org`) the list also holds every sandbox that organization pays for, whoever created it; `createdBy` and `access` say whose it is and what you may do with it.
1026
1033
  * List sandboxes
1027
1034
  */
1028
1035
  sandboxesRaw(requestParameters: SandboxesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxListResponse>>;
1029
1036
  /**
1037
+ * Your sandboxes. In an organization\'s scope (the active wallet, `org`, or `X-Boat-Org`) the list also holds every sandbox that organization pays for, whoever created it; `createdBy` and `access` say whose it is and what you may do with it.
1030
1038
  * List sandboxes
1031
1039
  */
1032
1040
  sandboxes(requestParameters?: SandboxesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxListResponse>;
@@ -1114,6 +1122,20 @@ export declare class BoatApi extends runtime.BaseAPI {
1114
1122
  * Set one environment variable
1115
1123
  */
1116
1124
  setEnvironmentVar(requestParameters: SetEnvironmentVarOperationRequest | runtime.FlatBody<SetEnvironmentVarOperationRequest, 'setEnvironmentVarRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EnvironmentItemChangeResponse>;
1125
+ /**
1126
+ * Creates request options for share without sending the request
1127
+ */
1128
+ shareRequestOpts(requestParameters: ShareRequest): Promise<runtime.RequestOpts>;
1129
+ /**
1130
+ * Let every member of the organization that pays for this sandbox use it. Your personal logins (GitHub token, Claude and Codex logins, environment secrets, the sandbox\'s own CLI key) are never pushed to it again and are wiped off its disk at its next start, so a teammate never acts as you. Files you wrote stay. One-way: the sandbox stays like a `noEnv` sandbox from then on. A running sandbox stays `view` for the organization until you stop and resume it (`restartRequired`). Only the person who created the sandbox can share it, and only a sandbox billed to an organization. Sharing an already shared sandbox is a no-op.
1131
+ * Share sandbox with the organization
1132
+ */
1133
+ shareRaw(requestParameters: ShareRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Share200Response>>;
1134
+ /**
1135
+ * Let every member of the organization that pays for this sandbox use it. Your personal logins (GitHub token, Claude and Codex logins, environment secrets, the sandbox\'s own CLI key) are never pushed to it again and are wiped off its disk at its next start, so a teammate never acts as you. Files you wrote stay. One-way: the sandbox stays like a `noEnv` sandbox from then on. A running sandbox stays `view` for the organization until you stop and resume it (`restartRequired`). Only the person who created the sandbox can share it, and only a sandbox billed to an organization. Sharing an already shared sandbox is a no-op.
1136
+ * Share sandbox with the organization
1137
+ */
1138
+ share(requestParameters: ShareRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Share200Response>;
1117
1139
  /**
1118
1140
  * Creates request options for sshKey without sending the request
1119
1141
  */
@@ -102,6 +102,7 @@ const SecretsResponse_1 = require("../models/SecretsResponse");
102
102
  const SecretsUpdateRequest_1 = require("../models/SecretsUpdateRequest");
103
103
  const SetEnvironmentSecretFileRequest_1 = require("../models/SetEnvironmentSecretFileRequest");
104
104
  const SetEnvironmentVarRequest_1 = require("../models/SetEnvironmentVarRequest");
105
+ const Share200Response_1 = require("../models/Share200Response");
105
106
  const SnapshotDownloadResponse_1 = require("../models/SnapshotDownloadResponse");
106
107
  const SnapshotLatestResponse_1 = require("../models/SnapshotLatestResponse");
107
108
  const SnapshotListResponse_1 = require("../models/SnapshotListResponse");
@@ -331,7 +332,7 @@ class BoatApi extends runtime.BaseAPI {
331
332
  };
332
333
  }
333
334
  /**
334
- * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
335
+ * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. A sandbox that is not starting (`error`, `stopped`) returns 409 sandbox_not_ready with `retryable: false` and its `state` at once: resume or recover it first. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
335
336
  * Execute a command in a sandbox
336
337
  */
337
338
  async commandRaw(requestParameters, initOverrides) {
@@ -340,7 +341,7 @@ class BoatApi extends runtime.BaseAPI {
340
341
  return new runtime.JSONApiResponse(response, (jsonValue) => (0, Command200Response_1.Command200ResponseFromJSON)(jsonValue));
341
342
  }
342
343
  /**
343
- * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
344
+ * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. A sandbox that is not starting (`error`, `stopped`) returns 409 sandbox_not_ready with `retryable: false` and its `state` at once: resume or recover it first. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
344
345
  * Execute a command in a sandbox
345
346
  */
346
347
  async command(requestParameters, initOverrides) {
@@ -2360,6 +2361,9 @@ class BoatApi extends runtime.BaseAPI {
2360
2361
  */
2361
2362
  async sandboxesRequestOpts(requestParameters) {
2362
2363
  const queryParameters = {};
2364
+ if (requestParameters['org'] != null) {
2365
+ queryParameters['org'] = requestParameters['org'];
2366
+ }
2363
2367
  if (requestParameters['limit'] != null) {
2364
2368
  queryParameters['limit'] = requestParameters['limit'];
2365
2369
  }
@@ -2373,6 +2377,9 @@ class BoatApi extends runtime.BaseAPI {
2373
2377
  queryParameters['state'] = requestParameters['state'];
2374
2378
  }
2375
2379
  const headerParameters = {};
2380
+ if (requestParameters['xBoatOrg'] != null) {
2381
+ headerParameters['X-Boat-Org'] = String(requestParameters['xBoatOrg']);
2382
+ }
2376
2383
  if (this.configuration && this.configuration.accessToken) {
2377
2384
  const token = this.configuration.accessToken;
2378
2385
  const tokenString = await token("BoatBearerAuth", []);
@@ -2389,6 +2396,7 @@ class BoatApi extends runtime.BaseAPI {
2389
2396
  };
2390
2397
  }
2391
2398
  /**
2399
+ * Your sandboxes. In an organization\'s scope (the active wallet, `org`, or `X-Boat-Org`) the list also holds every sandbox that organization pays for, whoever created it; `createdBy` and `access` say whose it is and what you may do with it.
2392
2400
  * List sandboxes
2393
2401
  */
2394
2402
  async sandboxesRaw(requestParameters, initOverrides) {
@@ -2397,6 +2405,7 @@ class BoatApi extends runtime.BaseAPI {
2397
2405
  return new runtime.JSONApiResponse(response, (jsonValue) => (0, SandboxListResponse_1.SandboxListResponseFromJSON)(jsonValue));
2398
2406
  }
2399
2407
  /**
2408
+ * Your sandboxes. In an organization\'s scope (the active wallet, `org`, or `X-Boat-Org`) the list also holds every sandbox that organization pays for, whoever created it; `createdBy` and `access` say whose it is and what you may do with it.
2400
2409
  * List sandboxes
2401
2410
  */
2402
2411
  async sandboxes(requestParameters = {}, initOverrides) {
@@ -2673,6 +2682,48 @@ class BoatApi extends runtime.BaseAPI {
2673
2682
  const response = await this.setEnvironmentVarRaw(requestParameters, initOverrides);
2674
2683
  return await response.value();
2675
2684
  }
2685
+ /**
2686
+ * Creates request options for share without sending the request
2687
+ */
2688
+ async shareRequestOpts(requestParameters) {
2689
+ if (requestParameters['sandboxId'] == null) {
2690
+ throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling share().');
2691
+ }
2692
+ const queryParameters = {};
2693
+ const headerParameters = {};
2694
+ if (this.configuration && this.configuration.accessToken) {
2695
+ const token = this.configuration.accessToken;
2696
+ const tokenString = await token("BoatBearerAuth", []);
2697
+ if (tokenString) {
2698
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2699
+ }
2700
+ }
2701
+ let urlPath = `/sandboxes/{sandboxId}/share`;
2702
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
2703
+ return {
2704
+ path: urlPath,
2705
+ method: 'POST',
2706
+ headers: headerParameters,
2707
+ query: queryParameters,
2708
+ };
2709
+ }
2710
+ /**
2711
+ * Let every member of the organization that pays for this sandbox use it. Your personal logins (GitHub token, Claude and Codex logins, environment secrets, the sandbox\'s own CLI key) are never pushed to it again and are wiped off its disk at its next start, so a teammate never acts as you. Files you wrote stay. One-way: the sandbox stays like a `noEnv` sandbox from then on. A running sandbox stays `view` for the organization until you stop and resume it (`restartRequired`). Only the person who created the sandbox can share it, and only a sandbox billed to an organization. Sharing an already shared sandbox is a no-op.
2712
+ * Share sandbox with the organization
2713
+ */
2714
+ async shareRaw(requestParameters, initOverrides) {
2715
+ const requestOptions = await this.shareRequestOpts(requestParameters);
2716
+ const response = await this.request(requestOptions, initOverrides);
2717
+ return new runtime.JSONApiResponse(response, (jsonValue) => (0, Share200Response_1.Share200ResponseFromJSON)(jsonValue));
2718
+ }
2719
+ /**
2720
+ * Let every member of the organization that pays for this sandbox use it. Your personal logins (GitHub token, Claude and Codex logins, environment secrets, the sandbox\'s own CLI key) are never pushed to it again and are wiped off its disk at its next start, so a teammate never acts as you. Files you wrote stay. One-way: the sandbox stays like a `noEnv` sandbox from then on. A running sandbox stays `view` for the organization until you stop and resume it (`restartRequired`). Only the person who created the sandbox can share it, and only a sandbox billed to an organization. Sharing an already shared sandbox is a no-op.
2721
+ * Share sandbox with the organization
2722
+ */
2723
+ async share(requestParameters, initOverrides) {
2724
+ const response = await this.shareRaw(requestParameters, initOverrides);
2725
+ return await response.value();
2726
+ }
2676
2727
  /**
2677
2728
  * Creates request options for sshKey without sending the request
2678
2729
  */
@@ -64,6 +64,7 @@ import { type SecretsResponse } from '../models/SecretsResponse';
64
64
  import { type SecretsUpdateRequest } from '../models/SecretsUpdateRequest';
65
65
  import { type SetEnvironmentSecretFileRequest } from '../models/SetEnvironmentSecretFileRequest';
66
66
  import { type SetEnvironmentVarRequest } from '../models/SetEnvironmentVarRequest';
67
+ import { type Share200Response } from '../models/Share200Response';
67
68
  import { type SnapshotDownloadResponse } from '../models/SnapshotDownloadResponse';
68
69
  import { type SnapshotLatestResponse } from '../models/SnapshotLatestResponse';
69
70
  import { type SnapshotListResponse } from '../models/SnapshotListResponse';
@@ -257,6 +258,8 @@ export interface RotateWebhookSigningSecretRequest {
257
258
  webhookId: string;
258
259
  }
259
260
  export interface SandboxesRequest {
261
+ org?: string;
262
+ xBoatOrg?: string;
260
263
  limit?: number;
261
264
  cursor?: string | null;
262
265
  sort?: SandboxesSortEnum;
@@ -280,6 +283,9 @@ export interface SetEnvironmentVarOperationRequest {
280
283
  key: string;
281
284
  setEnvironmentVarRequest: SetEnvironmentVarRequest;
282
285
  }
286
+ export interface ShareRequest {
287
+ sandboxId: string;
288
+ }
283
289
  export interface SshKeyOperationRequest {
284
290
  sandboxId: string;
285
291
  sshKeyRequest: SshKeyRequest;
@@ -387,12 +393,12 @@ export declare class BoatApi extends runtime.BaseAPI {
387
393
  */
388
394
  commandRequestOpts(input: CommandOperationRequest | runtime.FlatBody<CommandOperationRequest, 'commandRequest'>): Promise<runtime.RequestOpts>;
389
395
  /**
390
- * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
396
+ * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. A sandbox that is not starting (`error`, `stopped`) returns 409 sandbox_not_ready with `retryable: false` and its `state` at once: resume or recover it first. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
391
397
  * Execute a command in a sandbox
392
398
  */
393
399
  commandRaw(requestParameters: CommandOperationRequest | runtime.FlatBody<CommandOperationRequest, 'commandRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Command200Response>>;
394
400
  /**
395
- * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
401
+ * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. A sandbox that is not starting (`error`, `stopped`) returns 409 sandbox_not_ready with `retryable: false` and its `state` at once: resume or recover it first. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
396
402
  * Execute a command in a sandbox
397
403
  */
398
404
  command(requestParameters: CommandOperationRequest | runtime.FlatBody<CommandOperationRequest, 'commandRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Command200Response>;
@@ -1023,10 +1029,12 @@ export declare class BoatApi extends runtime.BaseAPI {
1023
1029
  */
1024
1030
  sandboxesRequestOpts(requestParameters: SandboxesRequest): Promise<runtime.RequestOpts>;
1025
1031
  /**
1032
+ * Your sandboxes. In an organization\'s scope (the active wallet, `org`, or `X-Boat-Org`) the list also holds every sandbox that organization pays for, whoever created it; `createdBy` and `access` say whose it is and what you may do with it.
1026
1033
  * List sandboxes
1027
1034
  */
1028
1035
  sandboxesRaw(requestParameters: SandboxesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxListResponse>>;
1029
1036
  /**
1037
+ * Your sandboxes. In an organization\'s scope (the active wallet, `org`, or `X-Boat-Org`) the list also holds every sandbox that organization pays for, whoever created it; `createdBy` and `access` say whose it is and what you may do with it.
1030
1038
  * List sandboxes
1031
1039
  */
1032
1040
  sandboxes(requestParameters?: SandboxesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxListResponse>;
@@ -1114,6 +1122,20 @@ export declare class BoatApi extends runtime.BaseAPI {
1114
1122
  * Set one environment variable
1115
1123
  */
1116
1124
  setEnvironmentVar(requestParameters: SetEnvironmentVarOperationRequest | runtime.FlatBody<SetEnvironmentVarOperationRequest, 'setEnvironmentVarRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EnvironmentItemChangeResponse>;
1125
+ /**
1126
+ * Creates request options for share without sending the request
1127
+ */
1128
+ shareRequestOpts(requestParameters: ShareRequest): Promise<runtime.RequestOpts>;
1129
+ /**
1130
+ * Let every member of the organization that pays for this sandbox use it. Your personal logins (GitHub token, Claude and Codex logins, environment secrets, the sandbox\'s own CLI key) are never pushed to it again and are wiped off its disk at its next start, so a teammate never acts as you. Files you wrote stay. One-way: the sandbox stays like a `noEnv` sandbox from then on. A running sandbox stays `view` for the organization until you stop and resume it (`restartRequired`). Only the person who created the sandbox can share it, and only a sandbox billed to an organization. Sharing an already shared sandbox is a no-op.
1131
+ * Share sandbox with the organization
1132
+ */
1133
+ shareRaw(requestParameters: ShareRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Share200Response>>;
1134
+ /**
1135
+ * Let every member of the organization that pays for this sandbox use it. Your personal logins (GitHub token, Claude and Codex logins, environment secrets, the sandbox\'s own CLI key) are never pushed to it again and are wiped off its disk at its next start, so a teammate never acts as you. Files you wrote stay. One-way: the sandbox stays like a `noEnv` sandbox from then on. A running sandbox stays `view` for the organization until you stop and resume it (`restartRequired`). Only the person who created the sandbox can share it, and only a sandbox billed to an organization. Sharing an already shared sandbox is a no-op.
1136
+ * Share sandbox with the organization
1137
+ */
1138
+ share(requestParameters: ShareRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Share200Response>;
1117
1139
  /**
1118
1140
  * Creates request options for sshKey without sending the request
1119
1141
  */
@@ -66,6 +66,7 @@ import { SecretsResponseFromJSON, } from '../models/SecretsResponse';
66
66
  import { SecretsUpdateRequestToJSON, } from '../models/SecretsUpdateRequest';
67
67
  import { SetEnvironmentSecretFileRequestToJSON, } from '../models/SetEnvironmentSecretFileRequest';
68
68
  import { SetEnvironmentVarRequestToJSON, } from '../models/SetEnvironmentVarRequest';
69
+ import { Share200ResponseFromJSON, } from '../models/Share200Response';
69
70
  import { SnapshotDownloadResponseFromJSON, } from '../models/SnapshotDownloadResponse';
70
71
  import { SnapshotLatestResponseFromJSON, } from '../models/SnapshotLatestResponse';
71
72
  import { SnapshotListResponseFromJSON, } from '../models/SnapshotListResponse';
@@ -295,7 +296,7 @@ export class BoatApi extends runtime.BaseAPI {
295
296
  };
296
297
  }
297
298
  /**
298
- * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
299
+ * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. A sandbox that is not starting (`error`, `stopped`) returns 409 sandbox_not_ready with `retryable: false` and its `state` at once: resume or recover it first. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
299
300
  * Execute a command in a sandbox
300
301
  */
301
302
  async commandRaw(requestParameters, initOverrides) {
@@ -304,7 +305,7 @@ export class BoatApi extends runtime.BaseAPI {
304
305
  return new runtime.JSONApiResponse(response, (jsonValue) => Command200ResponseFromJSON(jsonValue));
305
306
  }
306
307
  /**
307
- * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
308
+ * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. With `stream: true` the output arrives as the command writes it, as newline-delimited JSON (`application/x-ndjson`): `{\"type\":\"started\"}`, then `{\"type\":\"stdout\"|\"stderr\",\"data\":\"...\"}` per chunk, and last `{\"type\":\"exit\",...}` (the synchronous result without stdout/stderr) or `{\"type\":\"error\",\"error\":\"...\",\"message\":\"...\"}`. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. A command sent while the sandbox is still starting (right after a resume) waits up to 60s for it to be ready instead of failing; 409 boat_starting (retryable) is returned only if it is still not ready by then. A sandbox that is not starting (`error`, `stopped`) returns 409 sandbox_not_ready with `retryable: false` and its `state` at once: resume or recover it first. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
308
309
  * Execute a command in a sandbox
309
310
  */
310
311
  async command(requestParameters, initOverrides) {
@@ -2324,6 +2325,9 @@ export class BoatApi extends runtime.BaseAPI {
2324
2325
  */
2325
2326
  async sandboxesRequestOpts(requestParameters) {
2326
2327
  const queryParameters = {};
2328
+ if (requestParameters['org'] != null) {
2329
+ queryParameters['org'] = requestParameters['org'];
2330
+ }
2327
2331
  if (requestParameters['limit'] != null) {
2328
2332
  queryParameters['limit'] = requestParameters['limit'];
2329
2333
  }
@@ -2337,6 +2341,9 @@ export class BoatApi extends runtime.BaseAPI {
2337
2341
  queryParameters['state'] = requestParameters['state'];
2338
2342
  }
2339
2343
  const headerParameters = {};
2344
+ if (requestParameters['xBoatOrg'] != null) {
2345
+ headerParameters['X-Boat-Org'] = String(requestParameters['xBoatOrg']);
2346
+ }
2340
2347
  if (this.configuration && this.configuration.accessToken) {
2341
2348
  const token = this.configuration.accessToken;
2342
2349
  const tokenString = await token("BoatBearerAuth", []);
@@ -2353,6 +2360,7 @@ export class BoatApi extends runtime.BaseAPI {
2353
2360
  };
2354
2361
  }
2355
2362
  /**
2363
+ * Your sandboxes. In an organization\'s scope (the active wallet, `org`, or `X-Boat-Org`) the list also holds every sandbox that organization pays for, whoever created it; `createdBy` and `access` say whose it is and what you may do with it.
2356
2364
  * List sandboxes
2357
2365
  */
2358
2366
  async sandboxesRaw(requestParameters, initOverrides) {
@@ -2361,6 +2369,7 @@ export class BoatApi extends runtime.BaseAPI {
2361
2369
  return new runtime.JSONApiResponse(response, (jsonValue) => SandboxListResponseFromJSON(jsonValue));
2362
2370
  }
2363
2371
  /**
2372
+ * Your sandboxes. In an organization\'s scope (the active wallet, `org`, or `X-Boat-Org`) the list also holds every sandbox that organization pays for, whoever created it; `createdBy` and `access` say whose it is and what you may do with it.
2364
2373
  * List sandboxes
2365
2374
  */
2366
2375
  async sandboxes(requestParameters = {}, initOverrides) {
@@ -2637,6 +2646,48 @@ export class BoatApi extends runtime.BaseAPI {
2637
2646
  const response = await this.setEnvironmentVarRaw(requestParameters, initOverrides);
2638
2647
  return await response.value();
2639
2648
  }
2649
+ /**
2650
+ * Creates request options for share without sending the request
2651
+ */
2652
+ async shareRequestOpts(requestParameters) {
2653
+ if (requestParameters['sandboxId'] == null) {
2654
+ throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling share().');
2655
+ }
2656
+ const queryParameters = {};
2657
+ const headerParameters = {};
2658
+ if (this.configuration && this.configuration.accessToken) {
2659
+ const token = this.configuration.accessToken;
2660
+ const tokenString = await token("BoatBearerAuth", []);
2661
+ if (tokenString) {
2662
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2663
+ }
2664
+ }
2665
+ let urlPath = `/sandboxes/{sandboxId}/share`;
2666
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
2667
+ return {
2668
+ path: urlPath,
2669
+ method: 'POST',
2670
+ headers: headerParameters,
2671
+ query: queryParameters,
2672
+ };
2673
+ }
2674
+ /**
2675
+ * Let every member of the organization that pays for this sandbox use it. Your personal logins (GitHub token, Claude and Codex logins, environment secrets, the sandbox\'s own CLI key) are never pushed to it again and are wiped off its disk at its next start, so a teammate never acts as you. Files you wrote stay. One-way: the sandbox stays like a `noEnv` sandbox from then on. A running sandbox stays `view` for the organization until you stop and resume it (`restartRequired`). Only the person who created the sandbox can share it, and only a sandbox billed to an organization. Sharing an already shared sandbox is a no-op.
2676
+ * Share sandbox with the organization
2677
+ */
2678
+ async shareRaw(requestParameters, initOverrides) {
2679
+ const requestOptions = await this.shareRequestOpts(requestParameters);
2680
+ const response = await this.request(requestOptions, initOverrides);
2681
+ return new runtime.JSONApiResponse(response, (jsonValue) => Share200ResponseFromJSON(jsonValue));
2682
+ }
2683
+ /**
2684
+ * Let every member of the organization that pays for this sandbox use it. Your personal logins (GitHub token, Claude and Codex logins, environment secrets, the sandbox\'s own CLI key) are never pushed to it again and are wiped off its disk at its next start, so a teammate never acts as you. Files you wrote stay. One-way: the sandbox stays like a `noEnv` sandbox from then on. A running sandbox stays `view` for the organization until you stop and resume it (`restartRequired`). Only the person who created the sandbox can share it, and only a sandbox billed to an organization. Sharing an already shared sandbox is a no-op.
2685
+ * Share sandbox with the organization
2686
+ */
2687
+ async share(requestParameters, initOverrides) {
2688
+ const response = await this.shareRaw(requestParameters, initOverrides);
2689
+ return await response.value();
2690
+ }
2640
2691
  /**
2641
2692
  * Creates request options for sshKey without sending the request
2642
2693
  */
@@ -54,7 +54,7 @@ export interface CreateSandboxRequest {
54
54
  */
55
55
  snapshots?: boolean;
56
56
  /**
57
- * Pass `true` to get a sandbox only if a machine of this type is ready right now. The call answers within about 1.5 s: either the usual `202` with the sandbox, or `503` `no_ready_machine` with nothing created, billed, or counted against your start limits, so you can retry or fall back at once. Without it, a create waits for a machine to be built when none is ready. Not combinable with `from`.
57
+ * Pass `true` to get a sandbox only if a machine of this type is ready right now. The call answers within about 1.5 s: either the usual `202` with the sandbox, or `503` `no_ready_machine` with nothing created, billed, or counted against your start limits, so you can retry or fall back at once. Without it, a create waits for a machine to be built when none is ready. Works with `from`; fork and resume take it too.
58
58
  * @type {boolean}
59
59
  * @memberof CreateSandboxRequest
60
60
  */
@@ -15,6 +15,12 @@
15
15
  * @interface ForkRequest
16
16
  */
17
17
  export interface ForkRequest {
18
+ /**
19
+ * Pass `true` to fork only if a machine is ready right now. Within about 1.5 s you get the usual `202`, or `503` `no_ready_machine` with no fork created and nothing counted against your start limits.
20
+ * @type {boolean}
21
+ * @memberof ForkRequest
22
+ */
23
+ failFast?: boolean;
18
24
  /**
19
25
  * Replaces the env the fork would otherwise inherit from the source sandbox. Same validation rules as `CreateSandboxRequest.env`.
20
26
  * @type {{ [key: string]: string; }}
@@ -33,6 +33,7 @@ export function ForkRequestFromJSONTyped(json, ignoreDiscriminator) {
33
33
  return json;
34
34
  }
35
35
  return {
36
+ 'failFast': json['failFast'] == null ? undefined : json['failFast'],
36
37
  'env': json['env'] == null ? undefined : json['env'],
37
38
  'environment': json['environment'] == null ? undefined : json['environment'],
38
39
  'noEnv': json['noEnv'] == null ? undefined : json['noEnv'],
@@ -48,6 +49,7 @@ export function ForkRequestToJSONTyped(value, ignoreDiscriminator = false) {
48
49
  return value;
49
50
  }
50
51
  return {
52
+ 'failFast': value['failFast'],
51
53
  'env': value['env'],
52
54
  'environment': value['environment'],
53
55
  'noEnv': value['noEnv'],
@@ -40,6 +40,12 @@ export interface PromptRequest {
40
40
  * @memberof PromptRequest
41
41
  */
42
42
  reasoningEffort?: string | null;
43
+ /**
44
+ * Optional. `true` runs this prompt in fast mode. The model stays the same and gives output faster. The provider bills fast mode at its higher fast rate. Omit to use the choice saved on the Agents dashboard for that model. `false` forces standard speed. Only models with `fastMode` set to `true` in `GET /provider-models` accept `true`. Other models return 400 `fast_mode_not_supported`.
45
+ * @type {boolean}
46
+ * @memberof PromptRequest
47
+ */
48
+ fast?: boolean | null;
43
49
  /**
44
50
  * Start a NEW conversation on the sandbox (runs in parallel with any existing ones) instead of continuing the most-recently-active one. Mutually exclusive with `conversationId`.
45
51
  * @type {boolean}
@@ -46,6 +46,7 @@ export function PromptRequestFromJSONTyped(json, ignoreDiscriminator) {
46
46
  'provider': json['provider'],
47
47
  'model': json['model'] == null ? undefined : json['model'],
48
48
  'reasoningEffort': json['reasoningEffort'] == null ? undefined : json['reasoningEffort'],
49
+ 'fast': json['fast'] == null ? undefined : json['fast'],
49
50
  '_new': json['new'] == null ? undefined : json['new'],
50
51
  'conversationId': json['conversationId'] == null ? undefined : json['conversationId'],
51
52
  'prompt': json['prompt'],
@@ -62,6 +63,7 @@ export function PromptRequestToJSONTyped(value, ignoreDiscriminator = false) {
62
63
  'provider': value['provider'],
63
64
  'model': value['model'],
64
65
  'reasoningEffort': value['reasoningEffort'],
66
+ 'fast': value['fast'],
65
67
  'new': value['_new'],
66
68
  'conversationId': value['conversationId'],
67
69
  'prompt': value['prompt'],
@@ -76,6 +76,12 @@ export interface PromptResponse {
76
76
  * @memberof PromptResponse
77
77
  */
78
78
  reasoningEffort?: string | null;
79
+ /**
80
+ * The prompt runs in fast mode.
81
+ * @type {boolean}
82
+ * @memberof PromptResponse
83
+ */
84
+ fast?: boolean;
79
85
  }
80
86
  /**
81
87
  * @export
@@ -62,6 +62,7 @@ export function PromptResponseFromJSONTyped(json, ignoreDiscriminator) {
62
62
  'provider': json['provider'],
63
63
  'model': json['model'] == null ? undefined : json['model'],
64
64
  'reasoningEffort': json['reasoningEffort'] == null ? undefined : json['reasoningEffort'],
65
+ 'fast': json['fast'] == null ? undefined : json['fast'],
65
66
  };
66
67
  }
67
68
  export function PromptResponseToJSON(json) {
@@ -82,5 +83,6 @@ export function PromptResponseToJSONTyped(value, ignoreDiscriminator = false) {
82
83
  'provider': value['provider'],
83
84
  'model': value['model'],
84
85
  'reasoningEffort': value['reasoningEffort'],
86
+ 'fast': value['fast'],
85
87
  };
86
88
  }
@@ -63,6 +63,12 @@ export interface PromptRun {
63
63
  * @memberof PromptRun
64
64
  */
65
65
  reasoningEffort?: string | null;
66
+ /**
67
+ * The prompt runs in fast mode. `null` means no speed is set yet. The prompt waits without a speed choice, or it ended without running (`done` is true). The speed is set when the prompt starts, for the model that runs.
68
+ * @type {boolean}
69
+ * @memberof PromptRun
70
+ */
71
+ fast?: boolean | null;
66
72
  /**
67
73
  * The conversation this prompt ran in. A Sandbox runs many conversations in parallel; see [Integrated agents](/integrated-agents).
68
74
  * @type {string}
@@ -54,6 +54,7 @@ export function PromptRunFromJSONTyped(json, ignoreDiscriminator) {
54
54
  'createdAt': json['createdAt'] == null ? undefined : (new Date(json['createdAt'])),
55
55
  'model': json['model'] == null ? undefined : json['model'],
56
56
  'reasoningEffort': json['reasoningEffort'] == null ? undefined : json['reasoningEffort'],
57
+ 'fast': json['fast'] == null ? undefined : json['fast'],
57
58
  'conversationId': json['conversationId'] == null ? undefined : json['conversationId'],
58
59
  };
59
60
  }
@@ -73,6 +74,7 @@ export function PromptRunToJSONTyped(value, ignoreDiscriminator = false) {
73
74
  'createdAt': value['createdAt'] == null ? value['createdAt'] : value['createdAt'].toISOString(),
74
75
  'model': value['model'],
75
76
  'reasoningEffort': value['reasoningEffort'],
77
+ 'fast': value['fast'],
76
78
  'conversationId': value['conversationId'],
77
79
  };
78
80
  }
@@ -15,6 +15,12 @@
15
15
  * @interface ResumeRequest
16
16
  */
17
17
  export interface ResumeRequest {
18
+ /**
19
+ * Pass `true` to resume only if a machine is ready right now. Within about 1.5 s you get the usual `202`, or `503` `no_ready_machine` with the sandbox left stopped and nothing counted against your start limits.
20
+ * @type {boolean}
21
+ * @memberof ResumeRequest
22
+ */
23
+ failFast?: boolean;
18
24
  /**
19
25
  * Resume onto a different machine size. Omit to keep the sandbox's current type. A resume already restores onto a fresh machine, so changing size costs nothing extra. Shrinking is rejected with `type_too_small` when the sandbox's data would not fit the smaller disk.
20
26
  * @type {ResumeRequestTypeEnum}
@@ -33,6 +33,7 @@ export function ResumeRequestFromJSONTyped(json, ignoreDiscriminator) {
33
33
  return json;
34
34
  }
35
35
  return {
36
+ 'failFast': json['failFast'] == null ? undefined : json['failFast'],
36
37
  'type': json['type'] == null ? undefined : json['type'],
37
38
  'env': json['env'] == null ? undefined : json['env'],
38
39
  'environment': json['environment'] == null ? undefined : json['environment'],
@@ -48,6 +49,7 @@ export function ResumeRequestToJSONTyped(value, ignoreDiscriminator = false) {
48
49
  return value;
49
50
  }
50
51
  return {
52
+ 'failFast': value['failFast'],
51
53
  'type': value['type'],
52
54
  'env': value['env'],
53
55
  'environment': value['environment'],