@pipelex/sdk 0.16.0 → 0.18.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 +4 -2
- package/dist/artifacts.d.ts +284 -0
- package/dist/artifacts.js +841 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/client.d.ts +82 -25
- package/dist/client.js +99 -22
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +69 -3
- package/dist/errors.js +80 -3
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/models.d.ts +49 -1
- package/dist/prepare-inputs.d.ts +72 -43
- package/dist/prepare-inputs.js +218 -81
- package/dist/prepare-inputs.js.map +1 -1
- package/dist/runs.d.ts +36 -5
- package/dist/runs.js.map +1 -1
- package/dist/usage.d.ts +87 -0
- package/dist/usage.js +121 -0
- package/dist/usage.js.map +1 -0
- package/package.json +4 -3
package/dist/prepare-inputs.js
CHANGED
|
@@ -1,24 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `prepareInputs` — signature-driven input preparation. Resolves the target
|
|
3
|
-
* pipe's declared inputs
|
|
4
|
-
* caller's inputs top-down against it, uploads the
|
|
5
|
-
* returns rewritten inputs (canonical content carrying
|
|
6
|
-
* `url`) plus one upload record per prepared asset.
|
|
3
|
+
* pipe's declared inputs from the **input-form descriptor** on the validate
|
|
4
|
+
* report, interprets the caller's inputs top-down against it, uploads the
|
|
5
|
+
* file-bearing values, and returns rewritten inputs (canonical content carrying
|
|
6
|
+
* `pipelex-storage://` in `url`) plus one upload record per prepared asset.
|
|
7
|
+
*
|
|
8
|
+
* The method is named the same three ways every other method-taking operation
|
|
9
|
+
* takes it — inline `files`, a `method_ref` address, or a stored `method_id` —
|
|
10
|
+
* exactly one per call. All three are pass-throughs to `POST /v1/validate`,
|
|
11
|
+
* which resolves an address on the runner and an id on the platform, so nothing
|
|
12
|
+
* is expanded client-side.
|
|
7
13
|
*
|
|
8
14
|
* Per input, the caller may submit EITHER the **compact** value (a bare source /
|
|
9
|
-
* canonical `{url}` content) OR the explicit `{ concept, content }` envelope
|
|
10
|
-
* `
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* `
|
|
15
|
+
* canonical `{url}` content) OR the explicit `{ concept, content }` envelope —
|
|
16
|
+
* its `content` is interpreted exactly as the compact value would be, and the
|
|
17
|
+
* envelope is preserved on output (the `concept` annotation rides through; the
|
|
18
|
+
* runtime accepts it — see `pipelex`'s `input_shaper.py` `_is_explicit` /
|
|
19
|
+
* `input_normalizer.py`).
|
|
14
20
|
*
|
|
15
|
-
* The
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
21
|
+
* **The descriptor is the classifier, never the value's shape.** `input_form`
|
|
22
|
+
* (the MTHDS standard's artifact, opted into with `views: ["input_form"]`)
|
|
23
|
+
* states the kind at every depth — `document` / `image` mark a file position,
|
|
24
|
+
* `object` recurses through `fields`, `list` through `item`, everything else
|
|
25
|
+
* passes through. That is what makes an OPTIONAL nested file field prepare like
|
|
26
|
+
* a required one, and a `text` field merely *named* `url` stay untouched: both
|
|
27
|
+
* were misread while the signature came from the rendered inputs template, whose
|
|
28
|
+
* file signal was a `url`-bearing dict. See `docs/input-preparation.md` and the
|
|
29
|
+
* shared behavior matrix (`wip/upload/behavior-matrix.md`).
|
|
22
30
|
*/
|
|
23
31
|
import { InputPreparationError } from "./errors.js";
|
|
24
32
|
import { uploadFile } from "./upload.js";
|
|
@@ -28,16 +36,26 @@ const HTTP_URL_RE = /^https?:\/\//i;
|
|
|
28
36
|
function isPlainObject(value) {
|
|
29
37
|
return Object.prototype.toString.call(value) === "[object Object]";
|
|
30
38
|
}
|
|
31
|
-
/** A
|
|
39
|
+
/** A trimmed non-empty string, or `undefined` — the "empty is absent" rule. */
|
|
40
|
+
function nonEmptyString(value) {
|
|
41
|
+
if (typeof value !== "string")
|
|
42
|
+
return undefined;
|
|
43
|
+
const trimmed = value.trim();
|
|
44
|
+
return trimmed.length > 0 ? trimmed : undefined;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* A canonical Image/Document content is a plain object carrying a `url` key.
|
|
48
|
+
* A VALUE-shape helper only: it is consulted at a position the descriptor has
|
|
49
|
+
* already declared a file, never as the signal that one is there.
|
|
50
|
+
*/
|
|
32
51
|
function isFileContent(node) {
|
|
33
52
|
return isPlainObject(node) && "url" in node;
|
|
34
53
|
}
|
|
35
54
|
/**
|
|
36
|
-
* The explicit
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* both fields is not misread as an envelope.
|
|
55
|
+
* The explicit envelope: a plain object whose keys are EXACTLY `concept` and
|
|
56
|
+
* `content`. Matches the runtime's `_is_explicit` (`pipelex`'s
|
|
57
|
+
* `input_shaper.py`): exact keys, not a superset, so a structured-content input
|
|
58
|
+
* that merely happens to carry both fields is not misread as an envelope.
|
|
41
59
|
*/
|
|
42
60
|
function isExplicitEnvelope(value) {
|
|
43
61
|
if (!isPlainObject(value))
|
|
@@ -133,46 +151,166 @@ async function resolveFilePosition(ctx, callerValue) {
|
|
|
133
151
|
const resolved = await resolveSource(ctx, callerValue);
|
|
134
152
|
return { url: resolved };
|
|
135
153
|
}
|
|
136
|
-
/**
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
154
|
+
/**
|
|
155
|
+
* Descriptor-guided walk, discriminated on the node's `kind`:
|
|
156
|
+
*
|
|
157
|
+
* - `document` / `image` — a file position, whatever the value's shape;
|
|
158
|
+
* - `object` — walk the declared `fields` by name; keys the descriptor does not
|
|
159
|
+
* name are copied through untouched;
|
|
160
|
+
* - `list` — walk `item` against each element;
|
|
161
|
+
* - every other kind (`text`, `prose`, `date`, `number`, `boolean`, `enum`,
|
|
162
|
+
* `unknown`) — pass through at any depth. `unknown` is the standard's escape
|
|
163
|
+
* hatch for a `Dynamic` / `Composite` input, and it is NOT interpreted: the
|
|
164
|
+
* signature declares no file there, and uploading by value shape is the defect
|
|
165
|
+
* this walk removes. A caller with such an input uploads with `uploadFile`
|
|
166
|
+
* first and passes the storage URI.
|
|
167
|
+
*
|
|
168
|
+
* A caller value whose shape disagrees with the node (a scalar at an `object`, a
|
|
169
|
+
* non-array at a `list`) passes through for the run to reject — preparation never
|
|
170
|
+
* second-guesses the signature.
|
|
171
|
+
*/
|
|
172
|
+
async function resolveNode(ctx, node, callerValue) {
|
|
173
|
+
switch (node.kind) {
|
|
174
|
+
case "document":
|
|
175
|
+
case "image":
|
|
176
|
+
return resolveFilePosition(ctx, callerValue);
|
|
177
|
+
case "object": {
|
|
178
|
+
if (!isPlainObject(callerValue))
|
|
179
|
+
return callerValue;
|
|
180
|
+
const result = { ...callerValue };
|
|
181
|
+
for (const field of node.fields) {
|
|
182
|
+
if (Object.hasOwn(callerValue, field.name)) {
|
|
183
|
+
result[field.name] = await resolveNode(ctx, field, callerValue[field.name]);
|
|
184
|
+
}
|
|
153
185
|
}
|
|
186
|
+
return result;
|
|
187
|
+
}
|
|
188
|
+
case "list": {
|
|
189
|
+
if (!Array.isArray(callerValue))
|
|
190
|
+
return callerValue;
|
|
191
|
+
return Promise.all(callerValue.map((element) => resolveNode(ctx, node.item, element)));
|
|
154
192
|
}
|
|
155
|
-
|
|
193
|
+
default:
|
|
194
|
+
return callerValue;
|
|
156
195
|
}
|
|
157
|
-
return callerValue; // scalar (text/number/…) or shape mismatch — pass through
|
|
158
196
|
}
|
|
159
197
|
/**
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
198
|
+
* Normalize and check the three selectors. Empty is absent (`files: []`,
|
|
199
|
+
* `method_ref: ""`, `method_id: " "`), mirroring the run options' rule and the
|
|
200
|
+
* Python `CrateRequestBase` normalisers, and exactly one must remain — the check
|
|
201
|
+
* lives here because this helper is the one that composes the `validate` call.
|
|
202
|
+
* The illegal shapes are compile errors for typed callers; this backs them up for
|
|
203
|
+
* untyped (JS) ones with a typed `InputPreparationError`.
|
|
165
204
|
*/
|
|
166
|
-
function
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
205
|
+
function resolveSelector(request) {
|
|
206
|
+
const raw = request;
|
|
207
|
+
const files = Array.isArray(raw["files"]) && raw["files"].length > 0
|
|
208
|
+
? raw["files"]
|
|
209
|
+
: undefined;
|
|
210
|
+
const methodRef = nonEmptyString(raw["method_ref"]);
|
|
211
|
+
const methodId = nonEmptyString(raw["method_id"]);
|
|
212
|
+
const given = [];
|
|
213
|
+
if (files !== undefined)
|
|
214
|
+
given.push("`files`");
|
|
215
|
+
if (methodRef !== undefined)
|
|
216
|
+
given.push("`method_ref`");
|
|
217
|
+
if (methodId !== undefined)
|
|
218
|
+
given.push("`method_id`");
|
|
219
|
+
if (given.length === 0) {
|
|
220
|
+
throw new InputPreparationError("Cannot prepare inputs: no method selector. Supply exactly one of `files` (an inline MTHDS " +
|
|
221
|
+
"closure), `method_ref` (a published method's address) or `method_id` (a stored method's " +
|
|
222
|
+
"catalog id).");
|
|
170
223
|
}
|
|
171
|
-
if (
|
|
172
|
-
throw new InputPreparationError(
|
|
173
|
-
"
|
|
224
|
+
if (given.length > 1) {
|
|
225
|
+
throw new InputPreparationError(`Cannot prepare inputs: ${given.join(" and ")} were both given. Supply exactly one method ` +
|
|
226
|
+
"selector — `files`, `method_ref` or `method_id`.");
|
|
174
227
|
}
|
|
175
|
-
|
|
228
|
+
if (files !== undefined)
|
|
229
|
+
return { files };
|
|
230
|
+
if (methodRef !== undefined)
|
|
231
|
+
return { method_ref: methodRef };
|
|
232
|
+
return { method_id: methodId };
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Ask `validate` for the signature, whatever the selector, and hand back the
|
|
236
|
+
* valid report.
|
|
237
|
+
*
|
|
238
|
+
* `allowSignatures: true` on purpose: preparation needs a pipe's DECLARED inputs,
|
|
239
|
+
* and a bundle mid-authoring with an unresolved signature elsewhere must not be
|
|
240
|
+
* refused inputs for a pipe whose inputs are declared. Whether the bundle runs is
|
|
241
|
+
* the run's verdict, not preparation's. The `is_valid: false` arm still means the
|
|
242
|
+
* closure does not load, which is a preparation failure.
|
|
243
|
+
*/
|
|
244
|
+
async function fetchSignature(client, selector) {
|
|
245
|
+
let result;
|
|
246
|
+
if ("files" in selector) {
|
|
247
|
+
const contents = selector.files.map((file) => file.content);
|
|
248
|
+
// `validateFiles`' rule: label every content once any file names a source, so
|
|
249
|
+
// the server never sees a length-mismatched `mthds_sources` array.
|
|
250
|
+
const hasAnySource = selector.files.some((file) => file.source !== undefined);
|
|
251
|
+
const sources = hasAnySource
|
|
252
|
+
? selector.files.map((file, index) => file.source ?? `inline://file-${index + 1}.mthds`)
|
|
253
|
+
: undefined;
|
|
254
|
+
result = await client.validate(contents, true, sources, undefined, ["input_form"]);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
result = await client.validate(selector, true, undefined, undefined, ["input_form"]);
|
|
258
|
+
}
|
|
259
|
+
if (!result.is_valid) {
|
|
260
|
+
const first = result.validation_errors[0]?.message ?? result.message;
|
|
261
|
+
throw new InputPreparationError(`Cannot prepare inputs: the method signature did not resolve — ${first}`);
|
|
262
|
+
}
|
|
263
|
+
return result;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Pick the pipe whose descriptor guides the walk, in the order `docs/input-preparation.md`
|
|
267
|
+
* documents: an explicit qualified `pipe_ref`, then the report's typed resolved
|
|
268
|
+
* default, then the bundle's declared `main_pipe`, then the single pipe — else an
|
|
269
|
+
* error naming the candidates.
|
|
270
|
+
*/
|
|
271
|
+
function selectPipeRef(report, inputForm, requested) {
|
|
272
|
+
const refs = Object.keys(inputForm);
|
|
273
|
+
const candidates = refs.length > 0 ? refs.join(", ") : "(none — the closure declares no pipes)";
|
|
274
|
+
if (requested !== undefined) {
|
|
275
|
+
if (!requested.includes(".")) {
|
|
276
|
+
throw new InputPreparationError(`Cannot prepare inputs: \`pipe_ref\` must be qualified (\`domain.pipe_code\`), got the bare ` +
|
|
277
|
+
`"${requested}". The method declares: ${candidates}.`);
|
|
278
|
+
}
|
|
279
|
+
if (!(requested in inputForm)) {
|
|
280
|
+
throw new InputPreparationError(`Cannot prepare inputs: the method declares no pipe "${requested}". It declares: ${candidates}.`);
|
|
281
|
+
}
|
|
282
|
+
return requested;
|
|
283
|
+
}
|
|
284
|
+
// The typed resolved default, when the runner serves it (manifest-aware for a
|
|
285
|
+
// `method_ref` package, which is why it outranks the blueprint read below).
|
|
286
|
+
const typedDefault = nonEmptyString(report.default_pipe_ref);
|
|
287
|
+
if (typedDefault !== undefined && typedDefault in inputForm)
|
|
288
|
+
return typedDefault;
|
|
289
|
+
// `bundle_blueprint` is opaque transport in this SDK on purpose, so read it
|
|
290
|
+
// defensively and fall through rather than trust it.
|
|
291
|
+
const blueprintDefault = readBlueprintMainPipeRef(report.bundle_blueprint);
|
|
292
|
+
if (blueprintDefault !== undefined && blueprintDefault in inputForm)
|
|
293
|
+
return blueprintDefault;
|
|
294
|
+
if (refs.length === 1)
|
|
295
|
+
return refs[0];
|
|
296
|
+
throw new InputPreparationError(`Cannot prepare inputs: the method declares no single default pipe, so \`pipe_ref\` is required. ` +
|
|
297
|
+
`It declares: ${candidates}.`);
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* The bundle blueprint's declared `main_pipe`, qualified by its `domain` when it
|
|
301
|
+
* is authored bare. Every read is defensive: the blueprint is typed
|
|
302
|
+
* `Record<string, unknown>` because its schema is the runtime's, not this SDK's.
|
|
303
|
+
*/
|
|
304
|
+
function readBlueprintMainPipeRef(blueprint) {
|
|
305
|
+
if (!isPlainObject(blueprint))
|
|
306
|
+
return undefined;
|
|
307
|
+
const mainPipe = nonEmptyString(blueprint["main_pipe"]);
|
|
308
|
+
if (mainPipe === undefined)
|
|
309
|
+
return undefined;
|
|
310
|
+
if (mainPipe.includes("."))
|
|
311
|
+
return mainPipe;
|
|
312
|
+
const domain = nonEmptyString(blueprint["domain"]);
|
|
313
|
+
return domain === undefined ? undefined : `${domain}.${mainPipe}`;
|
|
176
314
|
}
|
|
177
315
|
/**
|
|
178
316
|
* Prepare a pipe's inputs: upload local/byte/data-URL assets at the signature's
|
|
@@ -180,45 +318,44 @@ function resolveClosureFiles(request) {
|
|
|
180
318
|
* records. HTTP(S) URLs and existing `pipelex-storage://` URIs pass through
|
|
181
319
|
* unchanged. All failures are raised before any run is created.
|
|
182
320
|
*
|
|
183
|
-
* The
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
321
|
+
* The signature comes from one `POST /v1/validate` with `views: ["input_form"]`,
|
|
322
|
+
* whatever the selector — inline `files`, a `method_ref` the runner resolves, or
|
|
323
|
+
* a `method_id` the platform resolves. A closure that does not load, an unknown
|
|
324
|
+
* `pipe_ref`, no default pipe, or a report with no descriptor throw
|
|
325
|
+
* {@link InputPreparationError}; a no-verdict condition from the route (a
|
|
326
|
+
* malformed selector, an unknown or foreign-org id, no package at the address,
|
|
327
|
+
* auth, a server fault) surfaces as `ApiResponseError`, unchanged.
|
|
187
328
|
*/
|
|
188
329
|
export async function prepareInputs(client, request) {
|
|
189
|
-
const
|
|
190
|
-
const report = await client
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
throw new InputPreparationError(`Cannot prepare inputs: the method signature did not resolve — ${first}`);
|
|
199
|
-
}
|
|
200
|
-
// We requested `format: "json"`, so the valid arm carries the envelope in `inputs`.
|
|
201
|
-
if (report.format !== "json") {
|
|
202
|
-
throw new InputPreparationError(`Cannot prepare inputs: expected a JSON inputs template, got "${report.format}".`);
|
|
330
|
+
const selector = resolveSelector(request);
|
|
331
|
+
const report = await fetchSignature(client, selector);
|
|
332
|
+
const inputForm = report.input_form;
|
|
333
|
+
if (inputForm === undefined) {
|
|
334
|
+
// Never a silent degrade to "no uploads": without the descriptor there is no
|
|
335
|
+
// signature to prepare against.
|
|
336
|
+
throw new InputPreparationError("Cannot prepare inputs: the validate report carries no `input_form` descriptor — the signature " +
|
|
337
|
+
'preparation reads. The descriptor rides `views: ["input_form"]` on pipelex-api >= 0.18.0; ' +
|
|
338
|
+
"point the client at a runner that serves it.");
|
|
203
339
|
}
|
|
204
|
-
const
|
|
340
|
+
const pipeRef = selectPipeRef(report, inputForm, nonEmptyString(request.pipe_ref));
|
|
341
|
+
const descriptor = inputForm[pipeRef];
|
|
342
|
+
const declared = new Map(descriptor.fields.map((field) => [field.name, field]));
|
|
205
343
|
const ctx = { client, uploads: [], dedup: new Map() };
|
|
206
344
|
const rewritten = { ...request.inputs };
|
|
207
345
|
for (const [name, callerValue] of Object.entries(request.inputs)) {
|
|
208
|
-
const
|
|
209
|
-
if (
|
|
210
|
-
// Not a declared input
|
|
211
|
-
continue;
|
|
346
|
+
const field = declared.get(name);
|
|
347
|
+
if (field === undefined) {
|
|
348
|
+
continue; // Not a declared input — pass through untouched, as today.
|
|
212
349
|
}
|
|
213
350
|
if (isExplicitEnvelope(callerValue)) {
|
|
214
|
-
// The caller filled the explicit `{ concept, content }`
|
|
215
|
-
// inner content against the
|
|
351
|
+
// The caller filled the explicit `{ concept, content }` envelope: walk the
|
|
352
|
+
// inner content against the same node, then re-wrap so the concept
|
|
216
353
|
// annotation rides through to the run (the runtime accepts the envelope).
|
|
217
|
-
const walked = await resolveNode(ctx,
|
|
354
|
+
const walked = await resolveNode(ctx, field, callerValue.content);
|
|
218
355
|
rewritten[name] = { ...callerValue, content: walked };
|
|
219
356
|
}
|
|
220
357
|
else {
|
|
221
|
-
rewritten[name] = await resolveNode(ctx,
|
|
358
|
+
rewritten[name] = await resolveNode(ctx, field, callerValue);
|
|
222
359
|
}
|
|
223
360
|
}
|
|
224
361
|
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/runs.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DictPipeOutput } from "./models.js";
|
|
1
|
+
import type { DictPipeOutput, DictWorkingMemory } from "./models.js";
|
|
2
2
|
/**
|
|
3
3
|
* Run-lifecycle types + polling for the hosted polling surface (`/v1/runs/*`).
|
|
4
4
|
*
|
|
@@ -131,12 +131,43 @@ export interface RunResults {
|
|
|
131
131
|
* output to an object) and may be a valid falsy value (empty array, `0`); it is never absent.
|
|
132
132
|
*/
|
|
133
133
|
main_stuff: unknown;
|
|
134
|
-
/**
|
|
134
|
+
/**
|
|
135
|
+
* The run's working memory — every named stuff of the run (`{ root, aliases }`), the inputs it
|
|
136
|
+
* was given and the intermediates it produced as well as the main output, each stuff carried as
|
|
137
|
+
* its concept ref and its content. It reads the same on both paths: the hosted path relays the
|
|
138
|
+
* `working_memory.json` artifact verbatim, and on the blocking path the SDK lifts it off
|
|
139
|
+
* `pipe_output`. `main_stuff` is the content of one of its entries, already resolved. Null on the
|
|
140
|
+
* hosted path when the artifact was not yet written. `DictWorkingMemory` mirrors the MTHDS
|
|
141
|
+
* standard's `DictWorkingMemory` field for field. A run delivered by a runtime older than
|
|
142
|
+
* pipelex 0.60.0 carries each `concept` as the concept object instead, and a stored artifact is
|
|
143
|
+
* relayed as written, never migrated: the type stays the standard's `string`, so read `concept`
|
|
144
|
+
* as `unknown` when a run may predate that release. See `docs/run-results.md`.
|
|
145
|
+
*/
|
|
146
|
+
working_memory?: DictWorkingMemory | null;
|
|
147
|
+
/**
|
|
148
|
+
* The executed graph — the same document a local run writes as `graphspec.json`: `meta.mode`
|
|
149
|
+
* `"live"`, one node per pipe with its status, its timings and its own usage. It reaches the client on both
|
|
150
|
+
* paths: the hosted path relays the `graphspec.json` artifact verbatim, and on the blocking path
|
|
151
|
+
* the SDK lifts it off `pipe_output`. Null when the runner assembled no graph (see
|
|
152
|
+
* `graph_assembly_error`) or, on the hosted path, when the artifact was not yet written. Typed
|
|
153
|
+
* `unknown` on purpose — the canonical declaration is `GraphSpec` in `@pipelex/mthds-ui`, which
|
|
154
|
+
* carries a React peer dependency this server-side SDK does not take. See `docs/run-results.md`.
|
|
155
|
+
*/
|
|
135
156
|
graph_spec?: unknown;
|
|
136
157
|
/**
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
158
|
+
* Non-null when the runner's graph assembly failed for the run — the graph's twin of
|
|
159
|
+
* `usage_assembly_error`, and the only thing that separates "the graph broke" from "this run
|
|
160
|
+
* produced no graph". Lifted off `pipe_output` on the blocking path; the hosted results body
|
|
161
|
+
* carries nothing of the kind yet, so on that path the field is absent until the platform writes
|
|
162
|
+
* and relays it.
|
|
163
|
+
*/
|
|
164
|
+
graph_assembly_error?: string | null;
|
|
165
|
+
/**
|
|
166
|
+
* Bare runner's native pipe output, blocking-execute path only; absent on the hosted path, whose
|
|
167
|
+
* results body carries no such key, so it reads `undefined` there. Supplementary: `main_stuff`,
|
|
168
|
+
* `working_memory`, the graph pair and the usage pair are all lifted out of it onto their own
|
|
169
|
+
* fields, which read the same on both paths. Read `working_memory` for the run's named stuffs;
|
|
170
|
+
* `pipe_output` is the runner's output as it arrived, extension fields included.
|
|
140
171
|
*/
|
|
141
172
|
pipe_output?: DictPipeOutput | null;
|
|
142
173
|
/**
|
package/dist/runs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAwC9D,MAAM,qBAAqB,GAA2B,IAAI,GAAG,CAAY;IACvE,WAAW;IACX,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,WAAW;CACZ,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,OAAO,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,OAAO,MAAM,KAAK,WAAW,CAAC;AAChC,CAAC;
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"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"}
|
package/dist/usage.d.ts
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { RunResults } from "./runs.js";
|
|
2
|
+
/**
|
|
3
|
+
* `summarizeUsage` — one run-level reading of a run's usage pair.
|
|
4
|
+
*
|
|
5
|
+
* A completed run reports usage as `RunResults.tokens_usages` (one record per inference call)
|
|
6
|
+
* beside `RunResults.usage_assembly_error`, and the wire carries no run-level aggregate. This
|
|
7
|
+
* module folds the pair into a single summary under the rules `docs/run-usage.md` states, so
|
|
8
|
+
* every consumer reads the same totals instead of re-deriving them:
|
|
9
|
+
*
|
|
10
|
+
* - a `null` cost is unrated (the model has no rate table), a `0` cost is priced at zero;
|
|
11
|
+
* - `input` and `output` are the only additive token categories (`input_cached` is a subset of
|
|
12
|
+
* `input`, and summing every category double-counts);
|
|
13
|
+
* - a null list means usage is unavailable, and only `usage_assembly_error` says it broke;
|
|
14
|
+
* - an empty list is a run that did no inference, which costs `0`, not `null`.
|
|
15
|
+
*
|
|
16
|
+
* Pure: no I/O, no client, and the input is never mutated.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Which of the three readings of `tokens_usages` the summary describes:
|
|
20
|
+
* - `records` — a non-empty list: the totals are folded from it.
|
|
21
|
+
* - `no_inference` — `[]`: usage assembly ran and no inference happened, so the cost is `0`
|
|
22
|
+
* and the token totals are zero.
|
|
23
|
+
* - `unavailable` — the list is null or absent: usage assembly was off, it broke (then
|
|
24
|
+
* `assembly_error` is non-null), or on the hosted path the run was delivered before the
|
|
25
|
+
* usage artifact existed. Nothing is known, so the cost and the token totals are `null`.
|
|
26
|
+
*/
|
|
27
|
+
export type UsageSummaryState = "records" | "no_inference" | "unavailable";
|
|
28
|
+
/**
|
|
29
|
+
* The two additive token totals. Each is the sum of that category over the records that
|
|
30
|
+
* reported it, and `null` when no record reported it at all — which is different from a
|
|
31
|
+
* reported `0`.
|
|
32
|
+
*/
|
|
33
|
+
export interface UsageTokenTotals {
|
|
34
|
+
input: number | null;
|
|
35
|
+
output: number | null;
|
|
36
|
+
}
|
|
37
|
+
/** One pipe's share of a run's usage — the same fold as the run level, over its calls only. */
|
|
38
|
+
export interface PipeUsageSummary {
|
|
39
|
+
/** The pipe that made the calls; `null` groups the calls the runtime did not attribute. */
|
|
40
|
+
pipe_code: string | null;
|
|
41
|
+
/** Sum of the priced calls' costs in USD; `null` when none of this pipe's calls was priced. */
|
|
42
|
+
total_cost_usd: number | null;
|
|
43
|
+
/** True when this pipe mixes priced and unrated calls, so `total_cost_usd` is a lower bound. */
|
|
44
|
+
cost_partial: boolean;
|
|
45
|
+
tokens: UsageTokenTotals;
|
|
46
|
+
/** Number of inference calls this pipe made. */
|
|
47
|
+
calls: number;
|
|
48
|
+
}
|
|
49
|
+
/** A run's usage pair folded into one null-aware reading. */
|
|
50
|
+
export interface UsageSummary {
|
|
51
|
+
state: UsageSummaryState;
|
|
52
|
+
/**
|
|
53
|
+
* Sum of the priced calls' costs in USD. `0` for `no_inference`. `null` for `records` when no
|
|
54
|
+
* call was priced (unrated), and for `unavailable`, where nothing is known — read `state`
|
|
55
|
+
* first to tell the two apart.
|
|
56
|
+
*/
|
|
57
|
+
total_cost_usd: number | null;
|
|
58
|
+
/**
|
|
59
|
+
* True when priced and unrated calls are mixed, so `total_cost_usd` covers the priced calls
|
|
60
|
+
* only and is a lower bound. Never true outside `records`.
|
|
61
|
+
*/
|
|
62
|
+
cost_partial: boolean;
|
|
63
|
+
tokens: UsageTokenTotals;
|
|
64
|
+
/** Number of usage records summarized — one per inference call; `0` outside `records`. */
|
|
65
|
+
calls: number;
|
|
66
|
+
/**
|
|
67
|
+
* `usage_assembly_error` as relayed: non-null when the runner's usage assembly failed, which
|
|
68
|
+
* is the only thing that separates a broken assembly from an `unavailable` one that was off.
|
|
69
|
+
*/
|
|
70
|
+
assembly_error: string | null;
|
|
71
|
+
/**
|
|
72
|
+
* Per-pipe rollup, most expensive first: priced pipes by cost descending, then unrated pipes,
|
|
73
|
+
* with ties broken by call count (descending) and then by pipe code. Empty outside `records`.
|
|
74
|
+
*/
|
|
75
|
+
by_pipe: PipeUsageSummary[];
|
|
76
|
+
}
|
|
77
|
+
/** The part of `RunResults` the summary reads — a whole `RunResults` is accepted as is. */
|
|
78
|
+
export type RunUsagePair = Pick<RunResults, "tokens_usages" | "usage_assembly_error">;
|
|
79
|
+
/**
|
|
80
|
+
* Fold a run's usage pair into one summary: run totals, the call count, the assembly error and
|
|
81
|
+
* a per-pipe rollup. See `docs/run-usage.md` for the rules it applies.
|
|
82
|
+
*
|
|
83
|
+
* Pre-contract records, relayed verbatim from artifacts written before the usage contract,
|
|
84
|
+
* carry no `cost` and no `pipe_code`: they count as unrated and unattributed. The legacy
|
|
85
|
+
* `job_metadata` / `unit_costs` fields are relics and are never read.
|
|
86
|
+
*/
|
|
87
|
+
export declare function summarizeUsage(results: RunUsagePair): UsageSummary;
|