@boatdev/sdk 1.7.0 → 1.8.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.
- package/.openapi-generator/FILES +4 -0
- package/dist/apis/BoatApi.d.ts +47 -4
- package/dist/apis/BoatApi.js +100 -4
- package/dist/esm/apis/BoatApi.d.ts +47 -4
- package/dist/esm/apis/BoatApi.js +100 -4
- package/dist/esm/http2-fetch.d.ts +1 -0
- package/dist/esm/http2-fetch.js +203 -0
- package/dist/esm/models/CreateSandboxRequest.d.ts +3 -2
- package/dist/esm/models/CreateSandboxRequest.js +2 -1
- package/dist/esm/models/ForkRequest.d.ts +2 -1
- package/dist/esm/models/ForkRequest.js +2 -1
- package/dist/esm/models/Recover200Response.d.ts +57 -0
- package/dist/esm/models/Recover200Response.js +53 -0
- package/dist/esm/models/ResumeRequest.d.ts +2 -1
- package/dist/esm/models/ResumeRequest.js +2 -1
- package/dist/esm/models/Sandbox.d.ts +2 -1
- package/dist/esm/models/Sandbox.js +2 -1
- package/dist/esm/models/SandboxUsageResponse.d.ts +2 -1
- package/dist/esm/models/SandboxUsageResponse.js +2 -1
- package/dist/esm/models/StopOperation.d.ts +1 -1
- package/dist/esm/models/StopOperationResponse.d.ts +58 -0
- package/dist/esm/models/StopOperationResponse.js +62 -0
- package/dist/esm/models/StopRequest.d.ts +1 -1
- package/dist/esm/models/UpdateSandboxRequest.d.ts +1 -1
- package/dist/esm/models/index.d.ts +2 -0
- package/dist/esm/models/index.js +2 -0
- package/dist/esm/runtime.js +2 -1
- package/dist/http2-fetch.d.ts +1 -0
- package/dist/http2-fetch.js +239 -0
- package/dist/models/CreateSandboxRequest.d.ts +3 -2
- package/dist/models/CreateSandboxRequest.js +2 -1
- package/dist/models/ForkRequest.d.ts +2 -1
- package/dist/models/ForkRequest.js +2 -1
- package/dist/models/Recover200Response.d.ts +57 -0
- package/dist/models/Recover200Response.js +61 -0
- package/dist/models/ResumeRequest.d.ts +2 -1
- package/dist/models/ResumeRequest.js +2 -1
- package/dist/models/Sandbox.d.ts +2 -1
- package/dist/models/Sandbox.js +2 -1
- package/dist/models/SandboxUsageResponse.d.ts +2 -1
- package/dist/models/SandboxUsageResponse.js +2 -1
- package/dist/models/StopOperation.d.ts +1 -1
- package/dist/models/StopOperationResponse.d.ts +58 -0
- package/dist/models/StopOperationResponse.js +70 -0
- package/dist/models/StopRequest.d.ts +1 -1
- package/dist/models/UpdateSandboxRequest.d.ts +1 -1
- package/dist/models/index.d.ts +2 -0
- package/dist/models/index.js +2 -0
- package/dist/runtime.js +9 -8
- package/docs/BoatApi.md +160 -2
- package/docs/Recover200Response.md +38 -0
- package/docs/StopOperationResponse.md +38 -0
- package/package.json +1 -1
- package/src/apis/BoatApi.ts +147 -4
- package/src/http2-fetch.ts +179 -0
- package/src/models/CreateSandboxRequest.ts +4 -3
- package/src/models/ForkRequest.ts +3 -2
- package/src/models/Recover200Response.ts +99 -0
- package/src/models/ResumeRequest.ts +3 -2
- package/src/models/Sandbox.ts +3 -2
- package/src/models/SandboxUsageResponse.ts +3 -2
- package/src/models/StopOperation.ts +1 -1
- package/src/models/StopOperationResponse.ts +111 -0
- package/src/models/StopRequest.ts +1 -1
- package/src/models/UpdateSandboxRequest.ts +1 -1
- package/src/models/index.ts +2 -0
- package/src/runtime.ts +2 -1
package/.openapi-generator/FILES
CHANGED
|
@@ -79,6 +79,7 @@ docs/PromptRequest.md
|
|
|
79
79
|
docs/PromptResponse.md
|
|
80
80
|
docs/PromptRun.md
|
|
81
81
|
docs/PromptRunResponse.md
|
|
82
|
+
docs/Recover200Response.md
|
|
82
83
|
docs/RepoSelectionRequest.md
|
|
83
84
|
docs/RepoSelectionResponse.md
|
|
84
85
|
docs/ReposResponse.md
|
|
@@ -122,6 +123,7 @@ docs/SteerEventData.md
|
|
|
122
123
|
docs/SteerRequest.md
|
|
123
124
|
docs/SteerResponse.md
|
|
124
125
|
docs/StopOperation.md
|
|
126
|
+
docs/StopOperationResponse.md
|
|
125
127
|
docs/StopRequest.md
|
|
126
128
|
docs/SuccessBase.md
|
|
127
129
|
docs/UnknownEvent.md
|
|
@@ -221,6 +223,7 @@ src/models/PromptRequest.ts
|
|
|
221
223
|
src/models/PromptResponse.ts
|
|
222
224
|
src/models/PromptRun.ts
|
|
223
225
|
src/models/PromptRunResponse.ts
|
|
226
|
+
src/models/Recover200Response.ts
|
|
224
227
|
src/models/RepoSelectionRequest.ts
|
|
225
228
|
src/models/RepoSelectionResponse.ts
|
|
226
229
|
src/models/ReposResponse.ts
|
|
@@ -264,6 +267,7 @@ src/models/SteerEventData.ts
|
|
|
264
267
|
src/models/SteerRequest.ts
|
|
265
268
|
src/models/SteerResponse.ts
|
|
266
269
|
src/models/StopOperation.ts
|
|
270
|
+
src/models/StopOperationResponse.ts
|
|
267
271
|
src/models/StopRequest.ts
|
|
268
272
|
src/models/SuccessBase.ts
|
|
269
273
|
src/models/UnknownEvent.ts
|
package/dist/apis/BoatApi.d.ts
CHANGED
|
@@ -50,6 +50,7 @@ import { type OrgListResponse } from '../models/OrgListResponse';
|
|
|
50
50
|
import { type PromptRequest } from '../models/PromptRequest';
|
|
51
51
|
import { type PromptResponse } from '../models/PromptResponse';
|
|
52
52
|
import { type PromptRunResponse } from '../models/PromptRunResponse';
|
|
53
|
+
import { type Recover200Response } from '../models/Recover200Response';
|
|
53
54
|
import { type RepoSelectionRequest } from '../models/RepoSelectionRequest';
|
|
54
55
|
import { type RepoSelectionResponse } from '../models/RepoSelectionResponse';
|
|
55
56
|
import { type ReposResponse } from '../models/ReposResponse';
|
|
@@ -73,6 +74,7 @@ import { type SshKeyRequest } from '../models/SshKeyRequest';
|
|
|
73
74
|
import { type SshKeyResponse } from '../models/SshKeyResponse';
|
|
74
75
|
import { type SteerRequest } from '../models/SteerRequest';
|
|
75
76
|
import { type SteerResponse } from '../models/SteerResponse';
|
|
77
|
+
import { type StopOperationResponse } from '../models/StopOperationResponse';
|
|
76
78
|
import { type StopRequest } from '../models/StopRequest';
|
|
77
79
|
import { type UpdateSandboxEnvironmentRequest } from '../models/UpdateSandboxEnvironmentRequest';
|
|
78
80
|
import { type UpdateSandboxRequest } from '../models/UpdateSandboxRequest';
|
|
@@ -196,6 +198,10 @@ export interface GetSnapshotFileRequest {
|
|
|
196
198
|
export interface GetSnapshotTreeRequest {
|
|
197
199
|
snapshotId: string;
|
|
198
200
|
}
|
|
201
|
+
export interface GetStopRequest {
|
|
202
|
+
sandboxId: string;
|
|
203
|
+
stopId: string;
|
|
204
|
+
}
|
|
199
205
|
export interface GetWebhookRequest {
|
|
200
206
|
webhookId: string;
|
|
201
207
|
}
|
|
@@ -236,6 +242,9 @@ export interface ReadFileRequest {
|
|
|
236
242
|
path: string;
|
|
237
243
|
encoding?: ReadFileEncodingEnum;
|
|
238
244
|
}
|
|
245
|
+
export interface RecoverRequest {
|
|
246
|
+
sandboxId: string;
|
|
247
|
+
}
|
|
239
248
|
export interface ReposRequest {
|
|
240
249
|
sync?: boolean;
|
|
241
250
|
limit?: number;
|
|
@@ -381,10 +390,12 @@ export declare class BoatApi extends runtime.BaseAPI {
|
|
|
381
390
|
*/
|
|
382
391
|
artifactRequestOpts(requestParameters: ArtifactRequest): Promise<runtime.RequestOpts>;
|
|
383
392
|
/**
|
|
393
|
+
* Downloads one file of up to 50 MiB, under /home/user or /tmp, as raw bytes.
|
|
384
394
|
* Download a sandbox artifact
|
|
385
395
|
*/
|
|
386
396
|
artifactRaw(requestParameters: ArtifactRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Blob>>;
|
|
387
397
|
/**
|
|
398
|
+
* Downloads one file of up to 50 MiB, under /home/user or /tmp, as raw bytes.
|
|
388
399
|
* Download a sandbox artifact
|
|
389
400
|
*/
|
|
390
401
|
artifact(requestParameters: ArtifactRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Blob>;
|
|
@@ -776,6 +787,20 @@ export declare class BoatApi extends runtime.BaseAPI {
|
|
|
776
787
|
* Get snapshot file tree
|
|
777
788
|
*/
|
|
778
789
|
getSnapshotTree(requestParameters: GetSnapshotTreeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SnapshotTreeResponse>;
|
|
790
|
+
/**
|
|
791
|
+
* Creates request options for getStop without sending the request
|
|
792
|
+
*/
|
|
793
|
+
getStopRequestOpts(requestParameters: GetStopRequest): Promise<runtime.RequestOpts>;
|
|
794
|
+
/**
|
|
795
|
+
* Returns one stop of this sandbox by the id that `POST /sandboxes/{sandboxId}/stop` returned. Old stops stay readable after a resume or a later stop. Returns 404 when the id is unknown or belongs to another sandbox.
|
|
796
|
+
* Get a stop by id
|
|
797
|
+
*/
|
|
798
|
+
getStopRaw(requestParameters: GetStopRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<StopOperationResponse>>;
|
|
799
|
+
/**
|
|
800
|
+
* Returns one stop of this sandbox by the id that `POST /sandboxes/{sandboxId}/stop` returned. Old stops stay readable after a resume or a later stop. Returns 404 when the id is unknown or belongs to another sandbox.
|
|
801
|
+
* Get a stop by id
|
|
802
|
+
*/
|
|
803
|
+
getStop(requestParameters: GetStopRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<StopOperationResponse>;
|
|
779
804
|
/**
|
|
780
805
|
* Creates request options for getWebhook without sending the request
|
|
781
806
|
*/
|
|
@@ -949,13 +974,29 @@ export declare class BoatApi extends runtime.BaseAPI {
|
|
|
949
974
|
*/
|
|
950
975
|
readFileRequestOpts(requestParameters: ReadFileRequest): Promise<runtime.RequestOpts>;
|
|
951
976
|
/**
|
|
977
|
+
* Files up to 5 MiB. Use `GET /sandboxes/{sandboxId}/artifacts` for files up to 50 MiB, and SCP over SSH for larger ones.
|
|
952
978
|
* Read a file from a sandbox
|
|
953
979
|
*/
|
|
954
980
|
readFileRaw(requestParameters: ReadFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FileReadResponse>>;
|
|
955
981
|
/**
|
|
982
|
+
* Files up to 5 MiB. Use `GET /sandboxes/{sandboxId}/artifacts` for files up to 50 MiB, and SCP over SSH for larger ones.
|
|
956
983
|
* Read a file from a sandbox
|
|
957
984
|
*/
|
|
958
985
|
readFile(requestParameters: ReadFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FileReadResponse>;
|
|
986
|
+
/**
|
|
987
|
+
* Creates request options for recover without sending the request
|
|
988
|
+
*/
|
|
989
|
+
recoverRequestOpts(requestParameters: RecoverRequest): Promise<runtime.RequestOpts>;
|
|
990
|
+
/**
|
|
991
|
+
* Power-cycle the machine of a sandbox that stopped answering. The disk is not touched. The sandbox usually answers again within 1-2 minutes and then saves your work by itself; `sandbox.recovered` fires when it does. Refused with `409`: - `sandbox_is_reachable`: the sandbox answers normally. - `too_soon`: a recover started less than 10 minutes ago. - `no_machine`: the sandbox has no machine. Resume it instead. - `recover_unsupported`: its machine cannot be power-cycled. Wait for it to answer, or resume it from its last snapshot. - `reset_failed`: the power-cycle failed. Reply to the incident email.
|
|
992
|
+
* Recover a sandbox that stopped responding
|
|
993
|
+
*/
|
|
994
|
+
recoverRaw(requestParameters: RecoverRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Recover200Response>>;
|
|
995
|
+
/**
|
|
996
|
+
* Power-cycle the machine of a sandbox that stopped answering. The disk is not touched. The sandbox usually answers again within 1-2 minutes and then saves your work by itself; `sandbox.recovered` fires when it does. Refused with `409`: - `sandbox_is_reachable`: the sandbox answers normally. - `too_soon`: a recover started less than 10 minutes ago. - `no_machine`: the sandbox has no machine. Resume it instead. - `recover_unsupported`: its machine cannot be power-cycled. Wait for it to answer, or resume it from its last snapshot. - `reset_failed`: the power-cycle failed. Reply to the incident email.
|
|
997
|
+
* Recover a sandbox that stopped responding
|
|
998
|
+
*/
|
|
999
|
+
recover(requestParameters: RecoverRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Recover200Response>;
|
|
959
1000
|
/**
|
|
960
1001
|
* Creates request options for repos without sending the request
|
|
961
1002
|
*/
|
|
@@ -1155,12 +1196,12 @@ export declare class BoatApi extends runtime.BaseAPI {
|
|
|
1155
1196
|
*/
|
|
1156
1197
|
steerRequestOpts(input: SteerOperationRequest | runtime.FlatBody<SteerOperationRequest, 'steerRequest'>): Promise<runtime.RequestOpts>;
|
|
1157
1198
|
/**
|
|
1158
|
-
* Send a new message to a turn that is already running, without losing what the agent is doing. This is what typing into a coding agent while it works does: the instruction is taken into account and the work continues. Where the harness has a native mid-turn primitive (Claude Code, Codex, pi, Prime Agent) nothing is interrupted and the response has `native: true`. Where it does not (OpenCode), Boat interrupts that turn and immediately continues the SAME conversation with the instruction, keeping the session and its memory, and the response has `native: false`. Refused with **409 `no_running_turn`** when the conversation has nothing in flight; queue work with `POST /prompt` instead. The steer shows up in `GET /events` as a `steer` event. See [Integrated agents](/integrated-agents).
|
|
1199
|
+
* Send a new message to a turn that is already running, without losing what the agent is doing. This is what typing into a coding agent while it works does: the instruction is taken into account and the work continues. Where the harness has a native mid-turn primitive (Claude Code, Codex, pi, Prime Agent) nothing is interrupted and the response has `native: true`. Where it does not (OpenCode), Boat interrupts that turn and immediately continues the SAME conversation with the instruction, keeping the session and its memory, and the response has `native: false`. Refused with **409 `no_running_turn`** when the conversation has nothing in flight; queue work with `POST /prompt` instead. `error.details.reason` says why: `turn_ended` (with `error.details.lastTurn.status` and `.error` of the newest turn), `turn_not_started` (the turn is starting; retry in a moment), `no_turn`, `not_running` (the sandbox is not running) or `delivery_failed` (the sandbox did not accept the steer; check the turn before sending more work). The steer shows up in `GET /events` as a `steer` event. See [Integrated agents](/integrated-agents).
|
|
1159
1200
|
* Steer a running turn
|
|
1160
1201
|
*/
|
|
1161
1202
|
steerRaw(requestParameters: SteerOperationRequest | runtime.FlatBody<SteerOperationRequest, 'steerRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SteerResponse>>;
|
|
1162
1203
|
/**
|
|
1163
|
-
* Send a new message to a turn that is already running, without losing what the agent is doing. This is what typing into a coding agent while it works does: the instruction is taken into account and the work continues. Where the harness has a native mid-turn primitive (Claude Code, Codex, pi, Prime Agent) nothing is interrupted and the response has `native: true`. Where it does not (OpenCode), Boat interrupts that turn and immediately continues the SAME conversation with the instruction, keeping the session and its memory, and the response has `native: false`. Refused with **409 `no_running_turn`** when the conversation has nothing in flight; queue work with `POST /prompt` instead. The steer shows up in `GET /events` as a `steer` event. See [Integrated agents](/integrated-agents).
|
|
1204
|
+
* Send a new message to a turn that is already running, without losing what the agent is doing. This is what typing into a coding agent while it works does: the instruction is taken into account and the work continues. Where the harness has a native mid-turn primitive (Claude Code, Codex, pi, Prime Agent) nothing is interrupted and the response has `native: true`. Where it does not (OpenCode), Boat interrupts that turn and immediately continues the SAME conversation with the instruction, keeping the session and its memory, and the response has `native: false`. Refused with **409 `no_running_turn`** when the conversation has nothing in flight; queue work with `POST /prompt` instead. `error.details.reason` says why: `turn_ended` (with `error.details.lastTurn.status` and `.error` of the newest turn), `turn_not_started` (the turn is starting; retry in a moment), `no_turn`, `not_running` (the sandbox is not running) or `delivery_failed` (the sandbox did not accept the steer; check the turn before sending more work). The steer shows up in `GET /events` as a `steer` event. See [Integrated agents](/integrated-agents).
|
|
1164
1205
|
* Steer a running turn
|
|
1165
1206
|
*/
|
|
1166
1207
|
steer(requestParameters: SteerOperationRequest | runtime.FlatBody<SteerOperationRequest, 'steerRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SteerResponse>;
|
|
@@ -1169,12 +1210,12 @@ export declare class BoatApi extends runtime.BaseAPI {
|
|
|
1169
1210
|
*/
|
|
1170
1211
|
stopRequestOpts(input: StopOperationRequest | runtime.FlatBody<StopOperationRequest, 'stopRequest'>): Promise<runtime.RequestOpts>;
|
|
1171
1212
|
/**
|
|
1172
|
-
* Stop active work and archive/snapshot the sandbox for later resume or fork. A stop always saves the sandbox\'s disk first. If that save is failing, the stop is refused and the sandbox keeps running so your work is not discarded, we retry automatically and email you. You are not billed for time spent in that state. The stop is an operation: the response and the sandbox carry it as `stop`, with an `id` and a `status`. Poll `GET /sandboxes/{sandboxId}` until `stop.status` is `completed`. A failed attempt shows `failing` with its `error` and is retried until the sandbox archives; commands and prompts you send meanwhile do not cancel it. Only a resume ends it early (`superseded`). Calling stop again while one is pending returns the same `id`. Set `force: true` to stop anyway,
|
|
1213
|
+
* Stop active work and archive/snapshot the sandbox for later resume or fork. A stop always saves the sandbox\'s disk first. If that save is failing, the stop is refused and the sandbox keeps running so your work is not discarded, we retry automatically and email you. You are not billed for time spent in that state. The stop is an operation: the response and the sandbox carry it as `stop`, with an `id` and a `status`. Poll `GET /sandboxes/{sandboxId}` until `stop.status` is `completed`. A failed attempt shows `failing` with its `error` and is retried until the sandbox archives; commands and prompts you send meanwhile do not cancel it. Only a resume ends it early (`superseded`). Calling stop again while one is pending returns the same `id`. Set `force: true` to stop anyway, keeping the last successful snapshot and losing everything written since then. This is irreversible; only reach for it after a stop has already failed. A force on a stop that is already pending escalates that stop.
|
|
1173
1214
|
* Stop and archive sandbox
|
|
1174
1215
|
*/
|
|
1175
1216
|
stopRaw(requestParameters: StopOperationRequest | runtime.FlatBody<StopOperationRequest, 'stopRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxActionResponse>>;
|
|
1176
1217
|
/**
|
|
1177
|
-
* Stop active work and archive/snapshot the sandbox for later resume or fork. A stop always saves the sandbox\'s disk first. If that save is failing, the stop is refused and the sandbox keeps running so your work is not discarded, we retry automatically and email you. You are not billed for time spent in that state. The stop is an operation: the response and the sandbox carry it as `stop`, with an `id` and a `status`. Poll `GET /sandboxes/{sandboxId}` until `stop.status` is `completed`. A failed attempt shows `failing` with its `error` and is retried until the sandbox archives; commands and prompts you send meanwhile do not cancel it. Only a resume ends it early (`superseded`). Calling stop again while one is pending returns the same `id`. Set `force: true` to stop anyway,
|
|
1218
|
+
* Stop active work and archive/snapshot the sandbox for later resume or fork. A stop always saves the sandbox\'s disk first. If that save is failing, the stop is refused and the sandbox keeps running so your work is not discarded, we retry automatically and email you. You are not billed for time spent in that state. The stop is an operation: the response and the sandbox carry it as `stop`, with an `id` and a `status`. Poll `GET /sandboxes/{sandboxId}` until `stop.status` is `completed`. A failed attempt shows `failing` with its `error` and is retried until the sandbox archives; commands and prompts you send meanwhile do not cancel it. Only a resume ends it early (`superseded`). Calling stop again while one is pending returns the same `id`. Set `force: true` to stop anyway, keeping the last successful snapshot and losing everything written since then. This is irreversible; only reach for it after a stop has already failed. A force on a stop that is already pending escalates that stop.
|
|
1178
1219
|
* Stop and archive sandbox
|
|
1179
1220
|
*/
|
|
1180
1221
|
stop(requestParameters: StopOperationRequest | runtime.FlatBody<StopOperationRequest, 'stopRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxActionResponse>;
|
|
@@ -1277,10 +1318,12 @@ export declare class BoatApi extends runtime.BaseAPI {
|
|
|
1277
1318
|
*/
|
|
1278
1319
|
writeFileRequestOpts(input: WriteFileRequest | runtime.FlatBody<WriteFileRequest, 'fileWriteRequest'>): Promise<runtime.RequestOpts>;
|
|
1279
1320
|
/**
|
|
1321
|
+
* Files up to 5 MiB after decoding. Use SCP over SSH for larger files.
|
|
1280
1322
|
* Write a file in a sandbox
|
|
1281
1323
|
*/
|
|
1282
1324
|
writeFileRaw(requestParameters: WriteFileRequest | runtime.FlatBody<WriteFileRequest, 'fileWriteRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FileWriteResponse>>;
|
|
1283
1325
|
/**
|
|
1326
|
+
* Files up to 5 MiB after decoding. Use SCP over SSH for larger files.
|
|
1284
1327
|
* Write a file in a sandbox
|
|
1285
1328
|
*/
|
|
1286
1329
|
writeFile(requestParameters: WriteFileRequest | runtime.FlatBody<WriteFileRequest, 'fileWriteRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FileWriteResponse>;
|
package/dist/apis/BoatApi.js
CHANGED
|
@@ -88,6 +88,7 @@ const OrgListResponse_1 = require("../models/OrgListResponse");
|
|
|
88
88
|
const PromptRequest_1 = require("../models/PromptRequest");
|
|
89
89
|
const PromptResponse_1 = require("../models/PromptResponse");
|
|
90
90
|
const PromptRunResponse_1 = require("../models/PromptRunResponse");
|
|
91
|
+
const Recover200Response_1 = require("../models/Recover200Response");
|
|
91
92
|
const RepoSelectionRequest_1 = require("../models/RepoSelectionRequest");
|
|
92
93
|
const RepoSelectionResponse_1 = require("../models/RepoSelectionResponse");
|
|
93
94
|
const ReposResponse_1 = require("../models/ReposResponse");
|
|
@@ -111,6 +112,7 @@ const SshKeyRequest_1 = require("../models/SshKeyRequest");
|
|
|
111
112
|
const SshKeyResponse_1 = require("../models/SshKeyResponse");
|
|
112
113
|
const SteerRequest_1 = require("../models/SteerRequest");
|
|
113
114
|
const SteerResponse_1 = require("../models/SteerResponse");
|
|
115
|
+
const StopOperationResponse_1 = require("../models/StopOperationResponse");
|
|
114
116
|
const StopRequest_1 = require("../models/StopRequest");
|
|
115
117
|
const UpdateSandboxEnvironmentRequest_1 = require("../models/UpdateSandboxEnvironmentRequest");
|
|
116
118
|
const UpdateSandboxRequest_1 = require("../models/UpdateSandboxRequest");
|
|
@@ -286,6 +288,7 @@ class BoatApi extends runtime.BaseAPI {
|
|
|
286
288
|
};
|
|
287
289
|
}
|
|
288
290
|
/**
|
|
291
|
+
* Downloads one file of up to 50 MiB, under /home/user or /tmp, as raw bytes.
|
|
289
292
|
* Download a sandbox artifact
|
|
290
293
|
*/
|
|
291
294
|
async artifactRaw(requestParameters, initOverrides) {
|
|
@@ -294,6 +297,7 @@ class BoatApi extends runtime.BaseAPI {
|
|
|
294
297
|
return new runtime.BlobApiResponse(response);
|
|
295
298
|
}
|
|
296
299
|
/**
|
|
300
|
+
* Downloads one file of up to 50 MiB, under /home/user or /tmp, as raw bytes.
|
|
297
301
|
* Download a sandbox artifact
|
|
298
302
|
*/
|
|
299
303
|
async artifact(requestParameters, initOverrides) {
|
|
@@ -1556,6 +1560,52 @@ class BoatApi extends runtime.BaseAPI {
|
|
|
1556
1560
|
const response = await this.getSnapshotTreeRaw(requestParameters, initOverrides);
|
|
1557
1561
|
return await response.value();
|
|
1558
1562
|
}
|
|
1563
|
+
/**
|
|
1564
|
+
* Creates request options for getStop without sending the request
|
|
1565
|
+
*/
|
|
1566
|
+
async getStopRequestOpts(requestParameters) {
|
|
1567
|
+
if (requestParameters['sandboxId'] == null) {
|
|
1568
|
+
throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling getStop().');
|
|
1569
|
+
}
|
|
1570
|
+
if (requestParameters['stopId'] == null) {
|
|
1571
|
+
throw new runtime.RequiredError('stopId', 'Required parameter "stopId" was null or undefined when calling getStop().');
|
|
1572
|
+
}
|
|
1573
|
+
const queryParameters = {};
|
|
1574
|
+
const headerParameters = {};
|
|
1575
|
+
if (this.configuration && this.configuration.accessToken) {
|
|
1576
|
+
const token = this.configuration.accessToken;
|
|
1577
|
+
const tokenString = await token("BoatBearerAuth", []);
|
|
1578
|
+
if (tokenString) {
|
|
1579
|
+
headerParameters["Authorization"] = `Bearer ${tokenString}`;
|
|
1580
|
+
}
|
|
1581
|
+
}
|
|
1582
|
+
let urlPath = `/sandboxes/{sandboxId}/stops/{stopId}`;
|
|
1583
|
+
urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
|
|
1584
|
+
urlPath = urlPath.replace('{stopId}', encodeURIComponent(String(requestParameters['stopId'])));
|
|
1585
|
+
return {
|
|
1586
|
+
path: urlPath,
|
|
1587
|
+
method: 'GET',
|
|
1588
|
+
headers: headerParameters,
|
|
1589
|
+
query: queryParameters,
|
|
1590
|
+
};
|
|
1591
|
+
}
|
|
1592
|
+
/**
|
|
1593
|
+
* Returns one stop of this sandbox by the id that `POST /sandboxes/{sandboxId}/stop` returned. Old stops stay readable after a resume or a later stop. Returns 404 when the id is unknown or belongs to another sandbox.
|
|
1594
|
+
* Get a stop by id
|
|
1595
|
+
*/
|
|
1596
|
+
async getStopRaw(requestParameters, initOverrides) {
|
|
1597
|
+
const requestOptions = await this.getStopRequestOpts(requestParameters);
|
|
1598
|
+
const response = await this.request(requestOptions, initOverrides);
|
|
1599
|
+
return new runtime.JSONApiResponse(response, (jsonValue) => (0, StopOperationResponse_1.StopOperationResponseFromJSON)(jsonValue));
|
|
1600
|
+
}
|
|
1601
|
+
/**
|
|
1602
|
+
* Returns one stop of this sandbox by the id that `POST /sandboxes/{sandboxId}/stop` returned. Old stops stay readable after a resume or a later stop. Returns 404 when the id is unknown or belongs to another sandbox.
|
|
1603
|
+
* Get a stop by id
|
|
1604
|
+
*/
|
|
1605
|
+
async getStop(requestParameters, initOverrides) {
|
|
1606
|
+
const response = await this.getStopRaw(requestParameters, initOverrides);
|
|
1607
|
+
return await response.value();
|
|
1608
|
+
}
|
|
1559
1609
|
/**
|
|
1560
1610
|
* Creates request options for getWebhook without sending the request
|
|
1561
1611
|
*/
|
|
@@ -2117,6 +2167,7 @@ class BoatApi extends runtime.BaseAPI {
|
|
|
2117
2167
|
};
|
|
2118
2168
|
}
|
|
2119
2169
|
/**
|
|
2170
|
+
* Files up to 5 MiB. Use `GET /sandboxes/{sandboxId}/artifacts` for files up to 50 MiB, and SCP over SSH for larger ones.
|
|
2120
2171
|
* Read a file from a sandbox
|
|
2121
2172
|
*/
|
|
2122
2173
|
async readFileRaw(requestParameters, initOverrides) {
|
|
@@ -2125,12 +2176,55 @@ class BoatApi extends runtime.BaseAPI {
|
|
|
2125
2176
|
return new runtime.JSONApiResponse(response, (jsonValue) => (0, FileReadResponse_1.FileReadResponseFromJSON)(jsonValue));
|
|
2126
2177
|
}
|
|
2127
2178
|
/**
|
|
2179
|
+
* Files up to 5 MiB. Use `GET /sandboxes/{sandboxId}/artifacts` for files up to 50 MiB, and SCP over SSH for larger ones.
|
|
2128
2180
|
* Read a file from a sandbox
|
|
2129
2181
|
*/
|
|
2130
2182
|
async readFile(requestParameters, initOverrides) {
|
|
2131
2183
|
const response = await this.readFileRaw(requestParameters, initOverrides);
|
|
2132
2184
|
return await response.value();
|
|
2133
2185
|
}
|
|
2186
|
+
/**
|
|
2187
|
+
* Creates request options for recover without sending the request
|
|
2188
|
+
*/
|
|
2189
|
+
async recoverRequestOpts(requestParameters) {
|
|
2190
|
+
if (requestParameters['sandboxId'] == null) {
|
|
2191
|
+
throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling recover().');
|
|
2192
|
+
}
|
|
2193
|
+
const queryParameters = {};
|
|
2194
|
+
const headerParameters = {};
|
|
2195
|
+
if (this.configuration && this.configuration.accessToken) {
|
|
2196
|
+
const token = this.configuration.accessToken;
|
|
2197
|
+
const tokenString = await token("BoatBearerAuth", []);
|
|
2198
|
+
if (tokenString) {
|
|
2199
|
+
headerParameters["Authorization"] = `Bearer ${tokenString}`;
|
|
2200
|
+
}
|
|
2201
|
+
}
|
|
2202
|
+
let urlPath = `/sandboxes/{sandboxId}/recover`;
|
|
2203
|
+
urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
|
|
2204
|
+
return {
|
|
2205
|
+
path: urlPath,
|
|
2206
|
+
method: 'POST',
|
|
2207
|
+
headers: headerParameters,
|
|
2208
|
+
query: queryParameters,
|
|
2209
|
+
};
|
|
2210
|
+
}
|
|
2211
|
+
/**
|
|
2212
|
+
* Power-cycle the machine of a sandbox that stopped answering. The disk is not touched. The sandbox usually answers again within 1-2 minutes and then saves your work by itself; `sandbox.recovered` fires when it does. Refused with `409`: - `sandbox_is_reachable`: the sandbox answers normally. - `too_soon`: a recover started less than 10 minutes ago. - `no_machine`: the sandbox has no machine. Resume it instead. - `recover_unsupported`: its machine cannot be power-cycled. Wait for it to answer, or resume it from its last snapshot. - `reset_failed`: the power-cycle failed. Reply to the incident email.
|
|
2213
|
+
* Recover a sandbox that stopped responding
|
|
2214
|
+
*/
|
|
2215
|
+
async recoverRaw(requestParameters, initOverrides) {
|
|
2216
|
+
const requestOptions = await this.recoverRequestOpts(requestParameters);
|
|
2217
|
+
const response = await this.request(requestOptions, initOverrides);
|
|
2218
|
+
return new runtime.JSONApiResponse(response, (jsonValue) => (0, Recover200Response_1.Recover200ResponseFromJSON)(jsonValue));
|
|
2219
|
+
}
|
|
2220
|
+
/**
|
|
2221
|
+
* Power-cycle the machine of a sandbox that stopped answering. The disk is not touched. The sandbox usually answers again within 1-2 minutes and then saves your work by itself; `sandbox.recovered` fires when it does. Refused with `409`: - `sandbox_is_reachable`: the sandbox answers normally. - `too_soon`: a recover started less than 10 minutes ago. - `no_machine`: the sandbox has no machine. Resume it instead. - `recover_unsupported`: its machine cannot be power-cycled. Wait for it to answer, or resume it from its last snapshot. - `reset_failed`: the power-cycle failed. Reply to the incident email.
|
|
2222
|
+
* Recover a sandbox that stopped responding
|
|
2223
|
+
*/
|
|
2224
|
+
async recover(requestParameters, initOverrides) {
|
|
2225
|
+
const response = await this.recoverRaw(requestParameters, initOverrides);
|
|
2226
|
+
return await response.value();
|
|
2227
|
+
}
|
|
2134
2228
|
/**
|
|
2135
2229
|
* Creates request options for repos without sending the request
|
|
2136
2230
|
*/
|
|
@@ -2807,7 +2901,7 @@ class BoatApi extends runtime.BaseAPI {
|
|
|
2807
2901
|
};
|
|
2808
2902
|
}
|
|
2809
2903
|
/**
|
|
2810
|
-
* Send a new message to a turn that is already running, without losing what the agent is doing. This is what typing into a coding agent while it works does: the instruction is taken into account and the work continues. Where the harness has a native mid-turn primitive (Claude Code, Codex, pi, Prime Agent) nothing is interrupted and the response has `native: true`. Where it does not (OpenCode), Boat interrupts that turn and immediately continues the SAME conversation with the instruction, keeping the session and its memory, and the response has `native: false`. Refused with **409 `no_running_turn`** when the conversation has nothing in flight; queue work with `POST /prompt` instead. The steer shows up in `GET /events` as a `steer` event. See [Integrated agents](/integrated-agents).
|
|
2904
|
+
* Send a new message to a turn that is already running, without losing what the agent is doing. This is what typing into a coding agent while it works does: the instruction is taken into account and the work continues. Where the harness has a native mid-turn primitive (Claude Code, Codex, pi, Prime Agent) nothing is interrupted and the response has `native: true`. Where it does not (OpenCode), Boat interrupts that turn and immediately continues the SAME conversation with the instruction, keeping the session and its memory, and the response has `native: false`. Refused with **409 `no_running_turn`** when the conversation has nothing in flight; queue work with `POST /prompt` instead. `error.details.reason` says why: `turn_ended` (with `error.details.lastTurn.status` and `.error` of the newest turn), `turn_not_started` (the turn is starting; retry in a moment), `no_turn`, `not_running` (the sandbox is not running) or `delivery_failed` (the sandbox did not accept the steer; check the turn before sending more work). The steer shows up in `GET /events` as a `steer` event. See [Integrated agents](/integrated-agents).
|
|
2811
2905
|
* Steer a running turn
|
|
2812
2906
|
*/
|
|
2813
2907
|
async steerRaw(requestParameters, initOverrides) {
|
|
@@ -2816,7 +2910,7 @@ class BoatApi extends runtime.BaseAPI {
|
|
|
2816
2910
|
return new runtime.JSONApiResponse(response, (jsonValue) => (0, SteerResponse_1.SteerResponseFromJSON)(jsonValue));
|
|
2817
2911
|
}
|
|
2818
2912
|
/**
|
|
2819
|
-
* Send a new message to a turn that is already running, without losing what the agent is doing. This is what typing into a coding agent while it works does: the instruction is taken into account and the work continues. Where the harness has a native mid-turn primitive (Claude Code, Codex, pi, Prime Agent) nothing is interrupted and the response has `native: true`. Where it does not (OpenCode), Boat interrupts that turn and immediately continues the SAME conversation with the instruction, keeping the session and its memory, and the response has `native: false`. Refused with **409 `no_running_turn`** when the conversation has nothing in flight; queue work with `POST /prompt` instead. The steer shows up in `GET /events` as a `steer` event. See [Integrated agents](/integrated-agents).
|
|
2913
|
+
* Send a new message to a turn that is already running, without losing what the agent is doing. This is what typing into a coding agent while it works does: the instruction is taken into account and the work continues. Where the harness has a native mid-turn primitive (Claude Code, Codex, pi, Prime Agent) nothing is interrupted and the response has `native: true`. Where it does not (OpenCode), Boat interrupts that turn and immediately continues the SAME conversation with the instruction, keeping the session and its memory, and the response has `native: false`. Refused with **409 `no_running_turn`** when the conversation has nothing in flight; queue work with `POST /prompt` instead. `error.details.reason` says why: `turn_ended` (with `error.details.lastTurn.status` and `.error` of the newest turn), `turn_not_started` (the turn is starting; retry in a moment), `no_turn`, `not_running` (the sandbox is not running) or `delivery_failed` (the sandbox did not accept the steer; check the turn before sending more work). The steer shows up in `GET /events` as a `steer` event. See [Integrated agents](/integrated-agents).
|
|
2820
2914
|
* Steer a running turn
|
|
2821
2915
|
*/
|
|
2822
2916
|
async steer(requestParameters, initOverrides) {
|
|
@@ -2852,7 +2946,7 @@ class BoatApi extends runtime.BaseAPI {
|
|
|
2852
2946
|
};
|
|
2853
2947
|
}
|
|
2854
2948
|
/**
|
|
2855
|
-
* Stop active work and archive/snapshot the sandbox for later resume or fork. A stop always saves the sandbox\'s disk first. If that save is failing, the stop is refused and the sandbox keeps running so your work is not discarded, we retry automatically and email you. You are not billed for time spent in that state. The stop is an operation: the response and the sandbox carry it as `stop`, with an `id` and a `status`. Poll `GET /sandboxes/{sandboxId}` until `stop.status` is `completed`. A failed attempt shows `failing` with its `error` and is retried until the sandbox archives; commands and prompts you send meanwhile do not cancel it. Only a resume ends it early (`superseded`). Calling stop again while one is pending returns the same `id`. Set `force: true` to stop anyway,
|
|
2949
|
+
* Stop active work and archive/snapshot the sandbox for later resume or fork. A stop always saves the sandbox\'s disk first. If that save is failing, the stop is refused and the sandbox keeps running so your work is not discarded, we retry automatically and email you. You are not billed for time spent in that state. The stop is an operation: the response and the sandbox carry it as `stop`, with an `id` and a `status`. Poll `GET /sandboxes/{sandboxId}` until `stop.status` is `completed`. A failed attempt shows `failing` with its `error` and is retried until the sandbox archives; commands and prompts you send meanwhile do not cancel it. Only a resume ends it early (`superseded`). Calling stop again while one is pending returns the same `id`. Set `force: true` to stop anyway, keeping the last successful snapshot and losing everything written since then. This is irreversible; only reach for it after a stop has already failed. A force on a stop that is already pending escalates that stop.
|
|
2856
2950
|
* Stop and archive sandbox
|
|
2857
2951
|
*/
|
|
2858
2952
|
async stopRaw(requestParameters, initOverrides) {
|
|
@@ -2861,7 +2955,7 @@ class BoatApi extends runtime.BaseAPI {
|
|
|
2861
2955
|
return new runtime.JSONApiResponse(response, (jsonValue) => (0, SandboxActionResponse_1.SandboxActionResponseFromJSON)(jsonValue));
|
|
2862
2956
|
}
|
|
2863
2957
|
/**
|
|
2864
|
-
* Stop active work and archive/snapshot the sandbox for later resume or fork. A stop always saves the sandbox\'s disk first. If that save is failing, the stop is refused and the sandbox keeps running so your work is not discarded, we retry automatically and email you. You are not billed for time spent in that state. The stop is an operation: the response and the sandbox carry it as `stop`, with an `id` and a `status`. Poll `GET /sandboxes/{sandboxId}` until `stop.status` is `completed`. A failed attempt shows `failing` with its `error` and is retried until the sandbox archives; commands and prompts you send meanwhile do not cancel it. Only a resume ends it early (`superseded`). Calling stop again while one is pending returns the same `id`. Set `force: true` to stop anyway,
|
|
2958
|
+
* Stop active work and archive/snapshot the sandbox for later resume or fork. A stop always saves the sandbox\'s disk first. If that save is failing, the stop is refused and the sandbox keeps running so your work is not discarded, we retry automatically and email you. You are not billed for time spent in that state. The stop is an operation: the response and the sandbox carry it as `stop`, with an `id` and a `status`. Poll `GET /sandboxes/{sandboxId}` until `stop.status` is `completed`. A failed attempt shows `failing` with its `error` and is retried until the sandbox archives; commands and prompts you send meanwhile do not cancel it. Only a resume ends it early (`superseded`). Calling stop again while one is pending returns the same `id`. Set `force: true` to stop anyway, keeping the last successful snapshot and losing everything written since then. This is irreversible; only reach for it after a stop has already failed. A force on a stop that is already pending escalates that stop.
|
|
2865
2959
|
* Stop and archive sandbox
|
|
2866
2960
|
*/
|
|
2867
2961
|
async stop(requestParameters, initOverrides) {
|
|
@@ -3221,6 +3315,7 @@ class BoatApi extends runtime.BaseAPI {
|
|
|
3221
3315
|
};
|
|
3222
3316
|
}
|
|
3223
3317
|
/**
|
|
3318
|
+
* Files up to 5 MiB after decoding. Use SCP over SSH for larger files.
|
|
3224
3319
|
* Write a file in a sandbox
|
|
3225
3320
|
*/
|
|
3226
3321
|
async writeFileRaw(requestParameters, initOverrides) {
|
|
@@ -3229,6 +3324,7 @@ class BoatApi extends runtime.BaseAPI {
|
|
|
3229
3324
|
return new runtime.JSONApiResponse(response, (jsonValue) => (0, FileWriteResponse_1.FileWriteResponseFromJSON)(jsonValue));
|
|
3230
3325
|
}
|
|
3231
3326
|
/**
|
|
3327
|
+
* Files up to 5 MiB after decoding. Use SCP over SSH for larger files.
|
|
3232
3328
|
* Write a file in a sandbox
|
|
3233
3329
|
*/
|
|
3234
3330
|
async writeFile(requestParameters, initOverrides) {
|
|
@@ -50,6 +50,7 @@ import { type OrgListResponse } from '../models/OrgListResponse';
|
|
|
50
50
|
import { type PromptRequest } from '../models/PromptRequest';
|
|
51
51
|
import { type PromptResponse } from '../models/PromptResponse';
|
|
52
52
|
import { type PromptRunResponse } from '../models/PromptRunResponse';
|
|
53
|
+
import { type Recover200Response } from '../models/Recover200Response';
|
|
53
54
|
import { type RepoSelectionRequest } from '../models/RepoSelectionRequest';
|
|
54
55
|
import { type RepoSelectionResponse } from '../models/RepoSelectionResponse';
|
|
55
56
|
import { type ReposResponse } from '../models/ReposResponse';
|
|
@@ -73,6 +74,7 @@ import { type SshKeyRequest } from '../models/SshKeyRequest';
|
|
|
73
74
|
import { type SshKeyResponse } from '../models/SshKeyResponse';
|
|
74
75
|
import { type SteerRequest } from '../models/SteerRequest';
|
|
75
76
|
import { type SteerResponse } from '../models/SteerResponse';
|
|
77
|
+
import { type StopOperationResponse } from '../models/StopOperationResponse';
|
|
76
78
|
import { type StopRequest } from '../models/StopRequest';
|
|
77
79
|
import { type UpdateSandboxEnvironmentRequest } from '../models/UpdateSandboxEnvironmentRequest';
|
|
78
80
|
import { type UpdateSandboxRequest } from '../models/UpdateSandboxRequest';
|
|
@@ -196,6 +198,10 @@ export interface GetSnapshotFileRequest {
|
|
|
196
198
|
export interface GetSnapshotTreeRequest {
|
|
197
199
|
snapshotId: string;
|
|
198
200
|
}
|
|
201
|
+
export interface GetStopRequest {
|
|
202
|
+
sandboxId: string;
|
|
203
|
+
stopId: string;
|
|
204
|
+
}
|
|
199
205
|
export interface GetWebhookRequest {
|
|
200
206
|
webhookId: string;
|
|
201
207
|
}
|
|
@@ -236,6 +242,9 @@ export interface ReadFileRequest {
|
|
|
236
242
|
path: string;
|
|
237
243
|
encoding?: ReadFileEncodingEnum;
|
|
238
244
|
}
|
|
245
|
+
export interface RecoverRequest {
|
|
246
|
+
sandboxId: string;
|
|
247
|
+
}
|
|
239
248
|
export interface ReposRequest {
|
|
240
249
|
sync?: boolean;
|
|
241
250
|
limit?: number;
|
|
@@ -381,10 +390,12 @@ export declare class BoatApi extends runtime.BaseAPI {
|
|
|
381
390
|
*/
|
|
382
391
|
artifactRequestOpts(requestParameters: ArtifactRequest): Promise<runtime.RequestOpts>;
|
|
383
392
|
/**
|
|
393
|
+
* Downloads one file of up to 50 MiB, under /home/user or /tmp, as raw bytes.
|
|
384
394
|
* Download a sandbox artifact
|
|
385
395
|
*/
|
|
386
396
|
artifactRaw(requestParameters: ArtifactRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Blob>>;
|
|
387
397
|
/**
|
|
398
|
+
* Downloads one file of up to 50 MiB, under /home/user or /tmp, as raw bytes.
|
|
388
399
|
* Download a sandbox artifact
|
|
389
400
|
*/
|
|
390
401
|
artifact(requestParameters: ArtifactRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Blob>;
|
|
@@ -776,6 +787,20 @@ export declare class BoatApi extends runtime.BaseAPI {
|
|
|
776
787
|
* Get snapshot file tree
|
|
777
788
|
*/
|
|
778
789
|
getSnapshotTree(requestParameters: GetSnapshotTreeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SnapshotTreeResponse>;
|
|
790
|
+
/**
|
|
791
|
+
* Creates request options for getStop without sending the request
|
|
792
|
+
*/
|
|
793
|
+
getStopRequestOpts(requestParameters: GetStopRequest): Promise<runtime.RequestOpts>;
|
|
794
|
+
/**
|
|
795
|
+
* Returns one stop of this sandbox by the id that `POST /sandboxes/{sandboxId}/stop` returned. Old stops stay readable after a resume or a later stop. Returns 404 when the id is unknown or belongs to another sandbox.
|
|
796
|
+
* Get a stop by id
|
|
797
|
+
*/
|
|
798
|
+
getStopRaw(requestParameters: GetStopRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<StopOperationResponse>>;
|
|
799
|
+
/**
|
|
800
|
+
* Returns one stop of this sandbox by the id that `POST /sandboxes/{sandboxId}/stop` returned. Old stops stay readable after a resume or a later stop. Returns 404 when the id is unknown or belongs to another sandbox.
|
|
801
|
+
* Get a stop by id
|
|
802
|
+
*/
|
|
803
|
+
getStop(requestParameters: GetStopRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<StopOperationResponse>;
|
|
779
804
|
/**
|
|
780
805
|
* Creates request options for getWebhook without sending the request
|
|
781
806
|
*/
|
|
@@ -949,13 +974,29 @@ export declare class BoatApi extends runtime.BaseAPI {
|
|
|
949
974
|
*/
|
|
950
975
|
readFileRequestOpts(requestParameters: ReadFileRequest): Promise<runtime.RequestOpts>;
|
|
951
976
|
/**
|
|
977
|
+
* Files up to 5 MiB. Use `GET /sandboxes/{sandboxId}/artifacts` for files up to 50 MiB, and SCP over SSH for larger ones.
|
|
952
978
|
* Read a file from a sandbox
|
|
953
979
|
*/
|
|
954
980
|
readFileRaw(requestParameters: ReadFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FileReadResponse>>;
|
|
955
981
|
/**
|
|
982
|
+
* Files up to 5 MiB. Use `GET /sandboxes/{sandboxId}/artifacts` for files up to 50 MiB, and SCP over SSH for larger ones.
|
|
956
983
|
* Read a file from a sandbox
|
|
957
984
|
*/
|
|
958
985
|
readFile(requestParameters: ReadFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FileReadResponse>;
|
|
986
|
+
/**
|
|
987
|
+
* Creates request options for recover without sending the request
|
|
988
|
+
*/
|
|
989
|
+
recoverRequestOpts(requestParameters: RecoverRequest): Promise<runtime.RequestOpts>;
|
|
990
|
+
/**
|
|
991
|
+
* Power-cycle the machine of a sandbox that stopped answering. The disk is not touched. The sandbox usually answers again within 1-2 minutes and then saves your work by itself; `sandbox.recovered` fires when it does. Refused with `409`: - `sandbox_is_reachable`: the sandbox answers normally. - `too_soon`: a recover started less than 10 minutes ago. - `no_machine`: the sandbox has no machine. Resume it instead. - `recover_unsupported`: its machine cannot be power-cycled. Wait for it to answer, or resume it from its last snapshot. - `reset_failed`: the power-cycle failed. Reply to the incident email.
|
|
992
|
+
* Recover a sandbox that stopped responding
|
|
993
|
+
*/
|
|
994
|
+
recoverRaw(requestParameters: RecoverRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Recover200Response>>;
|
|
995
|
+
/**
|
|
996
|
+
* Power-cycle the machine of a sandbox that stopped answering. The disk is not touched. The sandbox usually answers again within 1-2 minutes and then saves your work by itself; `sandbox.recovered` fires when it does. Refused with `409`: - `sandbox_is_reachable`: the sandbox answers normally. - `too_soon`: a recover started less than 10 minutes ago. - `no_machine`: the sandbox has no machine. Resume it instead. - `recover_unsupported`: its machine cannot be power-cycled. Wait for it to answer, or resume it from its last snapshot. - `reset_failed`: the power-cycle failed. Reply to the incident email.
|
|
997
|
+
* Recover a sandbox that stopped responding
|
|
998
|
+
*/
|
|
999
|
+
recover(requestParameters: RecoverRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Recover200Response>;
|
|
959
1000
|
/**
|
|
960
1001
|
* Creates request options for repos without sending the request
|
|
961
1002
|
*/
|
|
@@ -1155,12 +1196,12 @@ export declare class BoatApi extends runtime.BaseAPI {
|
|
|
1155
1196
|
*/
|
|
1156
1197
|
steerRequestOpts(input: SteerOperationRequest | runtime.FlatBody<SteerOperationRequest, 'steerRequest'>): Promise<runtime.RequestOpts>;
|
|
1157
1198
|
/**
|
|
1158
|
-
* Send a new message to a turn that is already running, without losing what the agent is doing. This is what typing into a coding agent while it works does: the instruction is taken into account and the work continues. Where the harness has a native mid-turn primitive (Claude Code, Codex, pi, Prime Agent) nothing is interrupted and the response has `native: true`. Where it does not (OpenCode), Boat interrupts that turn and immediately continues the SAME conversation with the instruction, keeping the session and its memory, and the response has `native: false`. Refused with **409 `no_running_turn`** when the conversation has nothing in flight; queue work with `POST /prompt` instead. The steer shows up in `GET /events` as a `steer` event. See [Integrated agents](/integrated-agents).
|
|
1199
|
+
* Send a new message to a turn that is already running, without losing what the agent is doing. This is what typing into a coding agent while it works does: the instruction is taken into account and the work continues. Where the harness has a native mid-turn primitive (Claude Code, Codex, pi, Prime Agent) nothing is interrupted and the response has `native: true`. Where it does not (OpenCode), Boat interrupts that turn and immediately continues the SAME conversation with the instruction, keeping the session and its memory, and the response has `native: false`. Refused with **409 `no_running_turn`** when the conversation has nothing in flight; queue work with `POST /prompt` instead. `error.details.reason` says why: `turn_ended` (with `error.details.lastTurn.status` and `.error` of the newest turn), `turn_not_started` (the turn is starting; retry in a moment), `no_turn`, `not_running` (the sandbox is not running) or `delivery_failed` (the sandbox did not accept the steer; check the turn before sending more work). The steer shows up in `GET /events` as a `steer` event. See [Integrated agents](/integrated-agents).
|
|
1159
1200
|
* Steer a running turn
|
|
1160
1201
|
*/
|
|
1161
1202
|
steerRaw(requestParameters: SteerOperationRequest | runtime.FlatBody<SteerOperationRequest, 'steerRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SteerResponse>>;
|
|
1162
1203
|
/**
|
|
1163
|
-
* Send a new message to a turn that is already running, without losing what the agent is doing. This is what typing into a coding agent while it works does: the instruction is taken into account and the work continues. Where the harness has a native mid-turn primitive (Claude Code, Codex, pi, Prime Agent) nothing is interrupted and the response has `native: true`. Where it does not (OpenCode), Boat interrupts that turn and immediately continues the SAME conversation with the instruction, keeping the session and its memory, and the response has `native: false`. Refused with **409 `no_running_turn`** when the conversation has nothing in flight; queue work with `POST /prompt` instead. The steer shows up in `GET /events` as a `steer` event. See [Integrated agents](/integrated-agents).
|
|
1204
|
+
* Send a new message to a turn that is already running, without losing what the agent is doing. This is what typing into a coding agent while it works does: the instruction is taken into account and the work continues. Where the harness has a native mid-turn primitive (Claude Code, Codex, pi, Prime Agent) nothing is interrupted and the response has `native: true`. Where it does not (OpenCode), Boat interrupts that turn and immediately continues the SAME conversation with the instruction, keeping the session and its memory, and the response has `native: false`. Refused with **409 `no_running_turn`** when the conversation has nothing in flight; queue work with `POST /prompt` instead. `error.details.reason` says why: `turn_ended` (with `error.details.lastTurn.status` and `.error` of the newest turn), `turn_not_started` (the turn is starting; retry in a moment), `no_turn`, `not_running` (the sandbox is not running) or `delivery_failed` (the sandbox did not accept the steer; check the turn before sending more work). The steer shows up in `GET /events` as a `steer` event. See [Integrated agents](/integrated-agents).
|
|
1164
1205
|
* Steer a running turn
|
|
1165
1206
|
*/
|
|
1166
1207
|
steer(requestParameters: SteerOperationRequest | runtime.FlatBody<SteerOperationRequest, 'steerRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SteerResponse>;
|
|
@@ -1169,12 +1210,12 @@ export declare class BoatApi extends runtime.BaseAPI {
|
|
|
1169
1210
|
*/
|
|
1170
1211
|
stopRequestOpts(input: StopOperationRequest | runtime.FlatBody<StopOperationRequest, 'stopRequest'>): Promise<runtime.RequestOpts>;
|
|
1171
1212
|
/**
|
|
1172
|
-
* Stop active work and archive/snapshot the sandbox for later resume or fork. A stop always saves the sandbox\'s disk first. If that save is failing, the stop is refused and the sandbox keeps running so your work is not discarded, we retry automatically and email you. You are not billed for time spent in that state. The stop is an operation: the response and the sandbox carry it as `stop`, with an `id` and a `status`. Poll `GET /sandboxes/{sandboxId}` until `stop.status` is `completed`. A failed attempt shows `failing` with its `error` and is retried until the sandbox archives; commands and prompts you send meanwhile do not cancel it. Only a resume ends it early (`superseded`). Calling stop again while one is pending returns the same `id`. Set `force: true` to stop anyway,
|
|
1213
|
+
* Stop active work and archive/snapshot the sandbox for later resume or fork. A stop always saves the sandbox\'s disk first. If that save is failing, the stop is refused and the sandbox keeps running so your work is not discarded, we retry automatically and email you. You are not billed for time spent in that state. The stop is an operation: the response and the sandbox carry it as `stop`, with an `id` and a `status`. Poll `GET /sandboxes/{sandboxId}` until `stop.status` is `completed`. A failed attempt shows `failing` with its `error` and is retried until the sandbox archives; commands and prompts you send meanwhile do not cancel it. Only a resume ends it early (`superseded`). Calling stop again while one is pending returns the same `id`. Set `force: true` to stop anyway, keeping the last successful snapshot and losing everything written since then. This is irreversible; only reach for it after a stop has already failed. A force on a stop that is already pending escalates that stop.
|
|
1173
1214
|
* Stop and archive sandbox
|
|
1174
1215
|
*/
|
|
1175
1216
|
stopRaw(requestParameters: StopOperationRequest | runtime.FlatBody<StopOperationRequest, 'stopRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxActionResponse>>;
|
|
1176
1217
|
/**
|
|
1177
|
-
* Stop active work and archive/snapshot the sandbox for later resume or fork. A stop always saves the sandbox\'s disk first. If that save is failing, the stop is refused and the sandbox keeps running so your work is not discarded, we retry automatically and email you. You are not billed for time spent in that state. The stop is an operation: the response and the sandbox carry it as `stop`, with an `id` and a `status`. Poll `GET /sandboxes/{sandboxId}` until `stop.status` is `completed`. A failed attempt shows `failing` with its `error` and is retried until the sandbox archives; commands and prompts you send meanwhile do not cancel it. Only a resume ends it early (`superseded`). Calling stop again while one is pending returns the same `id`. Set `force: true` to stop anyway,
|
|
1218
|
+
* Stop active work and archive/snapshot the sandbox for later resume or fork. A stop always saves the sandbox\'s disk first. If that save is failing, the stop is refused and the sandbox keeps running so your work is not discarded, we retry automatically and email you. You are not billed for time spent in that state. The stop is an operation: the response and the sandbox carry it as `stop`, with an `id` and a `status`. Poll `GET /sandboxes/{sandboxId}` until `stop.status` is `completed`. A failed attempt shows `failing` with its `error` and is retried until the sandbox archives; commands and prompts you send meanwhile do not cancel it. Only a resume ends it early (`superseded`). Calling stop again while one is pending returns the same `id`. Set `force: true` to stop anyway, keeping the last successful snapshot and losing everything written since then. This is irreversible; only reach for it after a stop has already failed. A force on a stop that is already pending escalates that stop.
|
|
1178
1219
|
* Stop and archive sandbox
|
|
1179
1220
|
*/
|
|
1180
1221
|
stop(requestParameters: StopOperationRequest | runtime.FlatBody<StopOperationRequest, 'stopRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxActionResponse>;
|
|
@@ -1277,10 +1318,12 @@ export declare class BoatApi extends runtime.BaseAPI {
|
|
|
1277
1318
|
*/
|
|
1278
1319
|
writeFileRequestOpts(input: WriteFileRequest | runtime.FlatBody<WriteFileRequest, 'fileWriteRequest'>): Promise<runtime.RequestOpts>;
|
|
1279
1320
|
/**
|
|
1321
|
+
* Files up to 5 MiB after decoding. Use SCP over SSH for larger files.
|
|
1280
1322
|
* Write a file in a sandbox
|
|
1281
1323
|
*/
|
|
1282
1324
|
writeFileRaw(requestParameters: WriteFileRequest | runtime.FlatBody<WriteFileRequest, 'fileWriteRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FileWriteResponse>>;
|
|
1283
1325
|
/**
|
|
1326
|
+
* Files up to 5 MiB after decoding. Use SCP over SSH for larger files.
|
|
1284
1327
|
* Write a file in a sandbox
|
|
1285
1328
|
*/
|
|
1286
1329
|
writeFile(requestParameters: WriteFileRequest | runtime.FlatBody<WriteFileRequest, 'fileWriteRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FileWriteResponse>;
|