mandala-computer-mcp 0.5.0 → 0.7.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 +277 -20
- package/dist/api.d.ts +73 -2
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +271 -22
- package/dist/api.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +17 -0
- package/dist/cli.js.map +1 -1
- package/dist/errors.d.ts +183 -5
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +377 -10
- package/dist/errors.js.map +1 -1
- package/dist/format.d.ts +90 -0
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +102 -2
- package/dist/format.js.map +1 -1
- package/dist/http.d.ts +42 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +392 -6
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/paths.d.ts +74 -3
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +89 -10
- package/dist/paths.js.map +1 -1
- package/dist/secret-errors.d.ts +59 -0
- package/dist/secret-errors.d.ts.map +1 -0
- package/dist/secret-errors.js +199 -0
- package/dist/secret-errors.js.map +1 -0
- package/dist/secret-store.d.ts +115 -0
- package/dist/secret-store.d.ts.map +1 -0
- package/dist/secret-store.js +105 -0
- package/dist/secret-store.js.map +1 -0
- package/dist/server.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +3 -1
- package/dist/server.js.map +1 -1
- package/dist/session.d.ts +6 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +1 -1
- package/dist/session.js.map +1 -1
- package/dist/tool-filters.d.ts +4 -4
- package/dist/tool-filters.d.ts.map +1 -1
- package/dist/tool-filters.js +22 -2
- package/dist/tool-filters.js.map +1 -1
- package/dist/tools/account.d.ts +14 -0
- package/dist/tools/account.d.ts.map +1 -1
- package/dist/tools/account.js +118 -0
- package/dist/tools/account.js.map +1 -1
- package/dist/tools/agent.d.ts.map +1 -1
- package/dist/tools/agent.js +7 -2
- package/dist/tools/agent.js.map +1 -1
- package/dist/tools/computers.d.ts.map +1 -1
- package/dist/tools/computers.js +277 -57
- package/dist/tools/computers.js.map +1 -1
- package/dist/tools/guest.d.ts.map +1 -1
- package/dist/tools/guest.js +140 -22
- package/dist/tools/guest.js.map +1 -1
- package/dist/tools/input.d.ts +11 -0
- package/dist/tools/input.d.ts.map +1 -1
- package/dist/tools/input.js +277 -20
- package/dist/tools/input.js.map +1 -1
- package/dist/tools/operations.d.ts +44 -0
- package/dist/tools/operations.d.ts.map +1 -0
- package/dist/tools/operations.js +232 -0
- package/dist/tools/operations.js.map +1 -0
- package/dist/tools/secrets.d.ts +42 -13
- package/dist/tools/secrets.d.ts.map +1 -1
- package/dist/tools/secrets.js +306 -15
- package/dist/tools/secrets.js.map +1 -1
- package/dist/tools/snapshots.d.ts.map +1 -1
- package/dist/tools/snapshots.js +44 -15
- package/dist/tools/snapshots.js.map +1 -1
- package/dist/tools/ssh.d.ts.map +1 -1
- package/dist/tools/ssh.js +19 -2
- package/dist/tools/ssh.js.map +1 -1
- package/dist/tools/templates.js +1 -1
- package/dist/tools/templates.js.map +1 -1
- package/dist/tools/webhooks.js +1 -1
- package/dist/tools/webhooks.js.map +1 -1
- package/package.json +1 -1
package/dist/errors.js
CHANGED
|
@@ -26,9 +26,10 @@ export class APIError extends MandalaError {
|
|
|
26
26
|
/**
|
|
27
27
|
* The platform's own word for what KIND of refusal this is, where it sent
|
|
28
28
|
* one: `contention`, `starting`, `unavailable` or `unsupported` (OPL-3898),
|
|
29
|
-
*
|
|
30
|
-
* computer
|
|
31
|
-
*
|
|
29
|
+
* `revoked` (OPL-4801) — the one word about the caller rather than the
|
|
30
|
+
* computer — `exists` (OPL-4994), or `running` (OPL-5050). `undefined` for
|
|
31
|
+
* most errors, and always will be — the platform is explicit that an absent
|
|
32
|
+
* value means unclassified rather than "none of these".
|
|
32
33
|
*
|
|
33
34
|
* Read on the base class rather than on the one 409 it was filed for, because
|
|
34
35
|
* the platform keys it on the ERROR and not on the route: the same sentinel is
|
|
@@ -43,6 +44,8 @@ export class APIError extends MandalaError {
|
|
|
43
44
|
allow;
|
|
44
45
|
/** The received WWW-Authenticate header, when supplied. */
|
|
45
46
|
wwwAuthenticate;
|
|
47
|
+
/** The method of the refused request, upper case, when known. */
|
|
48
|
+
method;
|
|
46
49
|
constructor(message, status, body,
|
|
47
50
|
/** Parsed Retry-After delay in milliseconds; absent when missing or invalid. */
|
|
48
51
|
retryAfterMs, metadata) {
|
|
@@ -55,6 +58,7 @@ export class APIError extends MandalaError {
|
|
|
55
58
|
nonblank(metadata?.requestId) ?? (record(body) ? nonblank(body.request_id) : undefined);
|
|
56
59
|
this.allow = nonblank(metadata?.allow);
|
|
57
60
|
this.wwwAuthenticate = nonblank(metadata?.wwwAuthenticate);
|
|
61
|
+
this.method = nonblank(metadata?.method)?.toUpperCase();
|
|
58
62
|
}
|
|
59
63
|
}
|
|
60
64
|
/**
|
|
@@ -79,7 +83,31 @@ const REASON_CLEARS = new Set(['contention', 'starting']);
|
|
|
79
83
|
* nothing changes today. What changes is that a future status for this refusal
|
|
80
84
|
* cannot quietly make it look replayable.
|
|
81
85
|
*/
|
|
82
|
-
|
|
86
|
+
/**
|
|
87
|
+
* `exists` is a create-only upload (`write_file` with `overwrite: false`)
|
|
88
|
+
* refused because something is already at the path (platform OPL-4994). Nothing
|
|
89
|
+
* was written, and the same request answers the same way until whatever is there
|
|
90
|
+
* is moved or the caller agrees to replace it — so it is permanent, and has to be
|
|
91
|
+
* said: without it this would be an ordinary {@link ConflictError}, which
|
|
92
|
+
* {@link isTransient} calls worth sending again. {@link FileExistsError} is the
|
|
93
|
+
* class it arrives as.
|
|
94
|
+
*/
|
|
95
|
+
/**
|
|
96
|
+
* `running` is a computer that IS running, asked for something only a stopped one
|
|
97
|
+
* can have: a resize, today (platform OPL-5050). The mirror of `unavailable`, and
|
|
98
|
+
* kept apart from it for that reason: nothing clears either by waiting and both
|
|
99
|
+
* are fixed by an action on the computer, but the action is the opposite one.
|
|
100
|
+
* Stopping the computer is the fix. Without it here this would be an ordinary
|
|
101
|
+
* {@link ConflictError}, which {@link isTransient} calls worth sending again, and
|
|
102
|
+
* a caller looping on that would resend the same resize until it gave up.
|
|
103
|
+
*/
|
|
104
|
+
const REASON_PERMANENT = new Set([
|
|
105
|
+
'unavailable',
|
|
106
|
+
'unsupported',
|
|
107
|
+
'revoked',
|
|
108
|
+
'exists',
|
|
109
|
+
'running',
|
|
110
|
+
]);
|
|
83
111
|
/**
|
|
84
112
|
* How a refusal the platform classified behaves, or `undefined` for a word this
|
|
85
113
|
* version has no opinion about.
|
|
@@ -136,7 +164,10 @@ export function reasonAdvice(reason) {
|
|
|
136
164
|
case 'contention':
|
|
137
165
|
return 'something was in flight; the same call works once it finishes, so this one is worth sending again';
|
|
138
166
|
case 'starting':
|
|
139
|
-
|
|
167
|
+
// The boot window is bounded (OPL-5025): two minutes from a start, a
|
|
168
|
+
// restart, or a reboot inside the guest. An agent still silent after it
|
|
169
|
+
// is answered 502 instead, which is not this word and not this advice.
|
|
170
|
+
return 'the guest agent has not answered yet and the computer is still inside its boot window (about two minutes after a start, a restart or a reboot inside the guest), so this is worth sending again in a moment. A guest agent still silent after that window is answered 502 instead, which waiting alone does not fix';
|
|
140
171
|
case 'unavailable':
|
|
141
172
|
// Softened from "does NOT clear by waiting", which was false of exactly
|
|
142
173
|
// the case OPL-4631 is about and is the sentence a model actually sees:
|
|
@@ -148,6 +179,16 @@ export function reasonAdvice(reason) {
|
|
|
148
179
|
return 'the computer is not running; if nothing is starting it this will not clear on its own and start_computer is the fix, and if a start is already under way wait_for_computer says so without starting a second one';
|
|
149
180
|
case 'unsupported':
|
|
150
181
|
return 'this computer cannot do it at all, so do not retry it — the answer is the same forever';
|
|
182
|
+
case 'exists':
|
|
183
|
+
// Only THIS attempt is known to have written nothing: a create-only
|
|
184
|
+
// write whose earlier attempt lost its answer may have written the file
|
|
185
|
+
// itself, and the retry meets that file here.
|
|
186
|
+
return 'something is already at that path and this attempt wrote nothing. This does not clear by waiting. If an earlier attempt\u2019s outcome was unknown, the file may be yours: read it and compare before choosing another path or overwriting (without overwrite: false, a write replaces it)';
|
|
187
|
+
case 'running':
|
|
188
|
+
// The mirror of `unavailable`, with the opposite fix. The last clause is
|
|
189
|
+
// there because stop_computer is a thing a model can do on its own
|
|
190
|
+
// initiative, and a stop the user did not ask for ends whatever was open.
|
|
191
|
+
return 'the computer is running and this needs it stopped (a resize, today). This does not clear by waiting: stop_computer first, then send it again \u2014 and say so rather than stopping a computer the user did not ask you to stop';
|
|
151
192
|
case 'revoked':
|
|
152
193
|
// Reached only on a status statusAdvice has no sentence for, because the
|
|
153
194
|
// formatter asks that one first and the platform sends this word on 401 and
|
|
@@ -159,6 +200,189 @@ export function reasonAdvice(reason) {
|
|
|
159
200
|
return undefined;
|
|
160
201
|
}
|
|
161
202
|
}
|
|
203
|
+
/** The platform's `code` on a keyed call's own refusals (OPL-5127), or `undefined`. */
|
|
204
|
+
export function idempotencyCode(err) {
|
|
205
|
+
const code = record(err.body) ? err.body.code : undefined;
|
|
206
|
+
return code === 'idempotency_in_progress' ||
|
|
207
|
+
code === 'idempotency_outcome_unknown' ||
|
|
208
|
+
code === 'idempotency_key_reused'
|
|
209
|
+
? code
|
|
210
|
+
: undefined;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* What to tell a model about the refusals a call's `idempotency_key` produces
|
|
214
|
+
* (platform OPL-5127), or `undefined` for any other error. Ahead of the
|
|
215
|
+
* `reason` advice, which for `idempotency_in_progress` says only "worth sending
|
|
216
|
+
* again" and not with WHAT. `tool` is the lifecycle tool that was called, which
|
|
217
|
+
* decides the route after `idempotency_outcome_unknown` (see
|
|
218
|
+
* {@link resendAfterSpentKey}); without it the cautious route is given.
|
|
219
|
+
*/
|
|
220
|
+
export function idempotencyAdvice(err, tool) {
|
|
221
|
+
if (!(err instanceof APIError))
|
|
222
|
+
return undefined;
|
|
223
|
+
const operation = record(err.body) && typeof err.body.operation_id === 'string'
|
|
224
|
+
? err.body.operation_id
|
|
225
|
+
: undefined;
|
|
226
|
+
switch (idempotencyCode(err)) {
|
|
227
|
+
case 'idempotency_in_progress':
|
|
228
|
+
return `the same call with this idempotency_key is still running; wait and call again with the same idempotency_key for its answer${operation ? `, or read get_operation ${operation}` : ''}`;
|
|
229
|
+
case 'idempotency_outcome_unknown':
|
|
230
|
+
return `the platform did not hear how the call with this idempotency_key ended; do not send it again with this key, since the same key answers the same thing. ${resendAfterSpentKey(tool, operation, undefined, tool ? `call ${tool} again` : undefined)}`;
|
|
231
|
+
case 'idempotency_key_reused':
|
|
232
|
+
return 'this idempotency_key was already used with a different request, so nothing was done; send this request with a new key, or none';
|
|
233
|
+
default:
|
|
234
|
+
return undefined;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* The lifecycle tools whose resend after a spent key waits for the operation
|
|
239
|
+
* to be final: the ones that make a new computer or overwrite a disk. A second
|
|
240
|
+
* one is costly (a second computer, a second overwrite), and a read of the
|
|
241
|
+
* computer made straight away cannot see one that is still landing.
|
|
242
|
+
*
|
|
243
|
+
* Every other keyed tool but restart (start, stop, suspend, delete, move and
|
|
244
|
+
* update_computer) changes a computer a read shows, and doing it twice does no
|
|
245
|
+
* harm the read cannot catch, while the operation of a call whose key is spent
|
|
246
|
+
* stays `pending` for an hour however quickly the host gave up (platform
|
|
247
|
+
* OPL-5304). Holding those to the same gate would mean an hour before the start
|
|
248
|
+
* the user asked for could be sent again.
|
|
249
|
+
*
|
|
250
|
+
* restart_computer is neither: see {@link UNSEEN_BY_READ}.
|
|
251
|
+
*/
|
|
252
|
+
const WAITS_FOR_FINAL = new Set([
|
|
253
|
+
'create_computer',
|
|
254
|
+
'clone_computer',
|
|
255
|
+
'clone_snapshot',
|
|
256
|
+
'restore_snapshot',
|
|
257
|
+
]);
|
|
258
|
+
/**
|
|
259
|
+
* The keyed tools whose step a read of the computer cannot see: a restart is a
|
|
260
|
+
* guest reset, and the computer reads `running` before and after one, with no
|
|
261
|
+
* boot or reset time among its fields. "Read the computer, and resend if the
|
|
262
|
+
* step did not take effect" can then only ever read as "did not take effect",
|
|
263
|
+
* and a resend resets the guest a second time, losing whatever ran since the
|
|
264
|
+
* first. Nor does waiting for the operation settle it: a spent key's operation
|
|
265
|
+
* ends `failed` (`lost`) an hour later whether or not the host reset the guest.
|
|
266
|
+
* So the route is the operation's `succeeded` or `running` where it says one,
|
|
267
|
+
* and otherwise the user's say before a second restart
|
|
268
|
+
* ({@link resendAfterUnseenStep}).
|
|
269
|
+
*/
|
|
270
|
+
const UNSEEN_BY_READ = new Set(['restart_computer']);
|
|
271
|
+
/** Whether a spent key's resend for `tool` is the user's call, since no read shows the step. */
|
|
272
|
+
export function resendUnseenByRead(tool) {
|
|
273
|
+
return tool !== undefined && UNSEEN_BY_READ.has(tool);
|
|
274
|
+
}
|
|
275
|
+
/** Whether a spent key's resend for `tool` waits for its operation; `true` when the tool is not known. */
|
|
276
|
+
export function resendWaitsForFinal(tool) {
|
|
277
|
+
return tool === undefined || WAITS_FOR_FINAL.has(tool);
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* The route to a new-key resend after a keyed call whose outcome is unknown and
|
|
281
|
+
* whose key is spent, chosen by the tool that was called: the wait for a final
|
|
282
|
+
* operation ({@link resendOnlyOnceFinal}) where a duplicate is costly and
|
|
283
|
+
* unseen, the operation and then the user ({@link resendAfterUnseenStep}) for a
|
|
284
|
+
* restart, which no read of the computer shows, and a read of the computer
|
|
285
|
+
* ({@link resendAfterRead}) everywhere else.
|
|
286
|
+
*/
|
|
287
|
+
export function resendAfterSpentKey(tool, operation, key, resend = 'send the call again') {
|
|
288
|
+
if (resendUnseenByRead(tool))
|
|
289
|
+
return resendAfterUnseenStep(operation, key, resend);
|
|
290
|
+
return resendWaitsForFinal(tool)
|
|
291
|
+
? resendOnlyOnceFinal(operation, key, resend)
|
|
292
|
+
: resendAfterRead(operation, resend);
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* The route for a spent key on a restart (see {@link UNSEEN_BY_READ}). It never
|
|
296
|
+
* conditions a resend on get_computer, which reads `running` either way: the
|
|
297
|
+
* operation says the restart happened (`succeeded`) or is under way
|
|
298
|
+
* (`running`), and anything else leaves it possibly done, so a second restart
|
|
299
|
+
* is the user's call.
|
|
300
|
+
*/
|
|
301
|
+
export function resendAfterUnseenStep(operation, key, resend = 'send the call again') {
|
|
302
|
+
const find = operation
|
|
303
|
+
? `get_operation ${operation}`
|
|
304
|
+
: `the operation it recorded, found by list_operations with idempotency_key ${key ? `"${key}"` : 'set to this key'}`;
|
|
305
|
+
return (`A restart cannot be seen in get_computer — it reads running before and after one — so do not read the computer to decide. Read ${find} instead. ` +
|
|
306
|
+
`If it succeeded, the restart happened; if it is running, it is under way, so wait_for_operation${operation ? ` ${operation}` : ''} rather than resending. ` +
|
|
307
|
+
`Otherwise (pending, failed, lost, or no operation found), treat the restart as possibly done: the guest may already have been reset. Ask the user before you ${resend} with a new idempotency_key, or none, since a second restart resets the guest again and loses whatever ran since the first`);
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* The route for a spent key on a step a read of the computer shows: start,
|
|
311
|
+
* stop, suspend, delete, move, update_computer (not restart; see
|
|
312
|
+
* {@link UNSEEN_BY_READ}). Read, and resend with
|
|
313
|
+
* a new key or none if the step did not take effect. A named operation is read
|
|
314
|
+
* too, because `succeeded` and `running` do answer the question; `pending` does
|
|
315
|
+
* not, since a spent key's operation stays pending for an hour whatever
|
|
316
|
+
* happened, so it is named as no reason to wait.
|
|
317
|
+
*/
|
|
318
|
+
export function resendAfterRead(operation, resend = 'send the call again') {
|
|
319
|
+
return (`Read get_computer${operation ? ` and get_operation ${operation}` : ''} first. ` +
|
|
320
|
+
(operation
|
|
321
|
+
? `If the operation succeeded, the step happened; if it is running, the step is under way, so wait_for_operation ${operation} rather than resending. Pending says only that the platform has not settled it yet, which can take an hour, and is no reason to wait. `
|
|
322
|
+
: '') +
|
|
323
|
+
`If get_computer shows the step did not take effect, ${resend} with a new idempotency_key, or none — there is no need to wait for the operation to be final first`);
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* The route to a new-key resend for the tools that make a new computer or
|
|
327
|
+
* overwrite a disk (see {@link WAITS_FOR_FINAL}) after a keyed call whose
|
|
328
|
+
* outcome is unknown and whose key is spent: a `5xx` the platform answered, or
|
|
329
|
+
* `idempotency_outcome_unknown` (platform OPL-5304).
|
|
330
|
+
*
|
|
331
|
+
* The condition has to be one a read can decide. The platform keeps such a
|
|
332
|
+
* call's operation `pending` for up to an hour, because its host may still be
|
|
333
|
+
* carrying the call out, so a read of the computer made straight away can show
|
|
334
|
+
* no effect for a create, clone or restore that then lands; a resend with a new
|
|
335
|
+
* key at that moment is not deduplicated and does the step twice. So the first
|
|
336
|
+
* read is the operation, and a resend waits until it is final. `key`, when
|
|
337
|
+
* known, names how to find an operation the error did not name; `resend` is
|
|
338
|
+
* the verb phrase for the resend, e.g. `call start_computer again`.
|
|
339
|
+
*/
|
|
340
|
+
export function resendOnlyOnceFinal(operation, key, resend = 'send the call again') {
|
|
341
|
+
const find = operation
|
|
342
|
+
? `get_operation ${operation} (wait_for_operation ${operation} waits on it)`
|
|
343
|
+
: `the operation it recorded, found by list_operations with idempotency_key ${key ? `"${key}"` : 'set to this key'}`;
|
|
344
|
+
return (`Read ${find} first. While it is pending or running the call may still be carried out, so wait for it to be final — wait_for_operation, again if that wait runs out — and do NOT resend it meanwhile, with any key. ` +
|
|
345
|
+
`If it succeeded, the step happened. Only once it is final as failed (error.code lost, for one) or no longer found, AND get_computer (list_computers after a create or a clone) shows the step did not take effect, ${resend} with a new idempotency_key, or none. ` +
|
|
346
|
+
'If no operation is found at all, a slow create or clone may still land: read the computer again after a few minutes before resending');
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Whether a lifecycle call that failed with this may still have happened, and
|
|
350
|
+
* its key is still the safe way to send it again: a request that may have been
|
|
351
|
+
* received before the connection died, the platform saying the keyed call is
|
|
352
|
+
* still running, or a `5xx` that the platform itself never answered (see
|
|
353
|
+
* {@link platformAnsweredFailure}).
|
|
354
|
+
*
|
|
355
|
+
* NOT a `5xx` the platform answered. The platform settles a keyed call it
|
|
356
|
+
* answered outside `2xx` and `4xx` as lost (OPL-5304), so the same key sent
|
|
357
|
+
* again can only be answered `409 idempotency_outcome_unknown` for the rest of
|
|
358
|
+
* its 24 hours. Advising that resend is advising a retry that cannot succeed;
|
|
359
|
+
* `keyedFailure` in tools/operations.ts tells that caller to read first instead.
|
|
360
|
+
*/
|
|
361
|
+
export function keyedOutcomeUnknown(err) {
|
|
362
|
+
return (err instanceof ConnectivityInterruptedError ||
|
|
363
|
+
(err instanceof APIError &&
|
|
364
|
+
(idempotencyCode(err) === 'idempotency_in_progress' ||
|
|
365
|
+
(err.status >= 500 && !platformAnsweredFailure(err)))));
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Whether a `5xx` came from the platform itself rather than from a hop in
|
|
369
|
+
* front of it.
|
|
370
|
+
*
|
|
371
|
+
* The platform answers every error with a JSON object. A proxy that gave up
|
|
372
|
+
* (a Cloudflare or nginx `502`/`504`, or an edge-only `520`-`526`) answers
|
|
373
|
+
* with an HTML page or nothing, which the code that settles the key did not
|
|
374
|
+
* write, so the same key sent again answers the call's own outcome or says it
|
|
375
|
+
* is still running. The `520`-`526` range is an edge's own vocabulary whatever
|
|
376
|
+
* its body says. Should one of these turn out to have been settled as lost
|
|
377
|
+
* after all, the resend is answered `idempotency_outcome_unknown`, whose own
|
|
378
|
+
* advice says what to do next; nothing is done twice either way.
|
|
379
|
+
*/
|
|
380
|
+
export function platformAnsweredFailure(err) {
|
|
381
|
+
return (err instanceof APIError &&
|
|
382
|
+
err.status >= 500 &&
|
|
383
|
+
!(err.status >= 520 && err.status <= 526) &&
|
|
384
|
+
record(err.body));
|
|
385
|
+
}
|
|
162
386
|
/**
|
|
163
387
|
* What to tell a model about a refusal that is about the CALLER, not the computer.
|
|
164
388
|
*
|
|
@@ -304,6 +528,97 @@ export class MoveRequiredError extends ConflictError {
|
|
|
304
528
|
this.movePossible = movePossible;
|
|
305
529
|
}
|
|
306
530
|
}
|
|
531
|
+
/**
|
|
532
|
+
* The 409 a create-only upload gets when the path is already taken.
|
|
533
|
+
*
|
|
534
|
+
* `PUT /computers/{id}/files?overwrite=false` creates the file only if nothing
|
|
535
|
+
* is at `path`. When something is, the answer is 409 with `reason: "exists"` and
|
|
536
|
+
* THIS request wrote nothing — an earlier attempt whose answer was lost may have
|
|
537
|
+
* written the file itself. Its own class for the reason {@link MoveRequiredError}
|
|
538
|
+
* has one: it is a {@link ConflictError} by status and the opposite of one by
|
|
539
|
+
* nature — it clears only when the caller decides, never by waiting — so
|
|
540
|
+
* {@link isTransient} says no to it. A subclass, so `instanceof ConflictError`
|
|
541
|
+
* written before this existed still catches it.
|
|
542
|
+
*
|
|
543
|
+
* Raised only for the platform's explicit `reason: "exists"`, so the class is
|
|
544
|
+
* the claim: something is at the path. A create-only 409 whose reason could
|
|
545
|
+
* not be read is {@link CreateOnlyConflictError} instead, which claims nothing
|
|
546
|
+
* about the path.
|
|
547
|
+
*/
|
|
548
|
+
export class FileExistsError extends ConflictError {
|
|
549
|
+
name = 'FileExistsError';
|
|
550
|
+
}
|
|
551
|
+
/**
|
|
552
|
+
* A create-only upload refused with 409 whose reason could not be read.
|
|
553
|
+
*
|
|
554
|
+
* `PUT /computers/{id}/files?overwrite=false` is answered 409 `exists`
|
|
555
|
+
* ({@link FileExistsError}) or 409 `unsupported` when it is refused. A 409 can
|
|
556
|
+
* also arrive with no usable reason: the body interrupted, empty, a proxy's
|
|
557
|
+
* page instead of the platform's JSON, or JSON whose `reason` is missing, not a
|
|
558
|
+
* string, or blank. {@link Api} raises that refusal as this class (see
|
|
559
|
+
* {@link createOnlyRefusal}), with {@link APIError.reason} `undefined` and a
|
|
560
|
+
* message saying the reason is unknown. It does NOT say the path is taken, and
|
|
561
|
+
* it does not say whether the write landed.
|
|
562
|
+
*
|
|
563
|
+
* Final, not transient: {@link isTransient} says no to it. Sending the same
|
|
564
|
+
* create-only write again repeats a refusal that was not said to clear, and a
|
|
565
|
+
* delayed retry after the path is cleared could create the file when no one
|
|
566
|
+
* expected it. Read the path to find out what is there before deciding. The
|
|
567
|
+
* raw body stays on {@link APIError.body} for diagnostics. A subclass of
|
|
568
|
+
* {@link ConflictError}, so `instanceof ConflictError` still catches it.
|
|
569
|
+
*/
|
|
570
|
+
export class CreateOnlyConflictError extends ConflictError {
|
|
571
|
+
name = 'CreateOnlyConflictError';
|
|
572
|
+
}
|
|
573
|
+
/**
|
|
574
|
+
* A create-only upload's 409, never left looking like a passing conflict.
|
|
575
|
+
*
|
|
576
|
+
* Applied by {@link Api} to every `PUT computers/:id/files` sent with
|
|
577
|
+
* `overwrite=false`, so an embedder's {@link isTransient} and this server's
|
|
578
|
+
* tools give one answer. The platform's taken path is 409 `exists`, which
|
|
579
|
+
* {@link errorForStatus} already maps to {@link FileExistsError}. A 409 without
|
|
580
|
+
* a usable word — the body lost, empty, a proxy's page, or JSON whose `reason`
|
|
581
|
+
* is missing, not a string, or blank — would otherwise be a bare
|
|
582
|
+
* {@link ConflictError} that {@link isTransient} calls worth sending again: a
|
|
583
|
+
* retry of a refusal that does not clear, and one that could create the file
|
|
584
|
+
* later if the path were cleared in between. So it is a
|
|
585
|
+
* {@link CreateOnlyConflictError} here, final, with a neutral message: not the
|
|
586
|
+
* body's own text, which could say "already exists" without the `exists`
|
|
587
|
+
* reason. The body stays on the error for diagnostics. A 409 that DID carry a
|
|
588
|
+
* string reason keeps the platform's classification, whatever the word.
|
|
589
|
+
*/
|
|
590
|
+
export function createOnlyRefusal(err) {
|
|
591
|
+
if (!(err instanceof ConflictError) || err instanceof FileExistsError)
|
|
592
|
+
return err;
|
|
593
|
+
if (err instanceof CreateOnlyConflictError)
|
|
594
|
+
return err;
|
|
595
|
+
if (typeof err.reason === 'string' && err.reason.trim() !== '')
|
|
596
|
+
return err;
|
|
597
|
+
const refusal = new CreateOnlyConflictError('a create-only upload was refused as a conflict, reason unknown: the 409 carried no ' +
|
|
598
|
+
'reason that could be read, so whether the path is taken was not said; treat it as ' +
|
|
599
|
+
'final rather than sending the same write again', err.status, err.body, err.retryAfterMs, {
|
|
600
|
+
requestId: err.requestId,
|
|
601
|
+
allow: err.allow,
|
|
602
|
+
wwwAuthenticate: err.wwwAuthenticate,
|
|
603
|
+
method: err.method,
|
|
604
|
+
});
|
|
605
|
+
// The constructor reads the body again, and would keep a blank word. Unknown
|
|
606
|
+
// is `undefined`, as documented on CreateOnlyConflictError.
|
|
607
|
+
refusal.reason = undefined;
|
|
608
|
+
return refusal;
|
|
609
|
+
}
|
|
610
|
+
/**
|
|
611
|
+
* Whether this request is a create-only upload: `PUT computers/:id/files` with
|
|
612
|
+
* `overwrite=false`. The only request {@link createOnlyRefusal} applies to.
|
|
613
|
+
*/
|
|
614
|
+
export function isCreateOnlyUpload(method, path, query) {
|
|
615
|
+
if (method.toUpperCase() !== 'PUT')
|
|
616
|
+
return false;
|
|
617
|
+
if (!/^\/?computers\/[^/]+\/files$/.test(path))
|
|
618
|
+
return false;
|
|
619
|
+
const overwrite = query?.overwrite;
|
|
620
|
+
return overwrite === false || overwrite === 'false';
|
|
621
|
+
}
|
|
307
622
|
/**
|
|
308
623
|
* The `move` object the platform puts on the refusal above, if this body has one.
|
|
309
624
|
*
|
|
@@ -368,10 +683,36 @@ export class RateLimitError extends APIError {
|
|
|
368
683
|
super(message, status, body, retryAfterMs, metadata);
|
|
369
684
|
}
|
|
370
685
|
}
|
|
371
|
-
/**
|
|
686
|
+
/**
|
|
687
|
+
* 503 — something the request depends on (a hypervisor, a store, a host's
|
|
688
|
+
* capacity) could not answer or take it right now.
|
|
689
|
+
*
|
|
690
|
+
* A READ answered 503 can be asked again shortly. A CHANGE answered 503 may or
|
|
691
|
+
* may not have happened: the platform answers a failure after the request was
|
|
692
|
+
* sent the same way, with or without a warning in the message. So
|
|
693
|
+
* {@link isTransient} calls a 503 worth repeating only for a request that is
|
|
694
|
+
* safe to repeat — a GET or HEAD, see {@link REPEATABLE_METHODS} — and any
|
|
695
|
+
* change has its current state read before it is sent again.
|
|
696
|
+
*/
|
|
372
697
|
export class UnavailableError extends APIError {
|
|
373
698
|
name = 'UnavailableError';
|
|
374
699
|
}
|
|
700
|
+
/**
|
|
701
|
+
* The methods a `503` leaves safe to send again: the two reads.
|
|
702
|
+
*
|
|
703
|
+
* Every other method is a change, and the platform documents that a change
|
|
704
|
+
* answered `503` may or may not have happened. PUT and DELETE are idempotent in
|
|
705
|
+
* HTTP's terms, but "may have happened" still means the caller reads the state
|
|
706
|
+
* rather than replaying blind — the answer the TypeScript and Python SDKs give.
|
|
707
|
+
*/
|
|
708
|
+
const REPEATABLE_METHODS = new Set(['GET', 'HEAD']);
|
|
709
|
+
/**
|
|
710
|
+
* Whether a `503` leaves the request's outcome unknown: it was a change, or its
|
|
711
|
+
* method was not recorded.
|
|
712
|
+
*/
|
|
713
|
+
export function outcomeUnknownOn503(err) {
|
|
714
|
+
return err instanceof UnavailableError && !(err.method && REPEATABLE_METHODS.has(err.method));
|
|
715
|
+
}
|
|
375
716
|
/**
|
|
376
717
|
* The request was given up on before the platform answered.
|
|
377
718
|
*
|
|
@@ -773,6 +1114,10 @@ export function errorForStatus(status, message, body, retryAfterMs, metadata) {
|
|
|
773
1114
|
const offer = moveOffer(body);
|
|
774
1115
|
if (offer)
|
|
775
1116
|
return new MoveRequiredError(message, status, body, offer.possible, retryAfterMs, metadata);
|
|
1117
|
+
// The create-only upload whose path was taken, told apart by the platform's
|
|
1118
|
+
// word rather than by its sentence.
|
|
1119
|
+
if (refusalReason(body) === 'exists')
|
|
1120
|
+
return new FileExistsError(message, status, body, retryAfterMs, metadata);
|
|
776
1121
|
}
|
|
777
1122
|
if (status === 416) {
|
|
778
1123
|
return new RangeNotSatisfiableError(message, status, body, undefined, retryAfterMs, metadata);
|
|
@@ -830,7 +1175,9 @@ export function errorForStatus(status, message, body, retryAfterMs, metadata) {
|
|
|
830
1175
|
* - {@link ConflictError} — something is in flight that this cannot run
|
|
831
1176
|
* alongside, minus the one that is a decision
|
|
832
1177
|
* - {@link RateLimitError} — a cadence, and the response usually says how long
|
|
833
|
-
* - {@link UnavailableError} —
|
|
1178
|
+
* - {@link UnavailableError} — something briefly out of reach, for a GET or
|
|
1179
|
+
* HEAD only. Any change answered 503 may have happened, so it is not
|
|
1180
|
+
* transient, whatever `reason` it carries
|
|
834
1181
|
* - {@link ConnectivityError} — the request never left
|
|
835
1182
|
*
|
|
836
1183
|
* That last line is now literally true, and it was not always. The class used
|
|
@@ -885,6 +1232,15 @@ export function errorForStatus(status, message, body, retryAfterMs, metadata) {
|
|
|
885
1232
|
export function isTransient(err) {
|
|
886
1233
|
if (err instanceof APIError && [401, 402, 403, 404, 405].includes(err.status))
|
|
887
1234
|
return false;
|
|
1235
|
+
// A keyed call the platform never heard end (platform OPL-5127). A 409 with no
|
|
1236
|
+
// `reason`, so the ConflictError branch below would call it worth sending
|
|
1237
|
+
// again — and the same key answers the same thing forever: the computer is
|
|
1238
|
+
// what says whether it happened. Its sibling `idempotency_in_progress` carries
|
|
1239
|
+
// `reason: "contention"` and IS worth sending again: that is the wait for the
|
|
1240
|
+
// first call's answer.
|
|
1241
|
+
if (err instanceof APIError && idempotencyCode(err) === 'idempotency_outcome_unknown') {
|
|
1242
|
+
return false;
|
|
1243
|
+
}
|
|
888
1244
|
// Preparation requires the original template and a token, and may have failed.
|
|
889
1245
|
// A generic retry of the unchanged create is not the continuation protocol.
|
|
890
1246
|
if (err instanceof APIError &&
|
|
@@ -898,13 +1254,23 @@ export function isTransient(err) {
|
|
|
898
1254
|
// First, because it is a subclass of the very branch below that would say yes
|
|
899
1255
|
// (OPL-3775). An embedder wrapping a resize in `if (isTransient(err)) retry()`
|
|
900
1256
|
// is the caller this line is for.
|
|
901
|
-
if (err instanceof MoveRequiredError
|
|
1257
|
+
if (err instanceof MoveRequiredError ||
|
|
1258
|
+
err instanceof FileExistsError ||
|
|
1259
|
+
err instanceof CreateOnlyConflictError)
|
|
902
1260
|
return false;
|
|
903
1261
|
// A lost RESPONSE is not a request that never left, and only one of the two
|
|
904
1262
|
// is safe to replay blind. Same shape as the line above and the same reason:
|
|
905
1263
|
// a subclass of a branch below that would otherwise say yes (OPL-3855).
|
|
906
1264
|
if (err instanceof ConnectivityInterruptedError)
|
|
907
1265
|
return false;
|
|
1266
|
+
// A 503 is a passing moment for a read and an unknown outcome for a change
|
|
1267
|
+
// (OPL-5026): the platform answers a failure after the request was sent the
|
|
1268
|
+
// same way. Decided BEFORE the reason word, which is about the computer and
|
|
1269
|
+
// cannot say whether this request's change landed — a `contention` on a
|
|
1270
|
+
// create's 503 must not make the create look safe to replay. Anything but a
|
|
1271
|
+
// GET or HEAD, or a request whose method was not recorded, is not replayed.
|
|
1272
|
+
if (err instanceof UnavailableError)
|
|
1273
|
+
return !outcomeUnknownOn503(err);
|
|
908
1274
|
// The platform's own word, ahead of the types below, because it is the more
|
|
909
1275
|
// specific answer and it is the one that tells the 409 that never clears from
|
|
910
1276
|
// the two that do (OPL-3898). Only an APIError carries a shape-checked one:
|
|
@@ -922,7 +1288,6 @@ export function isTransient(err) {
|
|
|
922
1288
|
}
|
|
923
1289
|
return (err instanceof ConflictError ||
|
|
924
1290
|
err instanceof RateLimitError ||
|
|
925
|
-
err instanceof UnavailableError ||
|
|
926
1291
|
err instanceof ConnectivityError);
|
|
927
1292
|
}
|
|
928
1293
|
/**
|
|
@@ -1034,7 +1399,9 @@ export function isTransient(err) {
|
|
|
1034
1399
|
export function isTransientForPoll(err) {
|
|
1035
1400
|
if (!(err instanceof APIError) && !(err instanceof ConnectivityError))
|
|
1036
1401
|
return false;
|
|
1037
|
-
if (err instanceof MoveRequiredError
|
|
1402
|
+
if (err instanceof MoveRequiredError ||
|
|
1403
|
+
err instanceof FileExistsError ||
|
|
1404
|
+
err instanceof CreateOnlyConflictError)
|
|
1038
1405
|
return false;
|
|
1039
1406
|
if (err instanceof OriginTLSError)
|
|
1040
1407
|
return false;
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|