@boatdev/sdk 1.4.0 → 1.6.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 (60) hide show
  1. package/.openapi-generator/FILES +4 -0
  2. package/dist/apis/BoatApi.d.ts +22 -0
  3. package/dist/apis/BoatApi.js +51 -0
  4. package/dist/boat-helpers.d.ts +6 -0
  5. package/dist/boat-helpers.js +28 -4
  6. package/dist/esm/apis/BoatApi.d.ts +22 -0
  7. package/dist/esm/apis/BoatApi.js +51 -0
  8. package/dist/esm/boat-helpers.d.ts +6 -0
  9. package/dist/esm/boat-helpers.js +28 -4
  10. package/dist/esm/models/NamedSnapshotAllowance.d.ts +74 -0
  11. package/dist/esm/models/NamedSnapshotAllowance.js +55 -0
  12. package/dist/esm/models/NamedSnapshotListResponse.d.ts +7 -0
  13. package/dist/esm/models/NamedSnapshotListResponse.js +3 -0
  14. package/dist/esm/models/PromptRequest.d.ts +6 -0
  15. package/dist/esm/models/PromptRequest.js +2 -0
  16. package/dist/esm/models/PromptResponse.d.ts +6 -0
  17. package/dist/esm/models/PromptResponse.js +2 -0
  18. package/dist/esm/models/PromptRun.d.ts +6 -0
  19. package/dist/esm/models/PromptRun.js +2 -0
  20. package/dist/esm/models/Sandbox.d.ts +39 -0
  21. package/dist/esm/models/Sandbox.js +18 -0
  22. package/dist/esm/models/Share200Response.d.ts +45 -0
  23. package/dist/esm/models/Share200Response.js +46 -0
  24. package/dist/esm/models/index.d.ts +2 -0
  25. package/dist/esm/models/index.js +2 -0
  26. package/dist/models/NamedSnapshotAllowance.d.ts +74 -0
  27. package/dist/models/NamedSnapshotAllowance.js +62 -0
  28. package/dist/models/NamedSnapshotListResponse.d.ts +7 -0
  29. package/dist/models/NamedSnapshotListResponse.js +3 -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/Sandbox.d.ts +39 -0
  37. package/dist/models/Sandbox.js +19 -1
  38. package/dist/models/Share200Response.d.ts +45 -0
  39. package/dist/models/Share200Response.js +53 -0
  40. package/dist/models/index.d.ts +2 -0
  41. package/dist/models/index.js +2 -0
  42. package/docs/BoatApi.md +87 -2
  43. package/docs/NamedSnapshotAllowance.md +47 -0
  44. package/docs/NamedSnapshotListResponse.md +2 -0
  45. package/docs/PromptRequest.md +2 -0
  46. package/docs/PromptResponse.md +2 -0
  47. package/docs/PromptRun.md +2 -0
  48. package/docs/Sandbox.md +10 -0
  49. package/docs/Share200Response.md +36 -0
  50. package/package.json +1 -1
  51. package/src/apis/BoatApi.ts +76 -0
  52. package/src/boat-helpers.ts +27 -5
  53. package/src/models/NamedSnapshotAllowance.ts +121 -0
  54. package/src/models/NamedSnapshotListResponse.ts +15 -0
  55. package/src/models/PromptRequest.ts +8 -0
  56. package/src/models/PromptResponse.ts +8 -0
  57. package/src/models/PromptRun.ts +8 -0
  58. package/src/models/Sandbox.ts +50 -0
  59. package/src/models/Share200Response.ts +89 -0
  60. package/src/models/index.ts +2 -0
@@ -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
  }
@@ -166,6 +166,36 @@ export interface Sandbox {
166
166
  * @memberof Sandbox
167
167
  */
168
168
  team?: SandboxTeam;
169
+ /**
170
+ * Display name (or email) of the person who created the sandbox. Organization members see every sandbox the organization pays for, so this says whose it is.
171
+ * @type {string}
172
+ * @memberof Sandbox
173
+ */
174
+ createdBy?: string | null;
175
+ /**
176
+ * Account id of the person who created the sandbox.
177
+ * @type {string}
178
+ * @memberof Sandbox
179
+ */
180
+ createdById?: string | null;
181
+ /**
182
+ * What you may do with this sandbox. `owner`: you created it. `use`: a teammate's organization sandbox that is `noEnv` (created with it, or shared and restarted), so you can open, run commands in, prompt, resume and stop it. `view`: a teammate's organization sandbox that still holds their personal logins, so you can see it and stop it until they share it (`POST /sandboxes/{sandboxId}/share`).
183
+ * @type {SandboxAccessEnum}
184
+ * @memberof Sandbox
185
+ */
186
+ access?: SandboxAccessEnum;
187
+ /**
188
+ * True while the sandbox still holds its creator's personal logins (GitHub token, model logins, secrets). Other members can only see such a sandbox.
189
+ * @type {boolean}
190
+ * @memberof Sandbox
191
+ */
192
+ holdsCreatorLogins?: boolean;
193
+ /**
194
+ * True once the sandbox is shared but not restarted yet. Its creator's logins are wiped at its next start, and the organization can use it from then on.
195
+ * @type {boolean}
196
+ * @memberof Sandbox
197
+ */
198
+ wipePendingUntilRestart?: boolean;
169
199
  /**
170
200
  * The sandbox's stable three-word subdomain slug (e.g. "frazil-pneuma-rallye"), or null before one is assigned.
171
201
  * @type {string}
@@ -251,6 +281,15 @@ export declare const SandboxMachineProviderEnum: {
251
281
  readonly Baremetal: 'baremetal';
252
282
  };
253
283
  export type SandboxMachineProviderEnum = typeof SandboxMachineProviderEnum[keyof typeof SandboxMachineProviderEnum];
284
+ /**
285
+ * @export
286
+ */
287
+ export declare const SandboxAccessEnum: {
288
+ readonly Owner: 'owner';
289
+ readonly Use: 'use';
290
+ readonly View: 'view';
291
+ };
292
+ export type SandboxAccessEnum = typeof SandboxAccessEnum[keyof typeof SandboxAccessEnum];
254
293
  /**
255
294
  * @export
256
295
  */
@@ -50,6 +50,14 @@ export const SandboxMachineProviderEnum = {
50
50
  Hetzner: 'hetzner',
51
51
  Baremetal: 'baremetal'
52
52
  };
53
+ /**
54
+ * @export
55
+ */
56
+ export const SandboxAccessEnum = {
57
+ Owner: 'owner',
58
+ Use: 'use',
59
+ View: 'view'
60
+ };
53
61
  /**
54
62
  * @export
55
63
  */
@@ -118,6 +126,11 @@ export function SandboxFromJSONTyped(json, ignoreDiscriminator) {
118
126
  'snapshotCompletedAt': json['snapshotCompletedAt'] == null ? undefined : (new Date(json['snapshotCompletedAt'])),
119
127
  'snapshotVerifiedAt': json['snapshotVerifiedAt'] == null ? undefined : (new Date(json['snapshotVerifiedAt'])),
120
128
  'team': json['team'] == null ? undefined : SandboxTeamFromJSON(json['team']),
129
+ 'createdBy': json['createdBy'] == null ? undefined : json['createdBy'],
130
+ 'createdById': json['createdById'] == null ? undefined : json['createdById'],
131
+ 'access': json['access'] == null ? undefined : json['access'],
132
+ 'holdsCreatorLogins': json['holdsCreatorLogins'] == null ? undefined : json['holdsCreatorLogins'],
133
+ 'wipePendingUntilRestart': json['wipePendingUntilRestart'] == null ? undefined : json['wipePendingUntilRestart'],
121
134
  'subdomain': json['subdomain'] == null ? undefined : json['subdomain'],
122
135
  'lastSnapshotAttemptAt': json['lastSnapshotAttemptAt'] == null ? undefined : (new Date(json['lastSnapshotAttemptAt'])),
123
136
  'lastSnapshotStatus': json['lastSnapshotStatus'] == null ? undefined : json['lastSnapshotStatus'],
@@ -160,6 +173,11 @@ export function SandboxToJSONTyped(value, ignoreDiscriminator = false) {
160
173
  'snapshotCompletedAt': value['snapshotCompletedAt'] == null ? value['snapshotCompletedAt'] : value['snapshotCompletedAt'].toISOString(),
161
174
  'snapshotVerifiedAt': value['snapshotVerifiedAt'] == null ? value['snapshotVerifiedAt'] : value['snapshotVerifiedAt'].toISOString(),
162
175
  'team': SandboxTeamToJSON(value['team']),
176
+ 'createdBy': value['createdBy'],
177
+ 'createdById': value['createdById'],
178
+ 'access': value['access'],
179
+ 'holdsCreatorLogins': value['holdsCreatorLogins'],
180
+ 'wipePendingUntilRestart': value['wipePendingUntilRestart'],
163
181
  'subdomain': value['subdomain'],
164
182
  'lastSnapshotAttemptAt': value['lastSnapshotAttemptAt'] == null ? value['lastSnapshotAttemptAt'] : value['lastSnapshotAttemptAt'].toISOString(),
165
183
  'lastSnapshotStatus': value['lastSnapshotStatus'],
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Boat Public API v1
3
+ * Public JSON API for creating, operating, prompting, observing, and exposing sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { Sandbox } from './Sandbox';
13
+ /**
14
+ *
15
+ * @export
16
+ * @interface Share200Response
17
+ */
18
+ export interface Share200Response {
19
+ /**
20
+ *
21
+ * @type {Sandbox}
22
+ * @memberof Share200Response
23
+ */
24
+ sandbox?: Sandbox;
25
+ /**
26
+ * True when the sandbox was running: what runs on it still holds your logins in memory, so it stays `view` for the organization until you stop and resume it.
27
+ * @type {boolean}
28
+ * @memberof Share200Response
29
+ */
30
+ restartRequired?: boolean;
31
+ /**
32
+ *
33
+ * @type {string}
34
+ * @memberof Share200Response
35
+ */
36
+ message?: string;
37
+ }
38
+ /**
39
+ * Check if a given object implements the Share200Response interface.
40
+ */
41
+ export declare function instanceOfShare200Response(value: object): value is Share200Response;
42
+ export declare function Share200ResponseFromJSON(json: any): Share200Response;
43
+ export declare function Share200ResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): Share200Response;
44
+ export declare function Share200ResponseToJSON(json: any): Share200Response;
45
+ export declare function Share200ResponseToJSONTyped(value?: Share200Response | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,46 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Boat Public API v1
5
+ * Public JSON API for creating, operating, prompting, observing, and exposing sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ import { SandboxFromJSON, SandboxToJSON, } from './Sandbox';
15
+ /**
16
+ * Check if a given object implements the Share200Response interface.
17
+ */
18
+ export function instanceOfShare200Response(value) {
19
+ return true;
20
+ }
21
+ export function Share200ResponseFromJSON(json) {
22
+ return Share200ResponseFromJSONTyped(json, false);
23
+ }
24
+ export function Share200ResponseFromJSONTyped(json, ignoreDiscriminator) {
25
+ if (json == null) {
26
+ return json;
27
+ }
28
+ return {
29
+ 'sandbox': json['sandbox'] == null ? undefined : SandboxFromJSON(json['sandbox']),
30
+ 'restartRequired': json['restartRequired'] == null ? undefined : json['restartRequired'],
31
+ 'message': json['message'] == null ? undefined : json['message'],
32
+ };
33
+ }
34
+ export function Share200ResponseToJSON(json) {
35
+ return Share200ResponseToJSONTyped(json, false);
36
+ }
37
+ export function Share200ResponseToJSONTyped(value, ignoreDiscriminator = false) {
38
+ if (value == null) {
39
+ return value;
40
+ }
41
+ return {
42
+ 'sandbox': SandboxToJSON(value['sandbox']),
43
+ 'restartRequired': value['restartRequired'],
44
+ 'message': value['message'],
45
+ };
46
+ }
@@ -57,6 +57,7 @@ export * from './LimitsResponse';
57
57
  export * from './MeResponse';
58
58
  export * from './MeResponseAllOfUser';
59
59
  export * from './NamedSnapshot';
60
+ export * from './NamedSnapshotAllowance';
60
61
  export * from './NamedSnapshotDeletedResponse';
61
62
  export * from './NamedSnapshotInfoResponse';
62
63
  export * from './NamedSnapshotListResponse';
@@ -99,6 +100,7 @@ export * from './SecretsUpdateRequest';
99
100
  export * from './SelectedRepository';
100
101
  export * from './SetEnvironmentSecretFileRequest';
101
102
  export * from './SetEnvironmentVarRequest';
103
+ export * from './Share200Response';
102
104
  export * from './SnapshotChunk';
103
105
  export * from './SnapshotDownloadResponse';
104
106
  export * from './SnapshotDownloadResponseAllOfInventory';
@@ -59,6 +59,7 @@ export * from './LimitsResponse';
59
59
  export * from './MeResponse';
60
60
  export * from './MeResponseAllOfUser';
61
61
  export * from './NamedSnapshot';
62
+ export * from './NamedSnapshotAllowance';
62
63
  export * from './NamedSnapshotDeletedResponse';
63
64
  export * from './NamedSnapshotInfoResponse';
64
65
  export * from './NamedSnapshotListResponse';
@@ -101,6 +102,7 @@ export * from './SecretsUpdateRequest';
101
102
  export * from './SelectedRepository';
102
103
  export * from './SetEnvironmentSecretFileRequest';
103
104
  export * from './SetEnvironmentVarRequest';
105
+ export * from './Share200Response';
104
106
  export * from './SnapshotChunk';
105
107
  export * from './SnapshotDownloadResponse';
106
108
  export * from './SnapshotDownloadResponseAllOfInventory';
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Boat Public API v1
3
+ * Public JSON API for creating, operating, prompting, observing, and exposing sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * What the request's wallet (your active organization, `?org=`, or personal) pays for named snapshots. 10 are free per wallet; each one above costs $1.70 a month, charged daily from usage. An organization's count includes every member's names billed to it.
14
+ * @export
15
+ * @interface NamedSnapshotAllowance
16
+ */
17
+ export interface NamedSnapshotAllowance {
18
+ /**
19
+ * Organization the numbers are for. null = personal.
20
+ * @type {string}
21
+ * @memberof NamedSnapshotAllowance
22
+ */
23
+ org?: string | null;
24
+ /**
25
+ * That organization's name.
26
+ * @type {string}
27
+ * @memberof NamedSnapshotAllowance
28
+ */
29
+ orgName?: string | null;
30
+ /**
31
+ * Named snapshots kept for free.
32
+ * @type {number}
33
+ * @memberof NamedSnapshotAllowance
34
+ */
35
+ free?: number;
36
+ /**
37
+ * Named snapshots this wallet keeps.
38
+ * @type {number}
39
+ * @memberof NamedSnapshotAllowance
40
+ */
41
+ used?: number;
42
+ /**
43
+ * Named snapshots above the free ones.
44
+ * @type {number}
45
+ * @memberof NamedSnapshotAllowance
46
+ */
47
+ extra?: number;
48
+ /**
49
+ * What the extra ones cost per month.
50
+ * @type {number}
51
+ * @memberof NamedSnapshotAllowance
52
+ */
53
+ extraMonthlyDollars?: number;
54
+ /**
55
+ * Boat time the extra ones take per day, in dollars (the daily charge).
56
+ * @type {number}
57
+ * @memberof NamedSnapshotAllowance
58
+ */
59
+ extraDailyDollars?: number;
60
+ /**
61
+ * Monthly price of one extra named snapshot.
62
+ * @type {number}
63
+ * @memberof NamedSnapshotAllowance
64
+ */
65
+ pricePerExtraMonthlyDollars?: number;
66
+ }
67
+ /**
68
+ * Check if a given object implements the NamedSnapshotAllowance interface.
69
+ */
70
+ export declare function instanceOfNamedSnapshotAllowance(value: object): value is NamedSnapshotAllowance;
71
+ export declare function NamedSnapshotAllowanceFromJSON(json: any): NamedSnapshotAllowance;
72
+ export declare function NamedSnapshotAllowanceFromJSONTyped(json: any, ignoreDiscriminator: boolean): NamedSnapshotAllowance;
73
+ export declare function NamedSnapshotAllowanceToJSON(json: any): NamedSnapshotAllowance;
74
+ export declare function NamedSnapshotAllowanceToJSONTyped(value?: NamedSnapshotAllowance | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Boat Public API v1
6
+ * Public JSON API for creating, operating, prompting, observing, and exposing sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1.
7
+ *
8
+ * The version of the OpenAPI document: 1.0.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.instanceOfNamedSnapshotAllowance = instanceOfNamedSnapshotAllowance;
17
+ exports.NamedSnapshotAllowanceFromJSON = NamedSnapshotAllowanceFromJSON;
18
+ exports.NamedSnapshotAllowanceFromJSONTyped = NamedSnapshotAllowanceFromJSONTyped;
19
+ exports.NamedSnapshotAllowanceToJSON = NamedSnapshotAllowanceToJSON;
20
+ exports.NamedSnapshotAllowanceToJSONTyped = NamedSnapshotAllowanceToJSONTyped;
21
+ /**
22
+ * Check if a given object implements the NamedSnapshotAllowance interface.
23
+ */
24
+ function instanceOfNamedSnapshotAllowance(value) {
25
+ return true;
26
+ }
27
+ function NamedSnapshotAllowanceFromJSON(json) {
28
+ return NamedSnapshotAllowanceFromJSONTyped(json, false);
29
+ }
30
+ function NamedSnapshotAllowanceFromJSONTyped(json, ignoreDiscriminator) {
31
+ if (json == null) {
32
+ return json;
33
+ }
34
+ return {
35
+ 'org': json['org'] == null ? undefined : json['org'],
36
+ 'orgName': json['orgName'] == null ? undefined : json['orgName'],
37
+ 'free': json['free'] == null ? undefined : json['free'],
38
+ 'used': json['used'] == null ? undefined : json['used'],
39
+ 'extra': json['extra'] == null ? undefined : json['extra'],
40
+ 'extraMonthlyDollars': json['extraMonthlyDollars'] == null ? undefined : json['extraMonthlyDollars'],
41
+ 'extraDailyDollars': json['extraDailyDollars'] == null ? undefined : json['extraDailyDollars'],
42
+ 'pricePerExtraMonthlyDollars': json['pricePerExtraMonthlyDollars'] == null ? undefined : json['pricePerExtraMonthlyDollars'],
43
+ };
44
+ }
45
+ function NamedSnapshotAllowanceToJSON(json) {
46
+ return NamedSnapshotAllowanceToJSONTyped(json, false);
47
+ }
48
+ function NamedSnapshotAllowanceToJSONTyped(value, ignoreDiscriminator = false) {
49
+ if (value == null) {
50
+ return value;
51
+ }
52
+ return {
53
+ 'org': value['org'],
54
+ 'orgName': value['orgName'],
55
+ 'free': value['free'],
56
+ 'used': value['used'],
57
+ 'extra': value['extra'],
58
+ 'extraMonthlyDollars': value['extraMonthlyDollars'],
59
+ 'extraDailyDollars': value['extraDailyDollars'],
60
+ 'pricePerExtraMonthlyDollars': value['pricePerExtraMonthlyDollars'],
61
+ };
62
+ }
@@ -9,6 +9,7 @@
9
9
  * https://openapi-generator.tech
10
10
  * Do not edit the class manually.
11
11
  */
12
+ import type { NamedSnapshotAllowance } from './NamedSnapshotAllowance';
12
13
  import type { NamedSnapshot } from './NamedSnapshot';
13
14
  /**
14
15
  *
@@ -34,6 +35,12 @@ export interface NamedSnapshotListResponse {
34
35
  * @memberof NamedSnapshotListResponse
35
36
  */
36
37
  snapshots: Array<NamedSnapshot>;
38
+ /**
39
+ *
40
+ * @type {NamedSnapshotAllowance}
41
+ * @memberof NamedSnapshotListResponse
42
+ */
43
+ allowance?: NamedSnapshotAllowance;
37
44
  }
38
45
  /**
39
46
  * @export
@@ -19,6 +19,7 @@ exports.NamedSnapshotListResponseFromJSON = NamedSnapshotListResponseFromJSON;
19
19
  exports.NamedSnapshotListResponseFromJSONTyped = NamedSnapshotListResponseFromJSONTyped;
20
20
  exports.NamedSnapshotListResponseToJSON = NamedSnapshotListResponseToJSON;
21
21
  exports.NamedSnapshotListResponseToJSONTyped = NamedSnapshotListResponseToJSONTyped;
22
+ const NamedSnapshotAllowance_1 = require("./NamedSnapshotAllowance");
22
23
  const NamedSnapshot_1 = require("./NamedSnapshot");
23
24
  /**
24
25
  * @export
@@ -49,6 +50,7 @@ function NamedSnapshotListResponseFromJSONTyped(json, ignoreDiscriminator) {
49
50
  'ok': json['ok'],
50
51
  'type': json['type'],
51
52
  'snapshots': (json['snapshots'].map(NamedSnapshot_1.NamedSnapshotFromJSON)),
53
+ 'allowance': json['allowance'] == null ? undefined : (0, NamedSnapshotAllowance_1.NamedSnapshotAllowanceFromJSON)(json['allowance']),
52
54
  };
53
55
  }
54
56
  function NamedSnapshotListResponseToJSON(json) {
@@ -62,5 +64,6 @@ function NamedSnapshotListResponseToJSONTyped(value, ignoreDiscriminator = false
62
64
  'ok': value['ok'],
63
65
  'type': value['type'],
64
66
  'snapshots': (value['snapshots'].map(NamedSnapshot_1.NamedSnapshotToJSON)),
67
+ 'allowance': (0, NamedSnapshotAllowance_1.NamedSnapshotAllowanceToJSON)(value['allowance']),
65
68
  };
66
69
  }
@@ -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}
@@ -54,6 +54,7 @@ function PromptRequestFromJSONTyped(json, ignoreDiscriminator) {
54
54
  'provider': json['provider'],
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
  '_new': json['new'] == null ? undefined : json['new'],
58
59
  'conversationId': json['conversationId'] == null ? undefined : json['conversationId'],
59
60
  'prompt': json['prompt'],
@@ -70,6 +71,7 @@ function PromptRequestToJSONTyped(value, ignoreDiscriminator = false) {
70
71
  'provider': value['provider'],
71
72
  'model': value['model'],
72
73
  'reasoningEffort': value['reasoningEffort'],
74
+ 'fast': value['fast'],
73
75
  'new': value['_new'],
74
76
  'conversationId': value['conversationId'],
75
77
  '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
@@ -70,6 +70,7 @@ function PromptResponseFromJSONTyped(json, ignoreDiscriminator) {
70
70
  'provider': json['provider'],
71
71
  'model': json['model'] == null ? undefined : json['model'],
72
72
  'reasoningEffort': json['reasoningEffort'] == null ? undefined : json['reasoningEffort'],
73
+ 'fast': json['fast'] == null ? undefined : json['fast'],
73
74
  };
74
75
  }
75
76
  function PromptResponseToJSON(json) {
@@ -90,5 +91,6 @@ function PromptResponseToJSONTyped(value, ignoreDiscriminator = false) {
90
91
  'provider': value['provider'],
91
92
  'model': value['model'],
92
93
  'reasoningEffort': value['reasoningEffort'],
94
+ 'fast': value['fast'],
93
95
  };
94
96
  }
@@ -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}
@@ -62,6 +62,7 @@ function PromptRunFromJSONTyped(json, ignoreDiscriminator) {
62
62
  'createdAt': json['createdAt'] == null ? undefined : (new Date(json['createdAt'])),
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
  'conversationId': json['conversationId'] == null ? undefined : json['conversationId'],
66
67
  };
67
68
  }
@@ -81,6 +82,7 @@ function PromptRunToJSONTyped(value, ignoreDiscriminator = false) {
81
82
  'createdAt': value['createdAt'] == null ? value['createdAt'] : value['createdAt'].toISOString(),
82
83
  'model': value['model'],
83
84
  'reasoningEffort': value['reasoningEffort'],
85
+ 'fast': value['fast'],
84
86
  'conversationId': value['conversationId'],
85
87
  };
86
88
  }
@@ -166,6 +166,36 @@ export interface Sandbox {
166
166
  * @memberof Sandbox
167
167
  */
168
168
  team?: SandboxTeam;
169
+ /**
170
+ * Display name (or email) of the person who created the sandbox. Organization members see every sandbox the organization pays for, so this says whose it is.
171
+ * @type {string}
172
+ * @memberof Sandbox
173
+ */
174
+ createdBy?: string | null;
175
+ /**
176
+ * Account id of the person who created the sandbox.
177
+ * @type {string}
178
+ * @memberof Sandbox
179
+ */
180
+ createdById?: string | null;
181
+ /**
182
+ * What you may do with this sandbox. `owner`: you created it. `use`: a teammate's organization sandbox that is `noEnv` (created with it, or shared and restarted), so you can open, run commands in, prompt, resume and stop it. `view`: a teammate's organization sandbox that still holds their personal logins, so you can see it and stop it until they share it (`POST /sandboxes/{sandboxId}/share`).
183
+ * @type {SandboxAccessEnum}
184
+ * @memberof Sandbox
185
+ */
186
+ access?: SandboxAccessEnum;
187
+ /**
188
+ * True while the sandbox still holds its creator's personal logins (GitHub token, model logins, secrets). Other members can only see such a sandbox.
189
+ * @type {boolean}
190
+ * @memberof Sandbox
191
+ */
192
+ holdsCreatorLogins?: boolean;
193
+ /**
194
+ * True once the sandbox is shared but not restarted yet. Its creator's logins are wiped at its next start, and the organization can use it from then on.
195
+ * @type {boolean}
196
+ * @memberof Sandbox
197
+ */
198
+ wipePendingUntilRestart?: boolean;
169
199
  /**
170
200
  * The sandbox's stable three-word subdomain slug (e.g. "frazil-pneuma-rallye"), or null before one is assigned.
171
201
  * @type {string}
@@ -251,6 +281,15 @@ export declare const SandboxMachineProviderEnum: {
251
281
  readonly Baremetal: 'baremetal';
252
282
  };
253
283
  export type SandboxMachineProviderEnum = typeof SandboxMachineProviderEnum[keyof typeof SandboxMachineProviderEnum];
284
+ /**
285
+ * @export
286
+ */
287
+ export declare const SandboxAccessEnum: {
288
+ readonly Owner: 'owner';
289
+ readonly Use: 'use';
290
+ readonly View: 'view';
291
+ };
292
+ export type SandboxAccessEnum = typeof SandboxAccessEnum[keyof typeof SandboxAccessEnum];
254
293
  /**
255
294
  * @export
256
295
  */