@pipelex/sdk 0.38.0 → 0.39.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 +2 -2
- package/dist/cli/run.js +8 -111
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/script.d.ts +1 -1
- package/dist/client.d.ts +33 -10
- package/dist/client.js +111 -44
- package/dist/client.js.map +1 -1
- package/dist/error-models.d.ts +64 -18
- package/dist/error-models.js +20 -9
- package/dist/error-models.js.map +1 -1
- package/dist/errors.d.ts +114 -22
- package/dist/errors.js +114 -21
- package/dist/errors.js.map +1 -1
- package/dist/execute-result.js +4 -4
- package/dist/execute-result.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/prepare-inputs.d.ts +13 -0
- package/dist/prepare-inputs.js +86 -41
- package/dist/prepare-inputs.js.map +1 -1
- package/dist/product-models.d.ts +13 -5
- package/dist/run-may-have-started.d.ts +31 -0
- package/dist/run-may-have-started.js +138 -0
- package/dist/run-may-have-started.js.map +1 -0
- package/dist/runs.d.ts +95 -7
- package/dist/runs.js +18 -0
- package/dist/runs.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/architecture.md +3 -2
- package/docs/cli.md +1 -1
- package/docs/errors.md +85 -16
- package/docs/input-preparation.md +18 -0
- package/docs/run-results.md +39 -0
- package/package.json +2 -2
package/dist/prepare-inputs.d.ts
CHANGED
|
@@ -52,6 +52,15 @@ export interface PrepareInputsBase {
|
|
|
52
52
|
* abort. A request already sent runs to its end. It is not sent to the server.
|
|
53
53
|
*/
|
|
54
54
|
signal?: AbortSignal;
|
|
55
|
+
/**
|
|
56
|
+
* Whether preparation may upload, `true` when omitted. With `false`, a value at a file input
|
|
57
|
+
* that would need an upload — a local path, a `data:` URL, bytes — is refused with an
|
|
58
|
+
* {@link UploadNotAllowedError} naming the input, and nothing is read from disk, decoded or
|
|
59
|
+
* sent to the upload route; `http(s)` URLs and `pipelex-storage://` references pass through as
|
|
60
|
+
* always. It is for a server preparing inputs on a caller's behalf, which must never read a file
|
|
61
|
+
* of its own because the caller named it. It is not sent to the server.
|
|
62
|
+
*/
|
|
63
|
+
allowUploads?: boolean;
|
|
55
64
|
}
|
|
56
65
|
/**
|
|
57
66
|
* How the method is named — exactly one of the three selectors, each pinning the
|
|
@@ -96,6 +105,10 @@ export interface PrepareCapableClient extends UploadCapableClient {
|
|
|
96
105
|
* records. HTTP(S) URLs and existing `pipelex-storage://` URIs pass through
|
|
97
106
|
* unchanged. All failures are raised before any run is created.
|
|
98
107
|
*
|
|
108
|
+
* With `allowUploads: false`, nothing is read from disk or uploaded: a value that
|
|
109
|
+
* would need either throws {@link UploadNotAllowedError}, naming the input and
|
|
110
|
+
* where inside it the value sits.
|
|
111
|
+
*
|
|
99
112
|
* The pipe and its signature come from one `POST /v1/pipe-io`, whatever the
|
|
100
113
|
* selector — inline `files`, a `method_ref` the runner resolves, or a
|
|
101
114
|
* `method_id` the platform resolves. A bare or alias-qualified `pipe_ref`, a
|
package/dist/prepare-inputs.js
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
*/
|
|
33
33
|
import { isValidationItem } from "./error-models.js";
|
|
34
34
|
import { throwIfAborted } from "./runs.js";
|
|
35
|
-
import { ApiResponseError, InputPreparationError, InvalidInputValueError, MethodLoadError, } from "./errors.js";
|
|
35
|
+
import { ApiResponseError, InputPreparationError, InvalidInputValueError, MethodLoadError, UploadNotAllowedError, } from "./errors.js";
|
|
36
36
|
import { uploadFile } from "./upload.js";
|
|
37
37
|
const PIPELEX_STORAGE_SCHEME = "pipelex-storage://";
|
|
38
38
|
const HTTP_URL_RE = /^https?:\/\//i;
|
|
@@ -123,54 +123,73 @@ function base64ToBytes(base64) {
|
|
|
123
123
|
bytes[index] = binary.charCodeAt(index);
|
|
124
124
|
return bytes;
|
|
125
125
|
}
|
|
126
|
-
|
|
126
|
+
function classifySource(source) {
|
|
127
|
+
if (typeof source === "string") {
|
|
128
|
+
if (source.startsWith(PIPELEX_STORAGE_SCHEME) || HTTP_URL_RE.test(source)) {
|
|
129
|
+
return { kind: "reference", value: source };
|
|
130
|
+
}
|
|
131
|
+
if (source.startsWith("data:"))
|
|
132
|
+
return { kind: "data_url", value: source };
|
|
133
|
+
// Anything else is a local filesystem path — Node only (uploadFile enforces it).
|
|
134
|
+
return { kind: "local_path", value: source };
|
|
135
|
+
}
|
|
136
|
+
if (source instanceof Blob || source instanceof ArrayBuffer || source instanceof Uint8Array) {
|
|
137
|
+
return { kind: "bytes", value: source };
|
|
138
|
+
}
|
|
139
|
+
return { kind: "unsupported", value: source };
|
|
140
|
+
}
|
|
141
|
+
/** Resolve one classified source to the URL/URI to write, deduped by the caller's value's identity. */
|
|
127
142
|
function resolveSource(ctx, source) {
|
|
128
|
-
const cached = ctx.dedup.get(source);
|
|
143
|
+
const cached = ctx.dedup.get(source.value);
|
|
129
144
|
if (cached !== undefined)
|
|
130
145
|
return cached;
|
|
131
146
|
const pending = doResolveSource(ctx, source);
|
|
132
|
-
ctx.dedup.set(source, pending);
|
|
147
|
+
ctx.dedup.set(source.value, pending);
|
|
133
148
|
return pending;
|
|
134
149
|
}
|
|
135
150
|
async function doResolveSource(ctx, source) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
return source; // already prepared
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
if (source.startsWith("data:")) {
|
|
142
|
-
const { bytes, contentType } = decodeDataUrl(source);
|
|
151
|
+
switch (source.kind) {
|
|
152
|
+
case "reference":
|
|
153
|
+
return source.value; // already prepared, or a reachable URL — pass through
|
|
154
|
+
case "data_url": {
|
|
155
|
+
const { bytes, contentType } = decodeDataUrl(source.value);
|
|
143
156
|
throwIfAborted(ctx.signal);
|
|
144
157
|
const record = await uploadFile(ctx.client, bytes, { contentType, signal: ctx.signal });
|
|
145
158
|
ctx.uploads.push(record);
|
|
146
159
|
return record.uri;
|
|
147
160
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
161
|
+
case "local_path":
|
|
162
|
+
case "bytes": {
|
|
163
|
+
throwIfAborted(ctx.signal);
|
|
164
|
+
const record = await uploadFile(ctx.client, source.value, { signal: ctx.signal });
|
|
165
|
+
ctx.uploads.push(record);
|
|
166
|
+
return record.uri;
|
|
167
|
+
}
|
|
168
|
+
case "unsupported":
|
|
169
|
+
// An unrecognized value sits at a file-bearing position (neither a source string,
|
|
170
|
+
// bytes, nor a canonical `{url}` content dict). Fail with a typed error rather than
|
|
171
|
+
// letting a raw TypeError escape from the byte-extraction path.
|
|
172
|
+
throw new InvalidInputValueError(`Unsupported value at a file input: expected a path string, bytes (Blob/File/ArrayBuffer/Uint8Array), ` +
|
|
173
|
+
`a data URL, an http(s)/pipelex-storage:// URL, or canonical {url} content; got ${typeof source.value}.`);
|
|
159
174
|
}
|
|
160
|
-
// An unrecognized value sits at a file-bearing position (neither a source string,
|
|
161
|
-
// bytes, nor a canonical `{url}` content dict). Fail with a typed error rather than
|
|
162
|
-
// letting a raw TypeError escape from the byte-extraction path.
|
|
163
|
-
throw new InvalidInputValueError(`Unsupported value at a file input: expected a path string, bytes (Blob/File/ArrayBuffer/Uint8Array), ` +
|
|
164
|
-
`a data URL, an http(s)/pipelex-storage:// URL, or canonical {url} content; got ${typeof source}.`);
|
|
165
175
|
}
|
|
166
|
-
/**
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
176
|
+
/**
|
|
177
|
+
* Resolve a value known to sit at a file position into canonical content with a rewritten `url`.
|
|
178
|
+
* Under `allowUploads: false`, a source that would need an upload is refused here, before
|
|
179
|
+
* `resolveSource` could read, decode or upload it.
|
|
180
|
+
*/
|
|
181
|
+
async function resolveFilePosition(ctx, callerValue, at) {
|
|
182
|
+
const fileContent = isFileContent(callerValue);
|
|
183
|
+
const source = classifySource(fileContent ? callerValue.url : callerValue);
|
|
184
|
+
if (!ctx.allowUploads && source.kind !== "reference" && source.kind !== "unsupported") {
|
|
185
|
+
throw new UploadNotAllowedError({
|
|
186
|
+
inputName: at.name,
|
|
187
|
+
inputPath: at.path,
|
|
188
|
+
valueKind: source.kind,
|
|
189
|
+
});
|
|
171
190
|
}
|
|
172
|
-
const resolved = await resolveSource(ctx,
|
|
173
|
-
return { url: resolved };
|
|
191
|
+
const resolved = await resolveSource(ctx, source);
|
|
192
|
+
return fileContent ? { ...callerValue, url: resolved } : { url: resolved };
|
|
174
193
|
}
|
|
175
194
|
/**
|
|
176
195
|
* Descriptor-guided walk, discriminated on the node's `kind`:
|
|
@@ -190,18 +209,21 @@ async function resolveFilePosition(ctx, callerValue) {
|
|
|
190
209
|
* non-array at a `list`) passes through for the run to reject — preparation never
|
|
191
210
|
* second-guesses the signature.
|
|
192
211
|
*/
|
|
193
|
-
async function resolveNode(ctx, node, callerValue) {
|
|
212
|
+
async function resolveNode(ctx, node, callerValue, at) {
|
|
194
213
|
switch (node.kind) {
|
|
195
214
|
case "document":
|
|
196
215
|
case "image":
|
|
197
|
-
return resolveFilePosition(ctx, callerValue);
|
|
216
|
+
return resolveFilePosition(ctx, callerValue, at);
|
|
198
217
|
case "object": {
|
|
199
218
|
if (!isPlainObject(callerValue))
|
|
200
219
|
return callerValue;
|
|
201
220
|
const result = { ...callerValue };
|
|
202
221
|
for (const field of node.fields) {
|
|
203
222
|
if (Object.hasOwn(callerValue, field.name)) {
|
|
204
|
-
result[field.name] = await resolveNode(ctx, field, callerValue[field.name]
|
|
223
|
+
result[field.name] = await resolveNode(ctx, field, callerValue[field.name], {
|
|
224
|
+
name: at.name,
|
|
225
|
+
path: `${at.path}.${field.name}`,
|
|
226
|
+
});
|
|
205
227
|
}
|
|
206
228
|
}
|
|
207
229
|
return result;
|
|
@@ -209,7 +231,7 @@ async function resolveNode(ctx, node, callerValue) {
|
|
|
209
231
|
case "list": {
|
|
210
232
|
if (!Array.isArray(callerValue))
|
|
211
233
|
return callerValue;
|
|
212
|
-
return Promise.all(callerValue.map((element) => resolveNode(ctx, node.item, element)));
|
|
234
|
+
return Promise.all(callerValue.map((element, index) => resolveNode(ctx, node.item, element, { name: at.name, path: `${at.path}[${index}]` })));
|
|
213
235
|
}
|
|
214
236
|
default:
|
|
215
237
|
return callerValue;
|
|
@@ -281,6 +303,18 @@ function normalizePipeRef(raw) {
|
|
|
281
303
|
}
|
|
282
304
|
return pipeRef;
|
|
283
305
|
}
|
|
306
|
+
/**
|
|
307
|
+
* Read the caller's `allowUploads`: `true` when omitted, the boolean when given, and refused
|
|
308
|
+
* before any request otherwise. A value of the wrong type is not read as either answer, since
|
|
309
|
+
* reading a stray `"false"` as permission would upload exactly what the caller meant to refuse.
|
|
310
|
+
*/
|
|
311
|
+
function resolveAllowUploads(raw) {
|
|
312
|
+
if (raw === undefined)
|
|
313
|
+
return true;
|
|
314
|
+
if (typeof raw === "boolean")
|
|
315
|
+
return raw;
|
|
316
|
+
throw new InputPreparationError(`Cannot prepare inputs: \`allowUploads\` must be a boolean, got ${raw === null ? "null" : typeof raw}.`);
|
|
317
|
+
}
|
|
284
318
|
/**
|
|
285
319
|
* Ask `POST /v1/pipe-io` for the pipe and its signature, whatever the selector,
|
|
286
320
|
* and hand back the valid report.
|
|
@@ -364,6 +398,10 @@ function selectedDescriptor(report) {
|
|
|
364
398
|
* records. HTTP(S) URLs and existing `pipelex-storage://` URIs pass through
|
|
365
399
|
* unchanged. All failures are raised before any run is created.
|
|
366
400
|
*
|
|
401
|
+
* With `allowUploads: false`, nothing is read from disk or uploaded: a value that
|
|
402
|
+
* would need either throws {@link UploadNotAllowedError}, naming the input and
|
|
403
|
+
* where inside it the value sits.
|
|
404
|
+
*
|
|
367
405
|
* The pipe and its signature come from one `POST /v1/pipe-io`, whatever the
|
|
368
406
|
* selector — inline `files`, a `method_ref` the runner resolves, or a
|
|
369
407
|
* `method_id` the platform resolves. A bare or alias-qualified `pipe_ref`, a
|
|
@@ -376,12 +414,19 @@ function selectedDescriptor(report) {
|
|
|
376
414
|
export async function prepareInputs(client, request) {
|
|
377
415
|
const selector = resolveSelector(request);
|
|
378
416
|
const pipeRef = normalizePipeRef(request.pipe_ref);
|
|
417
|
+
const allowUploads = resolveAllowUploads(request.allowUploads);
|
|
379
418
|
throwIfAborted(request.signal);
|
|
380
419
|
const report = await fetchSignature(client, selector, pipeRef);
|
|
381
420
|
throwIfAborted(request.signal);
|
|
382
421
|
const descriptor = selectedDescriptor(report);
|
|
383
422
|
const declared = new Map(descriptor.fields.map((field) => [field.name, field]));
|
|
384
|
-
const ctx = {
|
|
423
|
+
const ctx = {
|
|
424
|
+
client,
|
|
425
|
+
signal: request.signal,
|
|
426
|
+
allowUploads,
|
|
427
|
+
uploads: [],
|
|
428
|
+
dedup: new Map(),
|
|
429
|
+
};
|
|
385
430
|
const rewritten = { ...request.inputs };
|
|
386
431
|
for (const [name, callerValue] of Object.entries(request.inputs)) {
|
|
387
432
|
const field = declared.get(name);
|
|
@@ -392,11 +437,11 @@ export async function prepareInputs(client, request) {
|
|
|
392
437
|
// The caller filled the explicit `{ concept, content }` envelope: walk the
|
|
393
438
|
// inner content against the same node, then re-wrap so the concept
|
|
394
439
|
// annotation rides through to the run (the runtime accepts the envelope).
|
|
395
|
-
const walked = await resolveNode(ctx, field, callerValue.content);
|
|
440
|
+
const walked = await resolveNode(ctx, field, callerValue.content, { name, path: name });
|
|
396
441
|
rewritten[name] = { ...callerValue, content: walked };
|
|
397
442
|
}
|
|
398
443
|
else {
|
|
399
|
-
rewritten[name] = await resolveNode(ctx, field, callerValue);
|
|
444
|
+
rewritten[name] = await resolveNode(ctx, field, callerValue, { name, path: name });
|
|
400
445
|
}
|
|
401
446
|
}
|
|
402
447
|
return { inputs: rewritten, uploads: ctx.uploads };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-inputs.js","sourceRoot":"","sources":["../src/prepare-inputs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prepare-inputs.js","sourceRoot":"","sources":["../src/prepare-inputs.ts"],"names":[],"mappings":"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"}
|
package/dist/product-models.d.ts
CHANGED
|
@@ -481,9 +481,9 @@ export interface PipelineRun {
|
|
|
481
481
|
pipe_statuses?: Record<string, PipeStatus> | null;
|
|
482
482
|
created_at: string;
|
|
483
483
|
finished_at?: string | null;
|
|
484
|
-
/** The
|
|
485
|
-
*
|
|
486
|
-
* WHY a run failed rather than showing a generic message. */
|
|
484
|
+
/** The run's stored error report as the platform serves it, the runner's STRICT
|
|
485
|
+
* projection, typed whole (see `RunErrorReport` for which runs hold one). This is how a
|
|
486
|
+
* consumer tells the user WHY a run failed rather than showing a generic message. */
|
|
487
487
|
error?: RunErrorReport | null;
|
|
488
488
|
/**
|
|
489
489
|
* Which version of its method the run ran: the version number for a run addressed by a
|
|
@@ -518,8 +518,9 @@ export interface RunHistoryItem {
|
|
|
518
518
|
finished_at?: string | null;
|
|
519
519
|
/** `null` when the runner resolved the pipe from the bundle's `main_pipe`. */
|
|
520
520
|
pipe_code?: string | null;
|
|
521
|
-
/** The
|
|
522
|
-
* so opening it from history shows why
|
|
521
|
+
/** The run's stored error report, served as on the run detail — present only on a run
|
|
522
|
+
* that ended without completing and holds one, so opening it from history shows why
|
|
523
|
+
* without another read. */
|
|
523
524
|
error?: RunErrorReport | null;
|
|
524
525
|
/**
|
|
525
526
|
* Which version of the method the run ran — a number, `"draft"`, or `null` for an inline
|
|
@@ -548,6 +549,13 @@ export interface RunDetail extends PipelineRun {
|
|
|
548
549
|
mthds_contents?: string[] | null;
|
|
549
550
|
/** The inputs the run was started with, as sent. */
|
|
550
551
|
inputs?: Record<string, unknown> | null;
|
|
552
|
+
/**
|
|
553
|
+
* The id of the request that started the run — the one to quote to support, and the one the
|
|
554
|
+
* platform and the runner logged it under. `null` for a run saved before the platform recorded
|
|
555
|
+
* it; absent on a server that does not serve it. The run history does not carry it; the status
|
|
556
|
+
* read does, as `RunRead.request_id`.
|
|
557
|
+
*/
|
|
558
|
+
request_id?: string | null;
|
|
551
559
|
}
|
|
552
560
|
/** Query for one page of run history. */
|
|
553
561
|
export interface ListRunsQuery {
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a failed request that may create a run, a start or a blocking execute, may still have
|
|
3
|
+
* started one whose id never reached the caller. `ApiUnreachableError` and `ApiResponseError` read
|
|
4
|
+
* it when the client tells them their request may create a run, and carry the answer as
|
|
5
|
+
* `runMayHaveStarted`; the Python twin, `pipelex-sdk`, reads the same failures the same way in
|
|
6
|
+
* `pipelex_sdk.run_may_have_started`.
|
|
7
|
+
*
|
|
8
|
+
* The reading errs on the safe side. A false "may have started" costs the person a look at the run
|
|
9
|
+
* history; a false "did not start" costs a second paid run. So every failure counts as one that
|
|
10
|
+
* may have started a run unless it proves otherwise: a transport failure that proves nothing was
|
|
11
|
+
* sent, and an answer that says the request was refused before anything ran.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Whether an answer to a request that may create a run leaves one possibly started:
|
|
15
|
+
*
|
|
16
|
+
* - any `2xx`, which the client met only because it could not read it: the server accepted the
|
|
17
|
+
* request, and only its acknowledgement was lost;
|
|
18
|
+
* - a `408`, which a proxy in front of the platform may answer for a request it forwarded;
|
|
19
|
+
* - every `5xx` but a `501`, which says the deployment does not serve the route, and a `503`
|
|
20
|
+
* carrying the platform's code `pipeline_start_unavailable`, which says the runner was never
|
|
21
|
+
* reached: the server or a gateway failed while handling the request.
|
|
22
|
+
*
|
|
23
|
+
* Any other status is the request refused before anything ran.
|
|
24
|
+
*/
|
|
25
|
+
export declare function answerMayHaveStartedRun(status: number, code: string | undefined): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Whether a transport failure of a request that may create a run leaves one possibly started:
|
|
28
|
+
* every failure but one that proves nothing was sent. `cause` is the failure fetch threw, which
|
|
29
|
+
* `ApiUnreachableError` keeps as its own `cause`.
|
|
30
|
+
*/
|
|
31
|
+
export declare function transportMayHaveStartedRun(cause: unknown): boolean;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a failed request that may create a run, a start or a blocking execute, may still have
|
|
3
|
+
* started one whose id never reached the caller. `ApiUnreachableError` and `ApiResponseError` read
|
|
4
|
+
* it when the client tells them their request may create a run, and carry the answer as
|
|
5
|
+
* `runMayHaveStarted`; the Python twin, `pipelex-sdk`, reads the same failures the same way in
|
|
6
|
+
* `pipelex_sdk.run_may_have_started`.
|
|
7
|
+
*
|
|
8
|
+
* The reading errs on the safe side. A false "may have started" costs the person a look at the run
|
|
9
|
+
* history; a false "did not start" costs a second paid run. So every failure counts as one that
|
|
10
|
+
* may have started a run unless it proves otherwise: a transport failure that proves nothing was
|
|
11
|
+
* sent, and an answer that says the request was refused before anything ran.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* The platform code of the `503` a start answers when the platform could not reach the runner at
|
|
15
|
+
* all: it finalized the run's row `FAILED` and started nothing. Every other `503`, the platform's
|
|
16
|
+
* `service_unavailable` included, can follow a run the runner already started.
|
|
17
|
+
*/
|
|
18
|
+
const START_UNAVAILABLE_CODE = "pipeline_start_unavailable";
|
|
19
|
+
/**
|
|
20
|
+
* Whether an answer to a request that may create a run leaves one possibly started:
|
|
21
|
+
*
|
|
22
|
+
* - any `2xx`, which the client met only because it could not read it: the server accepted the
|
|
23
|
+
* request, and only its acknowledgement was lost;
|
|
24
|
+
* - a `408`, which a proxy in front of the platform may answer for a request it forwarded;
|
|
25
|
+
* - every `5xx` but a `501`, which says the deployment does not serve the route, and a `503`
|
|
26
|
+
* carrying the platform's code `pipeline_start_unavailable`, which says the runner was never
|
|
27
|
+
* reached: the server or a gateway failed while handling the request.
|
|
28
|
+
*
|
|
29
|
+
* Any other status is the request refused before anything ran.
|
|
30
|
+
*/
|
|
31
|
+
export function answerMayHaveStartedRun(status, code) {
|
|
32
|
+
if (status >= 200 && status < 300)
|
|
33
|
+
return true;
|
|
34
|
+
if (status === 408)
|
|
35
|
+
return true;
|
|
36
|
+
if (status === 501)
|
|
37
|
+
return false;
|
|
38
|
+
if (status === 503 && code === START_UNAVAILABLE_CODE)
|
|
39
|
+
return false;
|
|
40
|
+
return status >= 500 && status < 600;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Whether a transport failure of a request that may create a run leaves one possibly started:
|
|
44
|
+
* every failure but one that proves nothing was sent. `cause` is the failure fetch threw, which
|
|
45
|
+
* `ApiUnreachableError` keeps as its own `cause`.
|
|
46
|
+
*/
|
|
47
|
+
export function transportMayHaveStartedRun(cause) {
|
|
48
|
+
return !provesNothingSent(cause);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Whether a transport failure proves the request never left, so that no run was created by it: it
|
|
52
|
+
* names a step of the connection's set-up, which no request follows. That is the name lookup or
|
|
53
|
+
* the connection itself failing (the system calls `getaddrinfo` and `connect`: an unknown host, a
|
|
54
|
+
* refused connection, no route to the host or the network, the system's connect time limit),
|
|
55
|
+
* undici's own connect time limit, which covers the TLS handshake, and a server certificate the
|
|
56
|
+
* TLS handshake refused. Several addresses each failing so, which Node reports together as an
|
|
57
|
+
* `AggregateError`, prove it too. A host that drops packets is a connection that never comes:
|
|
58
|
+
* undici gives it up after ten seconds (`UND_ERR_CONNECT_TIMEOUT`), before the time limit of any
|
|
59
|
+
* request that may create a run, as the Python SDK meets httpx's connect timeout first and reads
|
|
60
|
+
* it the same way.
|
|
61
|
+
*
|
|
62
|
+
* Anything else may have come once the request had left, the Python SDK reading the same failures
|
|
63
|
+
* the same way. A reset (`ECONNRESET`) comes from a `read` whether the connection dropped during
|
|
64
|
+
* the TLS handshake or after the request, and so does an `EHOSTUNREACH` met once connected, so
|
|
65
|
+
* neither proves anything; nor does another TLS failure, which may come after the handshake; nor
|
|
66
|
+
* does the SDK's own time limit (`ABORT_TIMEOUT`), which fetch cannot place before or after the
|
|
67
|
+
* connection was made; nor does a body that arrived and could not be decoded. Every request that
|
|
68
|
+
* may create a run has a limit longer than undici's connect limit, so with Node's own dispatcher
|
|
69
|
+
* it runs out only once the request has left.
|
|
70
|
+
*/
|
|
71
|
+
function provesNothingSent(fetchFailure) {
|
|
72
|
+
// undici gives the transport's own failure as the `cause` of fetch's.
|
|
73
|
+
return fetchFailure instanceof Error && isConnectionSetupFailure(fetchFailure.cause);
|
|
74
|
+
}
|
|
75
|
+
function isConnectionSetupFailure(failure) {
|
|
76
|
+
if (failure instanceof AggregateError) {
|
|
77
|
+
return failure.errors.length > 0 && failure.errors.every(isConnectionSetupFailure);
|
|
78
|
+
}
|
|
79
|
+
if (typeof failure !== "object" || failure === null)
|
|
80
|
+
return false;
|
|
81
|
+
const { code, syscall } = failure;
|
|
82
|
+
if (typeof code === "string" && CONNECTION_SETUP_CODES.has(code))
|
|
83
|
+
return true;
|
|
84
|
+
return typeof syscall === "string" && CONNECTION_SETUP_CALLS.has(syscall);
|
|
85
|
+
}
|
|
86
|
+
/** The system calls that resolve the host's name and open the connection. */
|
|
87
|
+
const CONNECTION_SETUP_CALLS = new Set(["getaddrinfo", "connect"]);
|
|
88
|
+
/**
|
|
89
|
+
* The codes only a step of the connection's set-up gives: the name lookup's and the connect call's
|
|
90
|
+
* own (set even where Node reports several addresses together, without a system call), undici's
|
|
91
|
+
* connect time limit, Node's limit on one attempt among several addresses, Node's own check of the
|
|
92
|
+
* host's name, and every code Node gives a server certificate the TLS handshake refused.
|
|
93
|
+
*/
|
|
94
|
+
const CONNECTION_SETUP_CODES = new Set([
|
|
95
|
+
"ECONNREFUSED",
|
|
96
|
+
"ENOTFOUND",
|
|
97
|
+
"EAI_AGAIN",
|
|
98
|
+
"UND_ERR_CONNECT_TIMEOUT",
|
|
99
|
+
"ERR_SOCKET_CONNECTION_TIMEOUT",
|
|
100
|
+
"ERR_TLS_CERT_ALTNAME_INVALID",
|
|
101
|
+
"ERR_TLS_CERT_ALTNAME_FORMAT",
|
|
102
|
+
// Node names the verdicts of OpenSSL's certificate check from a fixed table, the "X509 certificate
|
|
103
|
+
// error codes" of its `tls` docs, and gives every other verdict, such as an unhandled critical
|
|
104
|
+
// extension or a CA certificate that may not sign certificates, the code `UNSPECIFIED`. The
|
|
105
|
+
// error carries nothing else that marks it, so these codes are the mark: the table as Node 24
|
|
106
|
+
// compiles it, in its order, then its default. The Python SDK reads every
|
|
107
|
+
// `ssl.SSLCertVerificationError` the same way.
|
|
108
|
+
"UNABLE_TO_GET_ISSUER_CERT",
|
|
109
|
+
"UNABLE_TO_GET_CRL",
|
|
110
|
+
"UNABLE_TO_DECRYPT_CERT_SIGNATURE",
|
|
111
|
+
"UNABLE_TO_DECRYPT_CRL_SIGNATURE",
|
|
112
|
+
"UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY",
|
|
113
|
+
"CERT_SIGNATURE_FAILURE",
|
|
114
|
+
"CRL_SIGNATURE_FAILURE",
|
|
115
|
+
"CERT_NOT_YET_VALID",
|
|
116
|
+
"CERT_HAS_EXPIRED",
|
|
117
|
+
"CRL_NOT_YET_VALID",
|
|
118
|
+
"CRL_HAS_EXPIRED",
|
|
119
|
+
"ERROR_IN_CERT_NOT_BEFORE_FIELD",
|
|
120
|
+
"ERROR_IN_CERT_NOT_AFTER_FIELD",
|
|
121
|
+
"ERROR_IN_CRL_LAST_UPDATE_FIELD",
|
|
122
|
+
"ERROR_IN_CRL_NEXT_UPDATE_FIELD",
|
|
123
|
+
"OUT_OF_MEM",
|
|
124
|
+
"DEPTH_ZERO_SELF_SIGNED_CERT",
|
|
125
|
+
"SELF_SIGNED_CERT_IN_CHAIN",
|
|
126
|
+
"UNABLE_TO_GET_ISSUER_CERT_LOCALLY",
|
|
127
|
+
"UNABLE_TO_VERIFY_LEAF_SIGNATURE",
|
|
128
|
+
"CERT_CHAIN_TOO_LONG",
|
|
129
|
+
"CERT_REVOKED",
|
|
130
|
+
"INVALID_CA",
|
|
131
|
+
"PATH_LENGTH_EXCEEDED",
|
|
132
|
+
"INVALID_PURPOSE",
|
|
133
|
+
"CERT_UNTRUSTED",
|
|
134
|
+
"CERT_REJECTED",
|
|
135
|
+
"HOSTNAME_MISMATCH",
|
|
136
|
+
"UNSPECIFIED",
|
|
137
|
+
]);
|
|
138
|
+
//# sourceMappingURL=run-may-have-started.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-may-have-started.js","sourceRoot":"","sources":["../src/run-may-have-started.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,4BAA4B,CAAC;AAE5D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc,EAAE,IAAwB;IAC9E,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,MAAM,KAAK,GAAG,IAAI,IAAI,KAAK,sBAAsB;QAAE,OAAO,KAAK,CAAC;IACpE,OAAO,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAS,iBAAiB,CAAC,YAAqB;IAC9C,sEAAsE;IACtE,OAAO,YAAY,YAAY,KAAK,IAAI,wBAAwB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAgB;IAChD,IAAI,OAAO,YAAY,cAAc,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAClE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAgD,CAAC;IAC3E,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9E,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC5E,CAAC;AAED,6EAA6E;AAC7E,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;AAExF;;;;;GAKG;AACH,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IAC1D,cAAc;IACd,WAAW;IACX,WAAW;IACX,yBAAyB;IACzB,+BAA+B;IAC/B,8BAA8B;IAC9B,6BAA6B;IAC7B,mGAAmG;IACnG,+FAA+F;IAC/F,4FAA4F;IAC5F,8FAA8F;IAC9F,0EAA0E;IAC1E,+CAA+C;IAC/C,2BAA2B;IAC3B,mBAAmB;IACnB,kCAAkC;IAClC,iCAAiC;IACjC,oCAAoC;IACpC,wBAAwB;IACxB,uBAAuB;IACvB,oBAAoB;IACpB,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,gCAAgC;IAChC,+BAA+B;IAC/B,gCAAgC;IAChC,gCAAgC;IAChC,YAAY;IACZ,6BAA6B;IAC7B,2BAA2B;IAC3B,mCAAmC;IACnC,iCAAiC;IACjC,qBAAqB;IACrB,cAAc;IACd,YAAY;IACZ,sBAAsB;IACtB,iBAAiB;IACjB,gBAAgB;IAChB,eAAe;IACf,mBAAmB;IACnB,aAAa;CACd,CAAC,CAAC"}
|
package/dist/runs.d.ts
CHANGED
|
@@ -46,9 +46,16 @@ export interface RunPublic {
|
|
|
46
46
|
created_at: string;
|
|
47
47
|
finished_at?: string | null;
|
|
48
48
|
/**
|
|
49
|
-
* Why the run failed: the
|
|
50
|
-
* `
|
|
51
|
-
*
|
|
49
|
+
* Why the run failed: the stored error report as the platform serves it, the runner's STRICT
|
|
50
|
+
* projection, typed whole (see `RunErrorReport`). The runner writes it for a run that fails
|
|
51
|
+
* while it runs; the platform writes one in the runner's shape for a run it ends or settles
|
|
52
|
+
* itself — a workflow task that kept failing (`WorkflowTaskKeptFailingError`), a timeout
|
|
53
|
+
* (`RunTimedOutError`), a workflow that vanished (`RunWorkflowNotFoundError`). A cancelled,
|
|
54
|
+
* terminated or timed-out run holds a report when a completion callback carried one, and a
|
|
55
|
+
* timed-out run otherwise the platform's timeout report. `null` on a completed run and on a
|
|
56
|
+
* run that ended without a report — one whose start failed, a blocking `execute` run, one
|
|
57
|
+
* cancelled, terminated or given its status by hand with no completion callback carrying a
|
|
58
|
+
* report, one that ended before the platform wrote reports of its own; absent on a server that
|
|
52
59
|
* does not serve it. The results read of the same run carries the same object in its `409`,
|
|
53
60
|
* which is where `getRunResult`'s failed arm and `RunFailedError` take it from.
|
|
54
61
|
*/
|
|
@@ -70,15 +77,96 @@ export interface RunPublic {
|
|
|
70
77
|
[extension: string]: unknown;
|
|
71
78
|
}
|
|
72
79
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
80
|
+
* Why a status read is `degraded` — `RunDegradation.reason`:
|
|
81
|
+
*
|
|
82
|
+
* - `status_unavailable`: the platform could not reach the workflow engine, so `status` is the
|
|
83
|
+
* last one recorded. It says nothing about the run itself, which may be fine; read again after
|
|
84
|
+
* `retry_after_seconds`.
|
|
85
|
+
* - `workflow_task_failing`: `status` is live, and the run is not making progress. The workflow
|
|
86
|
+
* task that drives it has failed `failed_attempts` times in a row since `failing_since`; the
|
|
87
|
+
* workflow engine keeps retrying it, and if it is still failing at `ends_at` the platform ends
|
|
88
|
+
* the run `FAILED` with a `WorkflowTaskKeptFailingError` report.
|
|
89
|
+
*
|
|
90
|
+
* Read open, as `RunDegradation.reason` types it: a reason a later platform adds arrives as its
|
|
91
|
+
* raw string rather than failing the read, and a consumer that does not know it should not tell
|
|
92
|
+
* the person the run is fine.
|
|
93
|
+
*/
|
|
94
|
+
export type DegradationReason = "status_unavailable" | "workflow_task_failing";
|
|
95
|
+
/**
|
|
96
|
+
* What a `degraded` status read means for this run — `RunRead.degradation`.
|
|
97
|
+
*
|
|
98
|
+
* Branch on `reason` (see `DegradationReason`), never on the wording of `message`. Each field is
|
|
99
|
+
* checked by the read: a known field whose value does not have its type is absent, and members
|
|
100
|
+
* this SDK does not name are relayed as sent.
|
|
101
|
+
*/
|
|
102
|
+
export interface RunDegradation {
|
|
103
|
+
/** Why the read is degraded: a `DegradationReason`, or the raw string of one this SDK does not know. */
|
|
104
|
+
reason: DegradationReason | (string & {});
|
|
105
|
+
/**
|
|
106
|
+
* What the platform says about it, in a sentence. For `workflow_task_failing` it says how many
|
|
107
|
+
* attempts have failed in a row, that the run is not making progress and when the platform will
|
|
108
|
+
* end it. It does not quote the worker's own failure text, which only a platform run locally
|
|
109
|
+
* with `ERROR_DISCLOSURE=verbose` adds. `failed_attempts` and `ends_at` carry the same facts as
|
|
110
|
+
* fields.
|
|
111
|
+
*/
|
|
112
|
+
message?: string | null;
|
|
113
|
+
/** How many times in a row the run's workflow task has failed; `null` for `status_unavailable`. */
|
|
114
|
+
failed_attempts?: number | null;
|
|
115
|
+
/**
|
|
116
|
+
* ISO-8601 instant of the first failure in the current run of failures. `null` when the
|
|
117
|
+
* platform could not find the recorded failure in the workflow's history, and always for
|
|
118
|
+
* `status_unavailable`.
|
|
119
|
+
*/
|
|
120
|
+
failing_since?: string | null;
|
|
121
|
+
/**
|
|
122
|
+
* ISO-8601 instant at which the platform ends the run `FAILED` if its workflow task is still
|
|
123
|
+
* failing. `null` when the platform could not find the recorded failure: it then does not end
|
|
124
|
+
* the run itself, and the run's own time limit ends it `TIMED_OUT`. Always `null` for
|
|
125
|
+
* `status_unavailable`.
|
|
126
|
+
*/
|
|
127
|
+
ends_at?: string | null;
|
|
128
|
+
/** Members a later platform adds. */
|
|
129
|
+
[extension: string]: unknown;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* A run read through the self-healing status path (`RunPublic` + `degraded`, `degradation`,
|
|
133
|
+
* `request_id` and the `Retry-After` hint).
|
|
134
|
+
*
|
|
135
|
+
* `degraded` is true when the read is not a plain fresh reading of a healthy run, and
|
|
136
|
+
* `degradation.reason` says which of two things holds (see `DegradationReason`): the platform
|
|
137
|
+
* could not reach the workflow engine and `status` is the last one recorded
|
|
138
|
+
* (`status_unavailable`, paired with `retry_after_seconds`), or `status` is live and the run is
|
|
139
|
+
* stuck, its workflow task failing until the platform ends it (`workflow_task_failing`). So
|
|
140
|
+
* `degraded` alone no longer means the run is fine. A platform older than the degradation sends
|
|
141
|
+
* `degraded` with no `degradation`; read that as `status_unavailable`, the only meaning `degraded`
|
|
142
|
+
* had then.
|
|
77
143
|
*/
|
|
78
144
|
export interface RunRead extends RunPublic {
|
|
79
145
|
degraded: boolean;
|
|
146
|
+
/**
|
|
147
|
+
* What `degraded` means for this run; `null` whenever `degraded` is false, and absent on a
|
|
148
|
+
* platform that predates it. Checked field by field, and `null` when it is not an object or its
|
|
149
|
+
* `reason` is not a string (see `RunDegradation`).
|
|
150
|
+
*/
|
|
151
|
+
degradation?: RunDegradation | null;
|
|
152
|
+
/**
|
|
153
|
+
* The id of the request that started the run — the one to quote to support. `null` for a run
|
|
154
|
+
* saved before the platform recorded it; absent on a server that does not serve it.
|
|
155
|
+
*/
|
|
156
|
+
request_id?: string | null;
|
|
157
|
+
/** The `Retry-After` header's delay, in seconds; set when the platform sent one. */
|
|
80
158
|
retry_after_seconds?: number | null;
|
|
81
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* A status read's `degradation`, checked field by field so that it never fails the poll carrying
|
|
162
|
+
* it: a value that is not an object, or whose `reason` is not a string, reads as `null`, since a
|
|
163
|
+
* degradation without a reason cannot be branched on; `message`, `failing_since` and `ends_at` are
|
|
164
|
+
* kept when they are strings and `failed_attempts` when it is an integer, `null` kept for each;
|
|
165
|
+
* members this SDK does not name are relayed as sent.
|
|
166
|
+
*
|
|
167
|
+
* Internal: `getRunStatus` applies it.
|
|
168
|
+
*/
|
|
169
|
+
export declare function readRunDegradation(value: unknown): RunDegradation | null;
|
|
82
170
|
/**
|
|
83
171
|
* One inference call's token usage — the client-facing wire record.
|
|
84
172
|
*
|