@elaraai/e3 1.0.76 → 1.0.78

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/dist/src/task.js CHANGED
@@ -3,8 +3,8 @@
3
3
  * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
4
  */
5
5
  import { Expr, variant, some, none, ArrayType, StringType, NullType, FunctionType, StructType, East, IRType, encodeEastIR, toEastTypeValue, isTypeValueEqual } from '@elaraai/east';
6
- import { TASK_KIND_PARTITION, TASK_KIND_STREAM, encodePartitionTaskMetadata, encodeStreamTaskMetadata } from '@elaraai/e3-types';
7
- import { DEFAULT_RUNNER, runnerToCommand } from './runner.js';
6
+ import { TASK_KIND_PARTITION, TASK_KIND_STREAM, encodePartitionTaskMetadata, encodeStreamTaskMetadata, mergeCommandIr, partitionProjectionShape, streamCommandIr } from '@elaraai/e3-types';
7
+ import { DEFAULT_RUNNER, runnerToCommand, runnerToVariant } from './runner.js';
8
8
  import { validateEnvironmentDecl } from './environment.js';
9
9
  /**
10
10
  * Singleton tree definition for `.tasks`.
@@ -32,18 +32,20 @@ function createTaskTree(name) {
32
32
  };
33
33
  }
34
34
  /**
35
- * Creates a function_ir dataset for a task at `.tasks.${name}.function_ir`.
35
+ * Creates a private IR dataset for a task at `.tasks.${name}.${field}`: the
36
+ * task's `function_ir`, or a stream task's `merge_ir`.
36
37
  *
37
38
  * @param name - Task name
38
39
  * @param taskTree - The task's subtree
39
- * @param ir - The compiled function IR
40
- * @returns A DatasetDef for the function IR (private, not typed)
40
+ * @param field - The dataset's name within the task's subtree
41
+ * @param eastIR - The compiled function IR
42
+ * @returns A DatasetDef for the IR (private, not typed)
41
43
  */
42
- function createFunctionIRDataset(name, taskTree, eastIR) {
44
+ function createIRDataset(name, taskTree, field, eastIR) {
43
45
  return {
44
46
  kind: 'dataset',
45
- name: 'function_ir',
46
- path: [variant('field', 'tasks'), variant('field', name), variant('field', 'function_ir')],
47
+ name: field,
48
+ path: [variant('field', 'tasks'), variant('field', name), variant('field', field)],
47
49
  type: IRType,
48
50
  // Store the full EastIR/AsyncEastIR bundle so export.ts can use encodeEastIR
49
51
  // and preserve source_map into the beast2 blob.
@@ -104,7 +106,7 @@ export function task(name, inputs, fn, config) {
104
106
  // Create the task's subtree at .tasks.${name}
105
107
  const taskTree = createTaskTree(name);
106
108
  // Create the function_ir dataset (private, holds the IR bundle)
107
- const functionIRDataset = createFunctionIRDataset(name, taskTree, eastIR);
109
+ const functionIRDataset = createIRDataset(name, taskTree, 'function_ir', eastIR);
108
110
  // The first input is the FunctionIR to execute
109
111
  const input_datasets = [
110
112
  functionIRDataset,
@@ -190,70 +192,13 @@ function collectionKeyType(name, dataset) {
190
192
  throw new Error(`partitionTask '${name}': partitioned dataset '${dataset.name}' must be a collection (Array, Set or Dict), got ${type.type}`);
191
193
  }
192
194
  }
193
- /** Extracts the shape a `by` projection reads — see {@link ProjectionShape}
194
- * — or `null` for any other (unaccepted) shape. */
195
- function projectionFieldPrefix(ir) {
196
- const param = ir.value.parameters[0]?.value.name;
197
- if (param === undefined)
198
- return null;
199
- // Chase wrappers to the expression the body evaluates to.
200
- const unwrap = (node) => {
201
- for (;;) {
202
- if (node.type === 'Block') {
203
- const statements = node.value.statements;
204
- if (statements.length === 0)
205
- return node;
206
- node = statements[statements.length - 1];
207
- }
208
- else if (node.type === 'Return') {
209
- node = node.value.value;
210
- }
211
- else if (node.type === 'As' || node.type === 'WrapRecursive' || node.type === 'UnwrapRecursive') {
212
- node = node.value.value;
213
- }
214
- else {
215
- return node;
216
- }
217
- }
218
- };
219
- const isParam = (node) => node.type === 'Variable' && node.value.name === param;
220
- const fieldOf = (node) => node.type === 'GetField' && isParam(unwrap(node.value.struct)) ? node.value.field : null;
221
- // Walks a GetField chain down to the parameter: `key.a.b` → ['a', 'b'].
222
- const pathOf = (node) => {
223
- const path = [];
224
- let cur = node;
225
- while (cur.type === 'GetField') {
226
- path.unshift(cur.value.field);
227
- cur = unwrap(cur.value.struct);
228
- }
229
- return isParam(cur) && path.length > 0 ? path : null;
230
- };
231
- const body = unwrap(ir.value.body);
232
- if (isParam(body))
233
- return { kind: 'fields', names: [] };
234
- const chain = pathOf(body);
235
- if (chain !== null) {
236
- // A one-step chain is a top-level field read — the `fields` family.
237
- return chain.length === 1 ? { kind: 'fields', names: chain } : { kind: 'path', names: chain };
238
- }
239
- if (body.type === 'Struct') {
240
- const fields = [];
241
- for (const { value } of body.value.fields) {
242
- const f = fieldOf(unwrap(value));
243
- if (f === null)
244
- return null;
245
- fields.push(f);
246
- }
247
- return { kind: 'fields', names: fields };
248
- }
249
- return null;
250
- }
251
195
  /**
252
196
  * Defines a partitioned task: e3 carves the huge partitioned input(s) into
253
197
  * key-range slices, runs `fn` once per partition as an ordinary
254
198
  * content-addressed execution (parallel, memoized per partition), and
255
- * assembles the output — by splicing shards in partition order, or by
256
- * folding partials pairwise when `combine` is given.
199
+ * assembles the output — by splicing shards in partition order, by merging
200
+ * keyed partials on the task's runner when `merge` is given, or by folding
201
+ * partials pairwise when `combine` is given.
257
202
  *
258
203
  * `fn` always returns the output type: without `combine` each execution
259
204
  * returns its *shard* of the output (Array shards concatenate freely;
@@ -283,8 +228,9 @@ function projectionFieldPrefix(ir) {
283
228
  * mix collection kinds (or include Arrays) under co-partitioning, key
284
229
  * types cannot align, `by` (explicit or the implicit alignment under
285
230
  * co-partitioning) does not read a leading prefix of every partitioned
286
- * dataset's key, or the output is not a collection in splice mode (no
287
- * `combine`).
231
+ * dataset's key, the output is not a collection in splice mode (no
232
+ * `combine`), or `merge` is given alongside `combine`, on an Array output,
233
+ * in the wrong form for the output's kind, or with the `custom` runtime.
288
234
  *
289
235
  * @example
290
236
  * ```ts
@@ -349,7 +295,7 @@ export function partitionTask(name, spec, fn) {
349
295
  if (spec.by !== undefined) {
350
296
  const byFn = East.function([byParamType], undefined, spec.by);
351
297
  const bundle = byFn.toIR();
352
- const shape = projectionFieldPrefix(bundle.ir);
298
+ const shape = partitionProjectionShape(bundle.ir);
353
299
  if (shape === null) {
354
300
  throw new Error(`partitionTask '${name}': \`by\` must project a leading prefix of the partition key — ` +
355
301
  `accepted shapes: the key itself, a leading field (\`key.f\`), a nested leading-field ` +
@@ -434,8 +380,8 @@ export function partitionTask(name, spec, fn) {
434
380
  // input first carves into two or more partitions.
435
381
  if (spec.combine === undefined && output.type !== 'Array' && output.type !== 'Set' && output.type !== 'Dict') {
436
382
  throw new Error(`partitionTask '${name}': without \`combine\`, each partition returns a shard of the output and the shards ` +
437
- `splice in partition order — the output must be a collection (Array, Set or Dict), got ${output.type}. ` +
438
- `Provide \`combine\` to fold non-collection partials.`);
383
+ `splice (or, with \`merge\`, merge) in key order — the output must be a collection (Array, Set or Dict), ` +
384
+ `got ${output.type}. Provide \`combine\` to fold non-collection partials.`);
439
385
  }
440
386
  // Reify `combine` as a free East function (Out, Out) -> Out.
441
387
  let combineIr;
@@ -443,6 +389,42 @@ export function partitionTask(name, spec, fn) {
443
389
  const combineFn = East.function([output, output], output, spec.combine);
444
390
  combineIr = encodeEastIR(combineFn.toIR());
445
391
  }
392
+ // Reify `merge` as a free East function (Key, Value, Value) -> Value for a
393
+ // Dict output, or record the Set union flag. The task's runner merges the
394
+ // partials with it through its `merge` command, whose command IR is built
395
+ // here and carried in the metadata — the orchestrator runs it as an
396
+ // ordinary execution per group of partials.
397
+ let mergeIr;
398
+ let mergeSets = false;
399
+ let mergeCommand;
400
+ if (spec.merge !== undefined) {
401
+ if (spec.combine !== undefined) {
402
+ throw new Error(`partitionTask '${name}': \`merge\` and \`combine\` are two assembly modes — give one. ` +
403
+ `\`merge\` merges keyed partials by key; \`combine\` folds whole partials.`);
404
+ }
405
+ if (spec.runner?.runtime === 'custom') {
406
+ throw new Error(`partitionTask '${name}': merge runs the fan-in on the task's runner, which must be a stock runtime ` +
407
+ `(east-node, east-py, east-c) — the custom runtime has no merge command`);
408
+ }
409
+ if (spec.merge === 'union') {
410
+ if (output.type !== 'Set') {
411
+ throw new Error(`partitionTask '${name}': \`merge: 'union'\` assembles a Set output, got ${output.type}` +
412
+ (output.type === 'Dict' ? ' — a Dict output takes a per-key merge function' : ''));
413
+ }
414
+ mergeSets = true;
415
+ }
416
+ else {
417
+ if (output.type !== 'Dict') {
418
+ throw new Error(`partitionTask '${name}': a \`merge\` FUNCTION resolves a key present in two partials, so the output must be a Dict, ` +
419
+ `got ${output.type}${output.type === 'Set' ? " — a Set output takes `merge: 'union'`" : ''}`);
420
+ }
421
+ const keyType = output.key;
422
+ const valueType = output.value;
423
+ const mergeFn = East.function([keyType, valueType, valueType], valueType, spec.merge);
424
+ mergeIr = encodeEastIR(mergeFn.toIR());
425
+ }
426
+ mergeCommand = encodeEastIR(mergeCommandIr(runnerToVariant(spec.runner ?? DEFAULT_RUNNER), mergeSets ? 'union' : 'function'));
427
+ }
446
428
  const targetPartitionBytes = spec.targetPartitionBytes ?? DEFAULT_TARGET_PARTITION_BYTES;
447
429
  if (!Number.isInteger(targetPartitionBytes) || targetPartitionBytes <= 0) {
448
430
  throw new Error(`partitionTask '${name}': targetPartitionBytes must be a positive integer, got ${spec.targetPartitionBytes}`);
@@ -453,6 +435,9 @@ export function partitionTask(name, spec, fn) {
453
435
  by: byIr !== undefined ? some(byIr) : none,
454
436
  combine: combineIr !== undefined ? some(combineIr) : none,
455
437
  targetPartitionBytes: BigInt(targetPartitionBytes),
438
+ merge: mergeIr !== undefined ? some(mergeIr) : none,
439
+ mergeSets,
440
+ mergeCommand: mergeCommand !== undefined ? some(mergeCommand) : none,
456
441
  });
457
442
  return task(name, [...partitions, ...inputs], bodyFn, {
458
443
  kind: TASK_KIND_PARTITION,
@@ -470,14 +455,17 @@ export function partitionTask(name, spec, fn) {
470
455
  *
471
456
  * `emit` is a runner-implemented function value: `emit(key, value)` for Dict
472
457
  * outputs, `emit(element)` for Array/Set outputs. The streaming writer
473
- * re-batches emissions byte-adaptively, and emission order is unconstrained:
474
- * emissions arriving in ascending (key) order stream straight to the output
475
- * file, and out-of-order emissions are sorted by the sink (bounded-memory
476
- * spill/merge, reported on stderr when it engages) before the file is
477
- * finalized — either way the stored dataset is the canonical collection, so
478
- * a re-keying producer can emit as it reads. Duplicate Set/Dict keys are a
479
- * runtime error. The body's return value is unused — the output dataset is
480
- * what `emit` wrote.
458
+ * re-batches emissions byte-adaptively and writes the output in one pass,
459
+ * with one open batch in memory whatever the output's size. An Array output
460
+ * takes its elements in emission order; a Set or Dict output must be emitted
461
+ * in ascending key order, and an out-of-order key fails the task (`beast2
462
+ * v5: Dict key emitted out of order: 1 after 2 — Set/Dict emissions must
463
+ * ascend in East order`, the same words on every runtime). A re-key whose
464
+ * output keys do not arrive in order is a `partitionTask` with `merge`.
465
+ * Duplicate Set/Dict keys are a runtime error unless `merge` folds them: a
466
+ * function for a Dict output (adjacent equal keys fold left in emission
467
+ * order), `'union'` for a Set output. The body's return value is unused —
468
+ * the output dataset is what `emit` wrote.
481
469
  *
482
470
  * With no `stream`, the task is a producer: its body loops over
483
471
  * platform-function sources (paginated APIs, database cursors) and emits.
@@ -491,12 +479,13 @@ export function partitionTask(name, spec, fn) {
491
479
  * @typeParam Inputs - Ordinary input dataset defs
492
480
  * @param name - Task name
493
481
  * @param spec - The declaration: stream input, ordinary inputs, output
494
- * collection type, runner and environment
482
+ * collection type, merge, runner and environment
495
483
  * @param fn - Implementation body; receives the stream value (when
496
484
  * declared), the inputs, then `emit`, and returns nothing
497
485
  * @returns A TaskDef with `.output` for chaining
498
- * @throws {Error} When the output is not a collection type or the runner is
499
- * the `custom` runtime.
486
+ * @throws {Error} When the output is not a collection type, the runner is
487
+ * the `custom` runtime, or `merge` is given for an Array output or in the
488
+ * wrong form for the output's kind.
500
489
  *
501
490
  * @example
502
491
  * ```ts
@@ -541,6 +530,24 @@ export function streamTask(name, spec, fn) {
541
530
  if (runner.runtime === 'custom') {
542
531
  throw new Error(`streamTask '${name}': the custom runtime cannot carry the streaming flags — use a stock runtime (east-node, east-py, east-c)`);
543
532
  }
533
+ // `merge` folds equal keys in the runner's sink: a function for a Dict
534
+ // output, reified as a free East function (Key, Value, Value) -> Value;
535
+ // `'union'` for a Set output.
536
+ let mergeMode = 'none';
537
+ let mergeIR;
538
+ if (spec.merge !== undefined) {
539
+ if (output.type === 'Dict' && typeof spec.merge === 'function') {
540
+ mergeMode = 'function';
541
+ mergeIR = East.function([output.key, output.value, output.value], output.value, spec.merge).toIR();
542
+ }
543
+ else if (output.type === 'Set' && spec.merge === 'union') {
544
+ mergeMode = 'union';
545
+ }
546
+ else {
547
+ const given = output.type === 'Array' ? '' : typeof spec.merge === 'function' ? ' with a function' : ` with '${String(spec.merge)}'`;
548
+ throw new Error(`streamTask '${name}': merge applies to Dict (a function) or Set ('union') outputs, got ${output.type}${given}`);
549
+ }
550
+ }
544
551
  const paramTypes = [
545
552
  ...(spec.stream !== undefined ? [spec.stream.type] : []),
546
553
  ...inputs.map((i) => i.type),
@@ -548,44 +555,34 @@ export function streamTask(name, spec, fn) {
548
555
  ];
549
556
  const bodyFn = East.function(paramTypes, NullType, fn);
550
557
  const eastIR = bodyFn.toIR();
558
+ // Wire inputs: the body IR, the merge IR (function mode), the stream, then
559
+ // the ordinary inputs — the layout streamCommandIr's argv reads.
551
560
  const taskTree = createTaskTree(name);
552
- const functionIRDataset = createFunctionIRDataset(name, taskTree, eastIR);
561
+ const functionIRDataset = createIRDataset(name, taskTree, 'function_ir', eastIR);
553
562
  const input_datasets = [
554
563
  functionIRDataset,
564
+ ...(mergeIR !== undefined ? [createIRDataset(name, taskTree, 'merge_ir', mergeIR)] : []),
555
565
  ...(spec.stream !== undefined ? [spec.stream] : []),
556
566
  ...inputs,
557
567
  ];
558
568
  const outputDataset = createOutputDataset(name, taskTree, output);
559
- // The command mirrors task()'s, with the streaming flags ahead of the
560
- // input list: the runner constructs the emit sink for the output kind and
561
- // feeds the flagged `-i` input (0-based; the stream is always the first
562
- // one) lazily instead of whole-decoding it.
563
- const argvPrefix = [
564
- ...runnerToCommand(runner),
565
- '--emit', emitKind,
566
- ...(spec.stream !== undefined ? ['--stream', '0'] : []),
567
- ];
568
- const commandFn = East.function([ArrayType(StringType), StringType], ArrayType(StringType), ($, input_paths, output_path) => {
569
- const command = $.let(argvPrefix, ArrayType(StringType));
570
- const i = $.let(1n);
571
- $.while(East.less(i, input_paths.size()), $ => {
572
- $(command.pushLast('-i'));
573
- $(command.pushLast(input_paths.get(i)));
574
- $.assign(i, i.add(1n));
575
- });
576
- $(command.pushLast('-o'));
577
- $(command.pushLast(output_path));
578
- $(command.pushLast(input_paths.get(0n)));
579
- $.return(command);
569
+ // The runner constructs the emit sink for the output kind, folding equal
570
+ // keys as `merge` says, and feeds the stream (always the first `-i` input)
571
+ // lazily instead of whole-decoding it.
572
+ const command = streamCommandIr(runnerToVariant(runner), {
573
+ emit: emitKind,
574
+ merge: mergeMode,
575
+ stream: spec.stream !== undefined ? 'first' : 'none',
580
576
  });
581
577
  const metadata = encodeStreamTaskMetadata({
582
578
  stream: spec.stream !== undefined,
583
579
  emit: emitKind,
580
+ merge: mergeMode,
584
581
  });
585
582
  const taskDef = {
586
583
  kind: 'task',
587
584
  name,
588
- command: commandFn.toIR(),
585
+ command,
589
586
  inputs: input_datasets,
590
587
  output: outputDataset,
591
588
  deps: collectDeps(taskTree, outputDataset, input_datasets),
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/task.ts"],"names":[],"mappings":"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"}