@miosa/sdk 3.4.1 → 3.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.
- package/README.md +336 -0
- package/dist/chunk-BMWUKYWU.js +463 -0
- package/dist/chunk-BMWUKYWU.js.map +1 -0
- package/dist/chunk-H245ZDMW.js +195 -0
- package/dist/chunk-H245ZDMW.js.map +1 -0
- package/dist/client-C_uXhex9.d.ts +9221 -0
- package/dist/computer-CKDK0Ahy.d.ts +3689 -0
- package/dist/computer-use/index.d.ts +154 -0
- package/dist/computer-use/index.js +185 -0
- package/dist/computer-use/index.js.map +1 -0
- package/dist/helpers/index.d.ts +77 -0
- package/dist/helpers/index.js +151 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/index.d.ts +7 -9312
- package/dist/index.js +7256 -4169
- package/dist/index.js.map +1 -1
- package/package.json +18 -1
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
+
}) : x)(function(x) {
|
|
4
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
5
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
// src/errors.ts
|
|
9
|
+
function defaultRetryable(status) {
|
|
10
|
+
return status === 408 || status === 429 || status >= 500;
|
|
11
|
+
}
|
|
12
|
+
var MiosaError = class _MiosaError extends Error {
|
|
13
|
+
status;
|
|
14
|
+
code;
|
|
15
|
+
details;
|
|
16
|
+
requestId;
|
|
17
|
+
retryable;
|
|
18
|
+
/**
|
|
19
|
+
* Server-supplied retry hint in milliseconds, taken from the canonical
|
|
20
|
+
* error shape's `retry_after_ms` (nested under `error` or top-level) or,
|
|
21
|
+
* failing that, the HTTP `Retry-After` header. `undefined` when the
|
|
22
|
+
* response carried neither, in which case a caller should fall back to
|
|
23
|
+
* its own backoff policy.
|
|
24
|
+
*/
|
|
25
|
+
retryAfterMs;
|
|
26
|
+
constructor(message, status, code, details, requestId, retryable = defaultRetryable(status), retryAfterMs) {
|
|
27
|
+
super(message);
|
|
28
|
+
this.name = "MiosaError";
|
|
29
|
+
this.status = status;
|
|
30
|
+
this.code = code;
|
|
31
|
+
this.details = details;
|
|
32
|
+
this.requestId = requestId;
|
|
33
|
+
this.retryable = retryable;
|
|
34
|
+
this.retryAfterMs = retryAfterMs;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @param retryAfterHeaderMs The `Retry-After` header value, already
|
|
38
|
+
* converted to milliseconds by the caller. Used only when the body does
|
|
39
|
+
* not carry the more precise `retry_after_ms`.
|
|
40
|
+
*/
|
|
41
|
+
static fromResponse(status, body, requestId, retryAfterHeaderMs) {
|
|
42
|
+
const nested = typeof body.error === "object" ? body.error : void 0;
|
|
43
|
+
const flatError = typeof body.error === "string" ? body.error : void 0;
|
|
44
|
+
const flatErrorIsCode = !!flatError && (/^[A-Z][A-Z0-9_]+$/.test(flatError) || /^[a-z][a-z0-9]*(_[a-z0-9]+)+$/.test(flatError));
|
|
45
|
+
const message = nested?.message ?? body.message ?? body.detail ?? body.reason ?? flatError ?? `HTTP ${status}`;
|
|
46
|
+
const code = nested?.code ?? body.code ?? (flatErrorIsCode ? flatError : "UNKNOWN_ERROR");
|
|
47
|
+
const details = nested?.details ?? body.details ?? (body.detail || body.reason ? { detail: body.detail, reason: body.reason } : void 0) ?? extraFields(body, nested);
|
|
48
|
+
requestId ??= nested?.request_id ?? body.request_id;
|
|
49
|
+
const retryable = nested?.retryable ?? body.retryable ?? RETRYABLE_BY_CODE[code] ?? defaultRetryable(status);
|
|
50
|
+
const retryAfterMs = nested?.retry_after_ms ?? body.retry_after_ms ?? retryAfterHeaderMs;
|
|
51
|
+
const connectError = connectErrorFromCode(code, message, status, details, requestId, retryable) ?? typedErrorFromCode(code, message, status, details, requestId, retryable, retryAfterMs);
|
|
52
|
+
const built = connectError ?? (status === 401 || status === 403 ? new AuthError(message, status, code, details, requestId, retryable) : status === 404 ? new NotFoundError(message, code, details, requestId, retryable) : status === 429 ? new RateLimitError(
|
|
53
|
+
message,
|
|
54
|
+
details,
|
|
55
|
+
requestId,
|
|
56
|
+
retryAfterMs === void 0 ? void 0 : retryAfterMs / 1e3,
|
|
57
|
+
retryable,
|
|
58
|
+
// Keep the server's own code (SERVICE_ACCOUNT_LIMIT, ...) when it sent one.
|
|
59
|
+
code === "UNKNOWN_ERROR" ? "RATE_LIMITED" : code
|
|
60
|
+
) : status === 402 ? new InsufficientCreditsError(
|
|
61
|
+
message,
|
|
62
|
+
details,
|
|
63
|
+
requestId,
|
|
64
|
+
retryable,
|
|
65
|
+
code === "UNKNOWN_ERROR" ? "INSUFFICIENT_CREDITS" : code
|
|
66
|
+
) : status >= 400 && status < 500 ? new ValidationError(message, status, code, details, requestId, retryable) : new _MiosaError(message, status, code, details, requestId, retryable));
|
|
67
|
+
built.retryAfterMs = retryAfterMs;
|
|
68
|
+
return built;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
var ENVELOPE_KEYS = /* @__PURE__ */ new Set([
|
|
72
|
+
"error",
|
|
73
|
+
"message",
|
|
74
|
+
"code",
|
|
75
|
+
"detail",
|
|
76
|
+
"details",
|
|
77
|
+
"reason",
|
|
78
|
+
"request_id",
|
|
79
|
+
"retryable",
|
|
80
|
+
"retry_after_ms",
|
|
81
|
+
"ok",
|
|
82
|
+
"success",
|
|
83
|
+
"status"
|
|
84
|
+
]);
|
|
85
|
+
var NESTED_KEYS = /* @__PURE__ */ new Set(["code", "message", "details", "retryable", "request_id", "retry_after_ms"]);
|
|
86
|
+
function extraFields(body, nested) {
|
|
87
|
+
const extras = {};
|
|
88
|
+
for (const [key, value] of Object.entries(body)) {
|
|
89
|
+
if (!ENVELOPE_KEYS.has(key)) extras[key] = value;
|
|
90
|
+
}
|
|
91
|
+
if (nested) {
|
|
92
|
+
for (const [key, value] of Object.entries(nested)) {
|
|
93
|
+
if (!NESTED_KEYS.has(key)) extras[key] = value;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return Object.keys(extras).length > 0 ? extras : void 0;
|
|
97
|
+
}
|
|
98
|
+
function connectErrorFromCode(code, message, status, details, requestId, retryable) {
|
|
99
|
+
switch (code) {
|
|
100
|
+
case "PROJECT_NOT_LINKED":
|
|
101
|
+
return new ProjectNotLinkedError(message, status, details, requestId, retryable);
|
|
102
|
+
case "SUBJECT_NOT_ALLOWED":
|
|
103
|
+
return new SubjectNotAllowedError(message, status, details, requestId, retryable);
|
|
104
|
+
case "SCOPE_NOT_ALLOWED":
|
|
105
|
+
return new ScopeNotAllowedError(message, status, details, requestId, retryable);
|
|
106
|
+
case "MANAGED_PROVIDER_BINDING_ONLY":
|
|
107
|
+
return new ManagedProviderBindingOnlyError(message, status, details, requestId, retryable);
|
|
108
|
+
case "INSTALLATION_REQUIRED":
|
|
109
|
+
return new InstallationRequiredError(message, status, details, requestId, retryable);
|
|
110
|
+
case "USER_AUTHORIZATION_REQUIRED":
|
|
111
|
+
return new UserAuthorizationRequiredError(message, status, details, requestId, retryable);
|
|
112
|
+
case "EGRESS_HOST_NOT_ALLOWED":
|
|
113
|
+
return new EgressHostNotAllowedError(message, status, details, requestId, retryable);
|
|
114
|
+
case "TOKEN_REFRESH_FAILED":
|
|
115
|
+
return new TokenRefreshFailedError(message, status, details, requestId, retryable);
|
|
116
|
+
default:
|
|
117
|
+
return void 0;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
var AuthError = class extends MiosaError {
|
|
121
|
+
constructor(message, status = 401, code = "UNAUTHORIZED", details, requestId, retryable) {
|
|
122
|
+
super(message, status, code, details, requestId, retryable);
|
|
123
|
+
this.name = "AuthError";
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
var NotFoundError = class extends MiosaError {
|
|
127
|
+
constructor(message, code = "NOT_FOUND", details, requestId, retryable) {
|
|
128
|
+
super(message, 404, code, details, requestId, retryable);
|
|
129
|
+
this.name = "NotFoundError";
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
var RateLimitError = class extends MiosaError {
|
|
133
|
+
retryAfter;
|
|
134
|
+
constructor(message, details, requestId, retryAfter, retryable, code = "RATE_LIMITED") {
|
|
135
|
+
super(message, 429, code, details, requestId, retryable);
|
|
136
|
+
this.name = "RateLimitError";
|
|
137
|
+
this.retryAfter = retryAfter;
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
var InsufficientCreditsError = class extends MiosaError {
|
|
141
|
+
constructor(message, details, requestId, retryable, code = "INSUFFICIENT_CREDITS") {
|
|
142
|
+
super(message, 402, code, details, requestId, retryable);
|
|
143
|
+
this.name = "InsufficientCreditsError";
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
var ValidationError = class extends MiosaError {
|
|
147
|
+
constructor(message, status, code = "VALIDATION_ERROR", details, requestId, retryable) {
|
|
148
|
+
super(message, status, code, details, requestId, retryable);
|
|
149
|
+
this.name = "ValidationError";
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
var TimeoutError = class extends MiosaError {
|
|
153
|
+
constructor(message = "Request timed out") {
|
|
154
|
+
super(message, 408, "TIMEOUT", void 0, void 0, true);
|
|
155
|
+
this.name = "TimeoutError";
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
var NetworkError = class extends MiosaError {
|
|
159
|
+
cause;
|
|
160
|
+
constructor(message, cause) {
|
|
161
|
+
super(message, 0, "NETWORK_ERROR", void 0, void 0, true);
|
|
162
|
+
this.name = "NetworkError";
|
|
163
|
+
this.cause = cause;
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
var ProjectNotLinkedError = class extends MiosaError {
|
|
167
|
+
constructor(message, status = 403, details, requestId, retryable) {
|
|
168
|
+
super(message, status, "PROJECT_NOT_LINKED", details, requestId, retryable);
|
|
169
|
+
this.name = "ProjectNotLinkedError";
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
var SubjectNotAllowedError = class extends MiosaError {
|
|
173
|
+
constructor(message, status = 403, details, requestId, retryable) {
|
|
174
|
+
super(message, status, "SUBJECT_NOT_ALLOWED", details, requestId, retryable);
|
|
175
|
+
this.name = "SubjectNotAllowedError";
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
var ScopeNotAllowedError = class extends MiosaError {
|
|
179
|
+
constructor(message, status = 403, details, requestId, retryable) {
|
|
180
|
+
super(message, status, "SCOPE_NOT_ALLOWED", details, requestId, retryable);
|
|
181
|
+
this.name = "ScopeNotAllowedError";
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
var ManagedProviderBindingOnlyError = class extends MiosaError {
|
|
185
|
+
constructor(message, status = 403, details, requestId, retryable) {
|
|
186
|
+
super(message, status, "MANAGED_PROVIDER_BINDING_ONLY", details, requestId, retryable);
|
|
187
|
+
this.name = "ManagedProviderBindingOnlyError";
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
var InstallationRequiredError = class extends MiosaError {
|
|
191
|
+
constructor(message, status = 409, details, requestId, retryable) {
|
|
192
|
+
super(message, status, "INSTALLATION_REQUIRED", details, requestId, retryable);
|
|
193
|
+
this.name = "InstallationRequiredError";
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
var UserAuthorizationRequiredError = class extends MiosaError {
|
|
197
|
+
constructor(message, status = 403, details, requestId, retryable) {
|
|
198
|
+
super(message, status, "USER_AUTHORIZATION_REQUIRED", details, requestId, retryable);
|
|
199
|
+
this.name = "UserAuthorizationRequiredError";
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
var EgressHostNotAllowedError = class extends MiosaError {
|
|
203
|
+
constructor(message, status = 403, details, requestId, retryable) {
|
|
204
|
+
super(message, status, "EGRESS_HOST_NOT_ALLOWED", details, requestId, retryable);
|
|
205
|
+
this.name = "EgressHostNotAllowedError";
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
var TokenRefreshFailedError = class extends MiosaError {
|
|
209
|
+
constructor(message, status = 502, details, requestId, retryable) {
|
|
210
|
+
super(message, status, "TOKEN_REFRESH_FAILED", details, requestId, retryable);
|
|
211
|
+
this.name = "TokenRefreshFailedError";
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
var RETRYABLE_BY_CODE = {
|
|
215
|
+
SANDBOX_STARTING: true,
|
|
216
|
+
COMPUTER_STARTING: true,
|
|
217
|
+
ENVIRONMENT_SCRUB_FAILED: true,
|
|
218
|
+
CHAT_BUSY: true,
|
|
219
|
+
ENVIRONMENT_MEMORY_WITHHELD: false,
|
|
220
|
+
NO_AGENT_RUN: false,
|
|
221
|
+
MEMBER_LIMIT_REACHED: false,
|
|
222
|
+
NO_READY_MACHINE: true,
|
|
223
|
+
no_ready_machine: true
|
|
224
|
+
};
|
|
225
|
+
var NoReadyMachineError = class extends MiosaError {
|
|
226
|
+
constructor(message, status = 503, details, requestId, retryable = true, retryAfterMs) {
|
|
227
|
+
super(message, status, "no_ready_machine", details, requestId, retryable, retryAfterMs);
|
|
228
|
+
this.name = "NoReadyMachineError";
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
var InvalidIdError = class extends ValidationError {
|
|
232
|
+
constructor(message, status = 400, details, requestId, retryable) {
|
|
233
|
+
super(message, status, "INVALID_ID", details, requestId, retryable);
|
|
234
|
+
this.name = "InvalidIdError";
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
var OwnCredentialsRequiredError = class extends ValidationError {
|
|
238
|
+
constructor(message, status = 422, details, requestId, retryable) {
|
|
239
|
+
super(message, status, "OWN_CREDENTIALS_REQUIRED", details, requestId, retryable);
|
|
240
|
+
this.name = "OwnCredentialsRequiredError";
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
var EnvironmentNotFoundError = class extends NotFoundError {
|
|
244
|
+
constructor(message, details, requestId, retryable) {
|
|
245
|
+
super(message, "ENVIRONMENT_NOT_FOUND", details, requestId, retryable);
|
|
246
|
+
this.name = "EnvironmentNotFoundError";
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
var UnknownEnvironmentError = class extends ValidationError {
|
|
250
|
+
constructor(message, status = 422, details, requestId, retryable) {
|
|
251
|
+
super(message, status, "ENVIRONMENT_NOT_FOUND", details, requestId, retryable);
|
|
252
|
+
this.name = "UnknownEnvironmentError";
|
|
253
|
+
}
|
|
254
|
+
};
|
|
255
|
+
var EnvironmentNameTakenError = class extends ValidationError {
|
|
256
|
+
constructor(message, status = 409, details, requestId, retryable) {
|
|
257
|
+
super(message, status, "ENVIRONMENT_NAME_TAKEN", details, requestId, retryable);
|
|
258
|
+
this.name = "EnvironmentNameTakenError";
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
var EnvironmentIsDefaultError = class extends ValidationError {
|
|
262
|
+
constructor(message, status = 409, details, requestId, retryable) {
|
|
263
|
+
super(message, status, "ENVIRONMENT_IS_DEFAULT", details, requestId, retryable);
|
|
264
|
+
this.name = "EnvironmentIsDefaultError";
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
var EnvironmentScrubFailedError = class extends ValidationError {
|
|
268
|
+
constructor(message, status = 409, details, requestId, retryable = true) {
|
|
269
|
+
super(message, status, "ENVIRONMENT_SCRUB_FAILED", details, requestId, retryable);
|
|
270
|
+
this.name = "EnvironmentScrubFailedError";
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
var EnvironmentMemoryWithheldError = class extends ValidationError {
|
|
274
|
+
constructor(message, status = 409, details, requestId, retryable = false) {
|
|
275
|
+
super(message, status, "ENVIRONMENT_MEMORY_WITHHELD", details, requestId, retryable);
|
|
276
|
+
this.name = "EnvironmentMemoryWithheldError";
|
|
277
|
+
}
|
|
278
|
+
/** `details.reasons`: why the memory was withheld. Empty when absent. */
|
|
279
|
+
get reasons() {
|
|
280
|
+
const reasons = this.details?.reasons;
|
|
281
|
+
return Array.isArray(reasons) ? reasons.filter((r) => typeof r === "string") : [];
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
var MachineKeyScopeError = class extends AuthError {
|
|
285
|
+
constructor(message, status = 403, details, requestId, retryable) {
|
|
286
|
+
super(message, status, "MACHINE_KEY_SCOPE", details, requestId, retryable);
|
|
287
|
+
this.name = "MachineKeyScopeError";
|
|
288
|
+
}
|
|
289
|
+
};
|
|
290
|
+
var MachineStartingError = class extends ValidationError {
|
|
291
|
+
constructor(message, status = 409, code = "SANDBOX_STARTING", details, requestId, retryable = true) {
|
|
292
|
+
super(message, status, code, details, requestId, retryable);
|
|
293
|
+
this.name = "MachineStartingError";
|
|
294
|
+
}
|
|
295
|
+
};
|
|
296
|
+
var SandboxStartingError = class extends MachineStartingError {
|
|
297
|
+
constructor(message, status = 409, details, requestId, retryable = true) {
|
|
298
|
+
super(message, status, "SANDBOX_STARTING", details, requestId, retryable);
|
|
299
|
+
this.name = "SandboxStartingError";
|
|
300
|
+
}
|
|
301
|
+
};
|
|
302
|
+
var ComputerStartingError = class extends MachineStartingError {
|
|
303
|
+
constructor(message, status = 409, details, requestId, retryable = true) {
|
|
304
|
+
super(message, status, "COMPUTER_STARTING", details, requestId, retryable);
|
|
305
|
+
this.name = "ComputerStartingError";
|
|
306
|
+
}
|
|
307
|
+
};
|
|
308
|
+
var CreditRequiredError = class extends InsufficientCreditsError {
|
|
309
|
+
constructor(message, details, requestId, retryable) {
|
|
310
|
+
super(message, details, requestId, retryable, "CREDIT_REQUIRED");
|
|
311
|
+
this.name = "CreditRequiredError";
|
|
312
|
+
}
|
|
313
|
+
};
|
|
314
|
+
var TeamMemberCapReachedError = class extends InsufficientCreditsError {
|
|
315
|
+
constructor(message, details, requestId, retryable) {
|
|
316
|
+
super(message, details, requestId, retryable, "TEAM_MEMBER_CAP_REACHED");
|
|
317
|
+
this.name = "TeamMemberCapReachedError";
|
|
318
|
+
}
|
|
319
|
+
};
|
|
320
|
+
var MemberLimitReachedError = class extends RateLimitError {
|
|
321
|
+
constructor(message, details, requestId, retryAfter, retryable = false) {
|
|
322
|
+
super(message, details, requestId, retryAfter, retryable, "MEMBER_LIMIT_REACHED");
|
|
323
|
+
this.name = "MemberLimitReachedError";
|
|
324
|
+
}
|
|
325
|
+
};
|
|
326
|
+
var BillToLockedError = class extends AuthError {
|
|
327
|
+
constructor(message, status = 403, details, requestId, retryable) {
|
|
328
|
+
super(message, status, "BILL_TO_LOCKED", details, requestId, retryable);
|
|
329
|
+
this.name = "BillToLockedError";
|
|
330
|
+
}
|
|
331
|
+
};
|
|
332
|
+
var BillToForbiddenError = class extends AuthError {
|
|
333
|
+
constructor(message, status = 403, details, requestId, retryable) {
|
|
334
|
+
super(message, status, "BILL_TO_FORBIDDEN", details, requestId, retryable);
|
|
335
|
+
this.name = "BillToForbiddenError";
|
|
336
|
+
}
|
|
337
|
+
};
|
|
338
|
+
var BillToSuspendedError = class extends AuthError {
|
|
339
|
+
constructor(message, status = 403, details, requestId, retryable) {
|
|
340
|
+
super(message, status, "BILL_TO_SUSPENDED", details, requestId, retryable);
|
|
341
|
+
this.name = "BillToSuspendedError";
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
var OrgNotFoundError = class extends NotFoundError {
|
|
345
|
+
constructor(message, details, requestId, retryable) {
|
|
346
|
+
super(message, "ORG_NOT_FOUND", details, requestId, retryable);
|
|
347
|
+
this.name = "OrgNotFoundError";
|
|
348
|
+
}
|
|
349
|
+
};
|
|
350
|
+
var AmbiguousOrgError = class extends ValidationError {
|
|
351
|
+
constructor(message, status = 409, details, requestId, retryable) {
|
|
352
|
+
super(message, status, "AMBIGUOUS_ORG", details, requestId, retryable);
|
|
353
|
+
this.name = "AmbiguousOrgError";
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
var SnapshotInUseError = class extends ValidationError {
|
|
357
|
+
constructor(message, status = 409, details, requestId, retryable) {
|
|
358
|
+
super(message, status, "SNAPSHOT_IN_USE", details, requestId, retryable);
|
|
359
|
+
this.name = "SnapshotInUseError";
|
|
360
|
+
}
|
|
361
|
+
/** `details.dependents`: every thing that still needs the snapshot's bytes. */
|
|
362
|
+
get dependents() {
|
|
363
|
+
const dependents = this.details?.dependents;
|
|
364
|
+
return Array.isArray(dependents) ? dependents : [];
|
|
365
|
+
}
|
|
366
|
+
};
|
|
367
|
+
var RunSessionNotResumableError = class extends ValidationError {
|
|
368
|
+
constructor(message, status = 409, details, requestId, retryable) {
|
|
369
|
+
super(message, status, "RUN_SESSION_NOT_RESUMABLE", details, requestId, retryable);
|
|
370
|
+
this.name = "RunSessionNotResumableError";
|
|
371
|
+
}
|
|
372
|
+
get reason() {
|
|
373
|
+
const reason = this.details?.reason;
|
|
374
|
+
return typeof reason === "string" ? reason : void 0;
|
|
375
|
+
}
|
|
376
|
+
};
|
|
377
|
+
var ChatBusyError = class extends ValidationError {
|
|
378
|
+
constructor(message, status = 409, details, requestId, retryable = true) {
|
|
379
|
+
super(message, status, "CHAT_BUSY", details, requestId, retryable);
|
|
380
|
+
this.name = "ChatBusyError";
|
|
381
|
+
}
|
|
382
|
+
};
|
|
383
|
+
var NoAgentRunError = class extends ValidationError {
|
|
384
|
+
constructor(message, status = 409, details, requestId, retryable = false) {
|
|
385
|
+
super(message, status, "NO_AGENT_RUN", details, requestId, retryable);
|
|
386
|
+
this.name = "NoAgentRunError";
|
|
387
|
+
}
|
|
388
|
+
};
|
|
389
|
+
var InvalidSetupFileError = class extends ValidationError {
|
|
390
|
+
constructor(message, status = 422, details, requestId, retryable) {
|
|
391
|
+
super(message, status, "INVALID_SETUP_FILE", details, requestId, retryable);
|
|
392
|
+
this.name = "InvalidSetupFileError";
|
|
393
|
+
}
|
|
394
|
+
get reason() {
|
|
395
|
+
const reason = this.details?.reason;
|
|
396
|
+
return typeof reason === "string" ? reason : void 0;
|
|
397
|
+
}
|
|
398
|
+
};
|
|
399
|
+
function typedErrorFromCode(code, message, status, details, requestId, retryable, retryAfterMs) {
|
|
400
|
+
switch (code) {
|
|
401
|
+
case "no_ready_machine":
|
|
402
|
+
case "NO_READY_MACHINE":
|
|
403
|
+
return new NoReadyMachineError(message, status, details, requestId, retryable, retryAfterMs);
|
|
404
|
+
case "INVALID_ID":
|
|
405
|
+
return new InvalidIdError(message, status, details, requestId, retryable);
|
|
406
|
+
case "OWN_CREDENTIALS_REQUIRED":
|
|
407
|
+
return new OwnCredentialsRequiredError(message, status, details, requestId, retryable);
|
|
408
|
+
case "ENVIRONMENT_NOT_FOUND":
|
|
409
|
+
return status === 404 ? new EnvironmentNotFoundError(message, details, requestId, retryable) : new UnknownEnvironmentError(message, status, details, requestId, retryable);
|
|
410
|
+
case "ENVIRONMENT_NAME_TAKEN":
|
|
411
|
+
return new EnvironmentNameTakenError(message, status, details, requestId, retryable);
|
|
412
|
+
case "ENVIRONMENT_IS_DEFAULT":
|
|
413
|
+
return new EnvironmentIsDefaultError(message, status, details, requestId, retryable);
|
|
414
|
+
case "ENVIRONMENT_SCRUB_FAILED":
|
|
415
|
+
return new EnvironmentScrubFailedError(message, status, details, requestId, retryable);
|
|
416
|
+
case "ENVIRONMENT_MEMORY_WITHHELD":
|
|
417
|
+
return new EnvironmentMemoryWithheldError(message, status, details, requestId, retryable);
|
|
418
|
+
case "MACHINE_KEY_SCOPE":
|
|
419
|
+
return new MachineKeyScopeError(message, status, details, requestId, retryable);
|
|
420
|
+
case "SANDBOX_STARTING":
|
|
421
|
+
return new SandboxStartingError(message, status, details, requestId, retryable);
|
|
422
|
+
case "COMPUTER_STARTING":
|
|
423
|
+
return new ComputerStartingError(message, status, details, requestId, retryable);
|
|
424
|
+
case "CREDIT_REQUIRED":
|
|
425
|
+
return new CreditRequiredError(message, details, requestId, retryable);
|
|
426
|
+
case "TEAM_MEMBER_CAP_REACHED":
|
|
427
|
+
return new TeamMemberCapReachedError(message, details, requestId, retryable);
|
|
428
|
+
case "MEMBER_LIMIT_REACHED":
|
|
429
|
+
return new MemberLimitReachedError(
|
|
430
|
+
message,
|
|
431
|
+
details,
|
|
432
|
+
requestId,
|
|
433
|
+
retryAfterMs === void 0 ? void 0 : retryAfterMs / 1e3,
|
|
434
|
+
retryable
|
|
435
|
+
);
|
|
436
|
+
case "BILL_TO_LOCKED":
|
|
437
|
+
return new BillToLockedError(message, status, details, requestId, retryable);
|
|
438
|
+
case "BILL_TO_FORBIDDEN":
|
|
439
|
+
return new BillToForbiddenError(message, status, details, requestId, retryable);
|
|
440
|
+
case "BILL_TO_SUSPENDED":
|
|
441
|
+
return new BillToSuspendedError(message, status, details, requestId, retryable);
|
|
442
|
+
case "ORG_NOT_FOUND":
|
|
443
|
+
return new OrgNotFoundError(message, details, requestId, retryable);
|
|
444
|
+
case "AMBIGUOUS_ORG":
|
|
445
|
+
return new AmbiguousOrgError(message, status, details, requestId, retryable);
|
|
446
|
+
case "SNAPSHOT_IN_USE":
|
|
447
|
+
return new SnapshotInUseError(message, status, details, requestId, retryable);
|
|
448
|
+
case "RUN_SESSION_NOT_RESUMABLE":
|
|
449
|
+
return new RunSessionNotResumableError(message, status, details, requestId, retryable);
|
|
450
|
+
case "CHAT_BUSY":
|
|
451
|
+
return new ChatBusyError(message, status, details, requestId, retryable);
|
|
452
|
+
case "NO_AGENT_RUN":
|
|
453
|
+
return new NoAgentRunError(message, status, details, requestId, retryable);
|
|
454
|
+
case "INVALID_SETUP_FILE":
|
|
455
|
+
return new InvalidSetupFileError(message, status, details, requestId, retryable);
|
|
456
|
+
default:
|
|
457
|
+
return void 0;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
export { AmbiguousOrgError, AuthError, BillToForbiddenError, BillToLockedError, BillToSuspendedError, ChatBusyError, ComputerStartingError, CreditRequiredError, EgressHostNotAllowedError, EnvironmentIsDefaultError, EnvironmentMemoryWithheldError, EnvironmentNameTakenError, EnvironmentNotFoundError, EnvironmentScrubFailedError, InstallationRequiredError, InsufficientCreditsError, InvalidIdError, InvalidSetupFileError, MachineKeyScopeError, MachineStartingError, ManagedProviderBindingOnlyError, MemberLimitReachedError, MiosaError, NetworkError, NoAgentRunError, NoReadyMachineError, NotFoundError, OrgNotFoundError, OwnCredentialsRequiredError, ProjectNotLinkedError, RateLimitError, RunSessionNotResumableError, SandboxStartingError, ScopeNotAllowedError, SnapshotInUseError, SubjectNotAllowedError, TeamMemberCapReachedError, TimeoutError, TokenRefreshFailedError, UnknownEnvironmentError, UserAuthorizationRequiredError, ValidationError, __require };
|
|
462
|
+
//# sourceMappingURL=chunk-BMWUKYWU.js.map
|
|
463
|
+
//# sourceMappingURL=chunk-BMWUKYWU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts"],"names":[],"mappings":"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","file":"chunk-BMWUKYWU.js","sourcesContent":["export interface MiosaErrorBody {\n error?: string | {\n code?: string;\n message?: string;\n details?: unknown;\n retryable?: boolean;\n request_id?: string;\n retry_after_ms?: number;\n };\n message?: string;\n code?: string;\n detail?: string;\n details?: unknown;\n reason?: string;\n request_id?: string;\n retryable?: boolean;\n retry_after_ms?: number;\n}\n\n/**\n * Status-based retryability used when the server does not say otherwise:\n * request timeouts, rate limits, and 5xx control-plane failures are transient.\n */\nexport function defaultRetryable(status: number): boolean {\n return status === 408 || status === 429 || status >= 500;\n}\n\nexport class MiosaError extends Error {\n readonly status: number;\n readonly code: string;\n readonly details: unknown;\n readonly requestId: string | undefined;\n readonly retryable: boolean;\n /**\n * Server-supplied retry hint in milliseconds, taken from the canonical\n * error shape's `retry_after_ms` (nested under `error` or top-level) or,\n * failing that, the HTTP `Retry-After` header. `undefined` when the\n * response carried neither, in which case a caller should fall back to\n * its own backoff policy.\n */\n retryAfterMs: number | undefined;\n\n constructor(\n message: string,\n status: number,\n code: string,\n details?: unknown,\n requestId?: string,\n retryable: boolean = defaultRetryable(status),\n retryAfterMs?: number,\n ) {\n super(message);\n this.name = \"MiosaError\";\n this.status = status;\n this.code = code;\n this.details = details;\n this.requestId = requestId;\n this.retryable = retryable;\n this.retryAfterMs = retryAfterMs;\n }\n\n /**\n * @param retryAfterHeaderMs The `Retry-After` header value, already\n * converted to milliseconds by the caller. Used only when the body does\n * not carry the more precise `retry_after_ms`.\n */\n static fromResponse(\n status: number,\n body: MiosaErrorBody,\n requestId?: string,\n retryAfterHeaderMs?: number,\n ): MiosaError {\n const nested = typeof body.error === \"object\" ? body.error : undefined;\n const flatError = typeof body.error === \"string\" ? body.error : undefined;\n // Flat bodies carry either an UPPER_SNAKE code or, on the OpenComputers\n // routes, a lower_snake one (`host_not_connected`, `invalid_command`).\n const flatErrorIsCode =\n !!flatError && (/^[A-Z][A-Z0-9_]+$/.test(flatError) || /^[a-z][a-z0-9]*(_[a-z0-9]+)+$/.test(flatError));\n const message = nested?.message ?? body.message ?? body.detail ?? body.reason ?? flatError ?? `HTTP ${status}`;\n const code = nested?.code ?? body.code ?? (flatErrorIsCode ? flatError : \"UNKNOWN_ERROR\");\n const details =\n nested?.details ??\n body.details ??\n (body.detail || body.reason ? { detail: body.detail, reason: body.reason } : undefined) ??\n extraFields(body, nested);\n requestId ??= nested?.request_id ?? body.request_id;\n const retryable =\n nested?.retryable ?? body.retryable ?? RETRYABLE_BY_CODE[code] ?? defaultRetryable(status);\n const retryAfterMs = nested?.retry_after_ms ?? body.retry_after_ms ?? retryAfterHeaderMs;\n\n const connectError =\n connectErrorFromCode(code, message, status, details, requestId, retryable) ??\n typedErrorFromCode(code, message, status, details, requestId, retryable, retryAfterMs);\n const built =\n connectError ??\n (status === 401 || status === 403\n ? new AuthError(message, status, code, details, requestId, retryable)\n : status === 404\n ? new NotFoundError(message, code, details, requestId, retryable)\n : status === 429\n ? new RateLimitError(\n message,\n details,\n requestId,\n retryAfterMs === undefined ? undefined : retryAfterMs / 1000,\n retryable,\n // Keep the server's own code (SERVICE_ACCOUNT_LIMIT, ...) when it sent one.\n code === \"UNKNOWN_ERROR\" ? \"RATE_LIMITED\" : code,\n )\n : status === 402\n ? new InsufficientCreditsError(\n message,\n details,\n requestId,\n retryable,\n code === \"UNKNOWN_ERROR\" ? \"INSUFFICIENT_CREDITS\" : code,\n )\n : status >= 400 && status < 500\n ? new ValidationError(message, status, code, details, requestId, retryable)\n : new MiosaError(message, status, code, details, requestId, retryable));\n\n built.retryAfterMs = retryAfterMs;\n return built;\n }\n}\n\nconst ENVELOPE_KEYS = new Set([\n \"error\", \"message\", \"code\", \"detail\", \"details\", \"reason\", \"request_id\", \"retryable\",\n \"retry_after_ms\", \"ok\", \"success\", \"status\",\n]);\nconst NESTED_KEYS = new Set([\"code\", \"message\", \"details\", \"retryable\", \"request_id\", \"retry_after_ms\"]);\n\n/**\n * Fields the server put next to the code and message (`field`, `min`, `max`,\n * `invalid_scopes`, `valid`, `job_id`, ...) are the error's details when it sent\n * no explicit `details`, so a caller can read them instead of losing them.\n */\nfunction extraFields(body: MiosaErrorBody, nested: Record<string, unknown> | undefined): unknown {\n const extras: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(body)) {\n if (!ENVELOPE_KEYS.has(key)) extras[key] = value;\n }\n if (nested) {\n for (const [key, value] of Object.entries(nested)) {\n if (!NESTED_KEYS.has(key)) extras[key] = value;\n }\n }\n return Object.keys(extras).length > 0 ? extras : undefined;\n}\n\nfunction connectErrorFromCode(\n code: string,\n message: string,\n status: number,\n details?: unknown,\n requestId?: string,\n retryable?: boolean,\n): MiosaError | undefined {\n switch (code) {\n case \"PROJECT_NOT_LINKED\":\n return new ProjectNotLinkedError(message, status, details, requestId, retryable);\n case \"SUBJECT_NOT_ALLOWED\":\n return new SubjectNotAllowedError(message, status, details, requestId, retryable);\n case \"SCOPE_NOT_ALLOWED\":\n return new ScopeNotAllowedError(message, status, details, requestId, retryable);\n case \"MANAGED_PROVIDER_BINDING_ONLY\":\n return new ManagedProviderBindingOnlyError(message, status, details, requestId, retryable);\n case \"INSTALLATION_REQUIRED\":\n return new InstallationRequiredError(message, status, details, requestId, retryable);\n case \"USER_AUTHORIZATION_REQUIRED\":\n return new UserAuthorizationRequiredError(message, status, details, requestId, retryable);\n case \"EGRESS_HOST_NOT_ALLOWED\":\n return new EgressHostNotAllowedError(message, status, details, requestId, retryable);\n case \"TOKEN_REFRESH_FAILED\":\n return new TokenRefreshFailedError(message, status, details, requestId, retryable);\n default:\n return undefined;\n }\n}\n\nexport class AuthError extends MiosaError {\n constructor(\n message: string,\n status: number = 401,\n code: string = \"UNAUTHORIZED\",\n details?: unknown,\n requestId?: string,\n retryable?: boolean,\n ) {\n super(message, status, code, details, requestId, retryable);\n this.name = \"AuthError\";\n }\n}\n\nexport class NotFoundError extends MiosaError {\n constructor(\n message: string,\n code: string = \"NOT_FOUND\",\n details?: unknown,\n requestId?: string,\n retryable?: boolean,\n ) {\n super(message, 404, code, details, requestId, retryable);\n this.name = \"NotFoundError\";\n }\n}\n\nexport class RateLimitError extends MiosaError {\n readonly retryAfter: number | undefined;\n\n constructor(\n message: string,\n details?: unknown,\n requestId?: string,\n retryAfter?: number,\n retryable?: boolean,\n code: string = \"RATE_LIMITED\",\n ) {\n super(message, 429, code, details, requestId, retryable);\n this.name = \"RateLimitError\";\n this.retryAfter = retryAfter;\n }\n}\n\nexport class InsufficientCreditsError extends MiosaError {\n constructor(\n message: string,\n details?: unknown,\n requestId?: string,\n retryable?: boolean,\n code: string = \"INSUFFICIENT_CREDITS\",\n ) {\n super(message, 402, code, details, requestId, retryable);\n this.name = \"InsufficientCreditsError\";\n }\n}\n\nexport class ValidationError extends MiosaError {\n constructor(\n message: string,\n status: number,\n code: string = \"VALIDATION_ERROR\",\n details?: unknown,\n requestId?: string,\n retryable?: boolean,\n ) {\n super(message, status, code, details, requestId, retryable);\n this.name = \"ValidationError\";\n }\n}\n\nexport class TimeoutError extends MiosaError {\n constructor(message: string = \"Request timed out\") {\n super(message, 408, \"TIMEOUT\", undefined, undefined, true);\n this.name = \"TimeoutError\";\n }\n}\n\nexport class NetworkError extends MiosaError {\n readonly cause: Error;\n\n constructor(message: string, cause: Error) {\n super(message, 0, \"NETWORK_ERROR\", undefined, undefined, true);\n this.name = \"NetworkError\";\n this.cause = cause;\n }\n}\n\nexport class ProjectNotLinkedError extends MiosaError {\n constructor(\n message: string,\n status = 403,\n details?: unknown,\n requestId?: string,\n retryable?: boolean,\n ) {\n super(message, status, \"PROJECT_NOT_LINKED\", details, requestId, retryable);\n this.name = \"ProjectNotLinkedError\";\n }\n}\n\nexport class SubjectNotAllowedError extends MiosaError {\n constructor(\n message: string,\n status = 403,\n details?: unknown,\n requestId?: string,\n retryable?: boolean,\n ) {\n super(message, status, \"SUBJECT_NOT_ALLOWED\", details, requestId, retryable);\n this.name = \"SubjectNotAllowedError\";\n }\n}\n\nexport class ScopeNotAllowedError extends MiosaError {\n constructor(\n message: string,\n status = 403,\n details?: unknown,\n requestId?: string,\n retryable?: boolean,\n ) {\n super(message, status, \"SCOPE_NOT_ALLOWED\", details, requestId, retryable);\n this.name = \"ScopeNotAllowedError\";\n }\n}\n\nexport class ManagedProviderBindingOnlyError extends MiosaError {\n constructor(\n message: string,\n status = 403,\n details?: unknown,\n requestId?: string,\n retryable?: boolean,\n ) {\n super(message, status, \"MANAGED_PROVIDER_BINDING_ONLY\", details, requestId, retryable);\n this.name = \"ManagedProviderBindingOnlyError\";\n }\n}\n\nexport class InstallationRequiredError extends MiosaError {\n constructor(\n message: string,\n status = 409,\n details?: unknown,\n requestId?: string,\n retryable?: boolean,\n ) {\n super(message, status, \"INSTALLATION_REQUIRED\", details, requestId, retryable);\n this.name = \"InstallationRequiredError\";\n }\n}\n\nexport class UserAuthorizationRequiredError extends MiosaError {\n constructor(\n message: string,\n status = 403,\n details?: unknown,\n requestId?: string,\n retryable?: boolean,\n ) {\n super(message, status, \"USER_AUTHORIZATION_REQUIRED\", details, requestId, retryable);\n this.name = \"UserAuthorizationRequiredError\";\n }\n}\n\nexport class EgressHostNotAllowedError extends MiosaError {\n constructor(\n message: string,\n status = 403,\n details?: unknown,\n requestId?: string,\n retryable?: boolean,\n ) {\n super(message, status, \"EGRESS_HOST_NOT_ALLOWED\", details, requestId, retryable);\n this.name = \"EgressHostNotAllowedError\";\n }\n}\n\nexport class TokenRefreshFailedError extends MiosaError {\n constructor(\n message: string,\n status = 502,\n details?: unknown,\n requestId?: string,\n retryable?: boolean,\n ) {\n super(message, status, \"TOKEN_REFRESH_FAILED\", details, requestId, retryable);\n this.name = \"TokenRefreshFailedError\";\n }\n}\n\n// ─── Sprint 2026-10-10 typed errors ───────────────────────────────────────────\n//\n// Every class below keeps the base class the same status would have produced\n// before (ValidationError for other 4xx, AuthError for 401/403, NotFoundError\n// for 404, InsufficientCreditsError for 402, RateLimitError for 429), so an\n// existing `instanceof` check or `catch` branch keeps matching. The new class\n// only narrows it, and `code` is the server's own code.\n\n/**\n * Retry hint used when the server's error body carries no `retryable` flag.\n * Only codes whose contract states a retry answer are listed; every other code\n * keeps the status-based default.\n */\nconst RETRYABLE_BY_CODE: Readonly<Record<string, boolean>> = {\n SANDBOX_STARTING: true,\n COMPUTER_STARTING: true,\n ENVIRONMENT_SCRUB_FAILED: true,\n CHAT_BUSY: true,\n ENVIRONMENT_MEMORY_WITHHELD: false,\n NO_AGENT_RUN: false,\n MEMBER_LIMIT_REACHED: false,\n NO_READY_MACHINE: true,\n no_ready_machine: true,\n};\n\n/**\n * `503 no_ready_machine`: a `failFast` request found no ready machine. The\n * server answers in about 1.5 seconds instead of queueing, and the request\n * does not count against start limits. Retryable later; the client does not\n * retry it for you, since shedding load is the point.\n */\nexport class NoReadyMachineError extends MiosaError {\n constructor(message: string, status = 503, details?: unknown, requestId?: string, retryable = true, retryAfterMs?: number) {\n super(message, status, \"no_ready_machine\", details, requestId, retryable, retryAfterMs);\n this.name = \"NoReadyMachineError\";\n }\n}\n\n/** `400 INVALID_ID`: a path or body id is not a well-formed identifier. */\nexport class InvalidIdError extends ValidationError {\n constructor(message: string, status = 400, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, status, \"INVALID_ID\", details, requestId, retryable);\n this.name = \"InvalidIdError\";\n }\n}\n\n/**\n * `422 OWN_CREDENTIALS_REQUIRED`: the harness has no credential of the\n * account's own. MIOSA platform keys are never used for agent runs, so connect\n * a credential (`miosa.agentSettings.putCredential`) and retry.\n */\nexport class OwnCredentialsRequiredError extends ValidationError {\n constructor(message: string, status = 422, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, status, \"OWN_CREDENTIALS_REQUIRED\", details, requestId, retryable);\n this.name = \"OwnCredentialsRequiredError\";\n }\n}\n\n/** `404 ENVIRONMENT_NOT_FOUND`: unknown id or name on an environment route. */\nexport class EnvironmentNotFoundError extends NotFoundError {\n constructor(message: string, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, \"ENVIRONMENT_NOT_FOUND\", details, requestId, retryable);\n this.name = \"EnvironmentNotFoundError\";\n }\n}\n\n/**\n * `422 ENVIRONMENT_NOT_FOUND` on a machine route: the `environment` or\n * `environment_id` named on a create, resume, fork, start or clone does not\n * exist. Nothing was created or changed. A validation error, as it was before.\n */\nexport class UnknownEnvironmentError extends ValidationError {\n constructor(message: string, status = 422, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, status, \"ENVIRONMENT_NOT_FOUND\", details, requestId, retryable);\n this.name = \"UnknownEnvironmentError\";\n }\n}\n\n/** `409 ENVIRONMENT_NAME_TAKEN`. */\nexport class EnvironmentNameTakenError extends ValidationError {\n constructor(message: string, status = 409, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, status, \"ENVIRONMENT_NAME_TAKEN\", details, requestId, retryable);\n this.name = \"EnvironmentNameTakenError\";\n }\n}\n\n/** `409 ENVIRONMENT_IS_DEFAULT`: the organization default cannot be deleted. */\nexport class EnvironmentIsDefaultError extends ValidationError {\n constructor(message: string, status = 409, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, status, \"ENVIRONMENT_IS_DEFAULT\", details, requestId, retryable);\n this.name = \"EnvironmentIsDefaultError\";\n }\n}\n\n/**\n * `409 ENVIRONMENT_SCRUB_FAILED`: the machine's delivered secrets could not be\n * removed before a snapshot or fork, so nothing was saved. Retryable.\n */\nexport class EnvironmentScrubFailedError extends ValidationError {\n constructor(message: string, status = 409, details?: unknown, requestId?: string, retryable = true) {\n super(message, status, \"ENVIRONMENT_SCRUB_FAILED\", details, requestId, retryable);\n this.name = \"EnvironmentScrubFailedError\";\n }\n}\n\n/**\n * `409 ENVIRONMENT_MEMORY_WITHHELD`: a sandbox fork, restore or deploy whose\n * environment withholds something the source received. Not retryable as is.\n */\nexport class EnvironmentMemoryWithheldError extends ValidationError {\n constructor(message: string, status = 409, details?: unknown, requestId?: string, retryable = false) {\n super(message, status, \"ENVIRONMENT_MEMORY_WITHHELD\", details, requestId, retryable);\n this.name = \"EnvironmentMemoryWithheldError\";\n }\n\n /** `details.reasons`: why the memory was withheld. Empty when absent. */\n get reasons(): string[] {\n const reasons = (this.details as { reasons?: unknown } | undefined)?.reasons;\n return Array.isArray(reasons) ? reasons.filter((r): r is string => typeof r === \"string\") : [];\n }\n}\n\n/** `403 MACHINE_KEY_SCOPE`: a machine key called something outside its machine's lifecycle. */\nexport class MachineKeyScopeError extends AuthError {\n constructor(message: string, status = 403, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, status, \"MACHINE_KEY_SCOPE\", details, requestId, retryable);\n this.name = \"MachineKeyScopeError\";\n }\n}\n\n/**\n * `409 SANDBOX_STARTING` / `409 COMPUTER_STARTING`: the machine is not ready for\n * a command yet. Retryable; `retryAfterMs` carries the server's hint (the\n * client already retries these using it).\n */\nexport class MachineStartingError extends ValidationError {\n constructor(\n message: string,\n status = 409,\n code = \"SANDBOX_STARTING\",\n details?: unknown,\n requestId?: string,\n retryable = true,\n ) {\n super(message, status, code, details, requestId, retryable);\n this.name = \"MachineStartingError\";\n }\n}\n\nexport class SandboxStartingError extends MachineStartingError {\n constructor(message: string, status = 409, details?: unknown, requestId?: string, retryable = true) {\n super(message, status, \"SANDBOX_STARTING\", details, requestId, retryable);\n this.name = \"SandboxStartingError\";\n }\n}\n\nexport class ComputerStartingError extends MachineStartingError {\n constructor(message: string, status = 409, details?: unknown, requestId?: string, retryable = true) {\n super(message, status, \"COMPUTER_STARTING\", details, requestId, retryable);\n this.name = \"ComputerStartingError\";\n }\n}\n\n/** `402 CREDIT_REQUIRED`: the action needs credit (for example a named snapshot past the free allowance). */\nexport class CreditRequiredError extends InsufficientCreditsError {\n constructor(message: string, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, details, requestId, retryable, \"CREDIT_REQUIRED\");\n this.name = \"CreditRequiredError\";\n }\n}\n\n/** `402 TEAM_MEMBER_CAP_REACHED`: the caller's usage cap in the billed organization is reached. */\nexport class TeamMemberCapReachedError extends InsufficientCreditsError {\n constructor(message: string, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, details, requestId, retryable, \"TEAM_MEMBER_CAP_REACHED\");\n this.name = \"TeamMemberCapReachedError\";\n }\n}\n\n/** `429 MEMBER_LIMIT_REACHED`: the caller's concurrent-sandbox cap is reached. Not retryable until a sandbox stops. */\nexport class MemberLimitReachedError extends RateLimitError {\n constructor(message: string, details?: unknown, requestId?: string, retryAfter?: number, retryable = false) {\n super(message, details, requestId, retryAfter, retryable, \"MEMBER_LIMIT_REACHED\");\n this.name = \"MemberLimitReachedError\";\n }\n}\n\n/** `403 BILL_TO_LOCKED`: this credential is locked to its own organization. */\nexport class BillToLockedError extends AuthError {\n constructor(message: string, status = 403, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, status, \"BILL_TO_LOCKED\", details, requestId, retryable);\n this.name = \"BillToLockedError\";\n }\n}\n\n/** `403 BILL_TO_FORBIDDEN`: the caller's role in that organization cannot create resources. */\nexport class BillToForbiddenError extends AuthError {\n constructor(message: string, status = 403, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, status, \"BILL_TO_FORBIDDEN\", details, requestId, retryable);\n this.name = \"BillToForbiddenError\";\n }\n}\n\n/** `403 BILL_TO_SUSPENDED`: the organization to bill is suspended. */\nexport class BillToSuspendedError extends AuthError {\n constructor(message: string, status = 403, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, status, \"BILL_TO_SUSPENDED\", details, requestId, retryable);\n this.name = \"BillToSuspendedError\";\n }\n}\n\n/** `404 ORG_NOT_FOUND`: the bill-to organization does not exist for the caller. */\nexport class OrgNotFoundError extends NotFoundError {\n constructor(message: string, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, \"ORG_NOT_FOUND\", details, requestId, retryable);\n this.name = \"OrgNotFoundError\";\n }\n}\n\n/** `409 AMBIGUOUS_ORG`: two organizations share the name; use the id. */\nexport class AmbiguousOrgError extends ValidationError {\n constructor(message: string, status = 409, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, status, \"AMBIGUOUS_ORG\", details, requestId, retryable);\n this.name = \"AmbiguousOrgError\";\n }\n}\n\n/** `409 SNAPSHOT_IN_USE`: something still depends on the snapshot; see {@link dependents}. */\nexport class SnapshotInUseError extends ValidationError {\n constructor(message: string, status = 409, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, status, \"SNAPSHOT_IN_USE\", details, requestId, retryable);\n this.name = \"SnapshotInUseError\";\n }\n\n /** `details.dependents`: every thing that still needs the snapshot's bytes. */\n get dependents(): Array<{ type: string; id: string; label?: string }> {\n const dependents = (this.details as { dependents?: unknown } | undefined)?.dependents;\n return Array.isArray(dependents) ? (dependents as Array<{ type: string; id: string; label?: string }>) : [];\n }\n}\n\n/** `409 RUN_SESSION_NOT_RESUMABLE`: `details.reason` says why (`not_found`, `still_running`, ...). */\nexport class RunSessionNotResumableError extends ValidationError {\n constructor(message: string, status = 409, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, status, \"RUN_SESSION_NOT_RESUMABLE\", details, requestId, retryable);\n this.name = \"RunSessionNotResumableError\";\n }\n\n get reason(): string | undefined {\n const reason = (this.details as { reason?: unknown } | undefined)?.reason;\n return typeof reason === \"string\" ? reason : undefined;\n }\n}\n\n/** `409 CHAT_BUSY`: the chat's latest run has not finished. Retryable once it has. */\nexport class ChatBusyError extends ValidationError {\n constructor(message: string, status = 409, details?: unknown, requestId?: string, retryable = true) {\n super(message, status, \"CHAT_BUSY\", details, requestId, retryable);\n this.name = \"ChatBusyError\";\n }\n}\n\n/** `409 NO_AGENT_RUN`: no agent run is attached to the machine. Not retryable. */\nexport class NoAgentRunError extends ValidationError {\n constructor(message: string, status = 409, details?: unknown, requestId?: string, retryable = false) {\n super(message, status, \"NO_AGENT_RUN\", details, requestId, retryable);\n this.name = \"NoAgentRunError\";\n }\n}\n\n/** `422 INVALID_SETUP_FILE`: `details.reason` is `setup_file_too_large`, `setup_file_not_string`, `setup_file_not_utf8` or `setup_file_has_nul`. */\nexport class InvalidSetupFileError extends ValidationError {\n constructor(message: string, status = 422, details?: unknown, requestId?: string, retryable?: boolean) {\n super(message, status, \"INVALID_SETUP_FILE\", details, requestId, retryable);\n this.name = \"InvalidSetupFileError\";\n }\n\n get reason(): string | undefined {\n const reason = (this.details as { reason?: unknown } | undefined)?.reason;\n return typeof reason === \"string\" ? reason : undefined;\n }\n}\n\nfunction typedErrorFromCode(\n code: string,\n message: string,\n status: number,\n details: unknown,\n requestId: string | undefined,\n retryable: boolean,\n retryAfterMs: number | undefined,\n): MiosaError | undefined {\n switch (code) {\n case \"no_ready_machine\":\n case \"NO_READY_MACHINE\":\n return new NoReadyMachineError(message, status, details, requestId, retryable, retryAfterMs);\n case \"INVALID_ID\":\n return new InvalidIdError(message, status, details, requestId, retryable);\n case \"OWN_CREDENTIALS_REQUIRED\":\n return new OwnCredentialsRequiredError(message, status, details, requestId, retryable);\n case \"ENVIRONMENT_NOT_FOUND\":\n return status === 404\n ? new EnvironmentNotFoundError(message, details, requestId, retryable)\n : new UnknownEnvironmentError(message, status, details, requestId, retryable);\n case \"ENVIRONMENT_NAME_TAKEN\":\n return new EnvironmentNameTakenError(message, status, details, requestId, retryable);\n case \"ENVIRONMENT_IS_DEFAULT\":\n return new EnvironmentIsDefaultError(message, status, details, requestId, retryable);\n case \"ENVIRONMENT_SCRUB_FAILED\":\n return new EnvironmentScrubFailedError(message, status, details, requestId, retryable);\n case \"ENVIRONMENT_MEMORY_WITHHELD\":\n return new EnvironmentMemoryWithheldError(message, status, details, requestId, retryable);\n case \"MACHINE_KEY_SCOPE\":\n return new MachineKeyScopeError(message, status, details, requestId, retryable);\n case \"SANDBOX_STARTING\":\n return new SandboxStartingError(message, status, details, requestId, retryable);\n case \"COMPUTER_STARTING\":\n return new ComputerStartingError(message, status, details, requestId, retryable);\n case \"CREDIT_REQUIRED\":\n return new CreditRequiredError(message, details, requestId, retryable);\n case \"TEAM_MEMBER_CAP_REACHED\":\n return new TeamMemberCapReachedError(message, details, requestId, retryable);\n case \"MEMBER_LIMIT_REACHED\":\n return new MemberLimitReachedError(\n message,\n details,\n requestId,\n retryAfterMs === undefined ? undefined : retryAfterMs / 1000,\n retryable,\n );\n case \"BILL_TO_LOCKED\":\n return new BillToLockedError(message, status, details, requestId, retryable);\n case \"BILL_TO_FORBIDDEN\":\n return new BillToForbiddenError(message, status, details, requestId, retryable);\n case \"BILL_TO_SUSPENDED\":\n return new BillToSuspendedError(message, status, details, requestId, retryable);\n case \"ORG_NOT_FOUND\":\n return new OrgNotFoundError(message, details, requestId, retryable);\n case \"AMBIGUOUS_ORG\":\n return new AmbiguousOrgError(message, status, details, requestId, retryable);\n case \"SNAPSHOT_IN_USE\":\n return new SnapshotInUseError(message, status, details, requestId, retryable);\n case \"RUN_SESSION_NOT_RESUMABLE\":\n return new RunSessionNotResumableError(message, status, details, requestId, retryable);\n case \"CHAT_BUSY\":\n return new ChatBusyError(message, status, details, requestId, retryable);\n case \"NO_AGENT_RUN\":\n return new NoAgentRunError(message, status, details, requestId, retryable);\n case \"INVALID_SETUP_FILE\":\n return new InvalidSetupFileError(message, status, details, requestId, retryable);\n default:\n return undefined;\n }\n}\n"]}
|