@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/input.js CHANGED
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025 Elara AI Pty Ltd
3
3
  * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
4
  */
5
- import { variant } from '@elaraai/east';
5
+ import { isVariant, StringType, VariantType, variant } from '@elaraai/east';
6
6
  /**
7
7
  * Singleton datatree definition for `.inputs`.
8
8
  *
@@ -14,6 +14,22 @@ export const inputsTree = {
14
14
  path: [variant('field', 'inputs')],
15
15
  deps: new Set(),
16
16
  };
17
+ /**
18
+ * Where an input's initial value comes from.
19
+ *
20
+ * @remarks
21
+ * Two cases, one shape: `value` holds the value inline (it travels in the
22
+ * package), while `file` names a beast2 file that stays where it is and is
23
+ * adopted into the object store by hash at deploy. A 2 GB delivery is therefore
24
+ * an ordinary content-addressed dataset — in the inputs hash, paged by every
25
+ * runner, carved by `partitionTask` — instead of a String input plus a
26
+ * `FileSystem.openBeast` inside a task body.
27
+ *
28
+ * @typeParam T - The East type of the input value
29
+ */
30
+ export const DatasetSourceType = (type) => VariantType({ value: type, file: StringType });
31
+ /** The tags {@link input} accepts, for the definition-time refusal. */
32
+ const SOURCE_TAGS = new Set(['value', 'file']);
17
33
  /**
18
34
  * Defines an input dataset.
19
35
  *
@@ -22,27 +38,41 @@ export const inputsTree = {
22
38
  * @typeParam T - The East type of the input value
23
39
  * @param name - Dataset name (used as path segment in the tree)
24
40
  * @param type - East type of the input value
25
- * @param defaultValue - Optional default value
41
+ * @param source - Where the initial value comes from: `variant('value', v)`
42
+ * inline, or `variant('file', path)` for a beast2 file on the deploying
43
+ * machine. Omit it for an input that is unassigned until something sets it.
26
44
  * @returns A DatasetDef that can be used in dataflows and packages
27
45
  *
46
+ * @throws {Error} When the third argument is not one of those two variants —
47
+ * the bare-value form (`input('n', StringType, 'World')`) is no longer
48
+ * accepted, because a value and a path are not distinguishable once the type is
49
+ * `StringType`.
50
+ *
28
51
  * @example
29
52
  * ```ts
30
- * import { StringType, IntegerType } from '@elaraai/east';
53
+ * import { ArrayType, DictType, FloatType, IntegerType, StringType, variant } from '@elaraai/east';
54
+ *
55
+ * // A small value, inline in the package
56
+ * const rates = input('rates', DictType(StringType, FloatType), variant('value', new Map([['AUD', 1.0]])));
31
57
  *
32
- * // Input with default
33
- * const name = input('name', StringType, 'World');
58
+ * // A large delivery, adopted by hash at deploy — the file is the value
59
+ * const table = input('table', ArrayType(RowType), variant('file', './deliveries/TABLE.beast2'));
34
60
  *
35
- * // Input without default
61
+ * // Unassigned until something sets it
36
62
  * const count = input('count', IntegerType);
37
63
  * ```
38
64
  */
39
- export function input(name, type, defaultValue) {
65
+ export function input(name, type, source) {
66
+ if (source !== undefined && !(isVariant(source) && SOURCE_TAGS.has(source.type))) {
67
+ throw new Error(`e3.input('${name}'): the third argument is a source — variant('value', v) ` +
68
+ `or variant('file', path)`);
69
+ }
40
70
  return {
41
71
  kind: 'dataset',
42
72
  name,
43
73
  path: [variant('field', 'inputs'), variant('field', name)],
44
74
  type,
45
- default: defaultValue,
75
+ source,
46
76
  writable: true,
47
77
  deps: new Set([...inputsTree.deps, inputsTree]),
48
78
  };
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/input.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClC,IAAI,EAAE,IAAI,GAAG,EAAE;CAChB,CAAC;AAGF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,KAAK,CACnB,IAAU,EACV,IAAO,EACP,YAA6B;IAE7B,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI;QACJ,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI;QACJ,OAAO,EAAE,YAAY;QACrB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KAChD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/input.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG5E;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClC,IAAI,EAAE,IAAI,GAAG,EAAE;CAChB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAqB,IAAO,EAAE,EAAE,CAC/D,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AAWjD,uEAAuE;AACvE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,KAAK,CACnB,IAAU,EACV,IAAO,EACP,MAAyB;IAEzB,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,2DAA2D;YAC5E,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI;QACJ,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI;QACJ,MAAM;QACN,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KAChD,CAAC;AACJ,CAAC"}
@@ -18,7 +18,7 @@ import * as fs from 'node:fs';
18
18
  import * as os from 'node:os';
19
19
  import * as path from 'node:path';
20
20
  import yauzl from 'yauzl';
21
- import { East, DictType, FunctionType, IntegerType, StringType, StructType, decodeBeast2For, decodeEastIR, walkIR, IMPORT_PLATFORM, } from '@elaraai/east';
21
+ import { East, DictType, FunctionType, IntegerType, StringType, StructType, decodeBeast2For, decodeEastIR, walkIR, IMPORT_PLATFORM, variant } from '@elaraai/east';
22
22
  import { DatasetRefType } from '@elaraai/e3-types';
23
23
  import { export_ } from './export.js';
24
24
  import { package_ } from './package.js';
@@ -112,7 +112,7 @@ describe('FileSystem.openBeast links on every stock runner (#660)', () => {
112
112
  });
113
113
  for (const runner of STOCK_RUNNERS) {
114
114
  it(`embeds the imported function for the ${runner.runtime} runner, its generic platform call intact`, async () => {
115
- const file = input('file', StringType, 'rows.beast2');
115
+ const file = input('file', StringType, variant('value', 'rows.beast2'));
116
116
  const use = task('sum_rows', [file], East.function([StringType], IntegerType, ($, p) => tot(p)), { runner });
117
117
  const pkg = package_('importer', '1.0.0', use);
118
118
  const zipPath = path.join(tempDir, `importer-${runner.runtime}.zip`);
@@ -123,7 +123,7 @@ describe('FileSystem.openBeast links on every stock runner (#660)', () => {
123
123
  });
124
124
  }
125
125
  it("refuses a runner whose packages do not provide the call, naming it", async () => {
126
- const file = input('file', StringType, 'rows.beast2');
126
+ const file = input('file', StringType, variant('value', 'rows.beast2'));
127
127
  const use = task('sum_rows', [file], East.function([StringType], IntegerType, ($, p) => tot(p)), {
128
128
  runner: { runtime: 'east-node', platforms: ['@elaraai/east-node-io'] },
129
129
  });
@@ -1 +1 @@
1
- {"version":3,"file":"open-beast-link.spec.js","sourceRoot":"","sources":["../../src/open-beast-link.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-beast-link.spec.js","sourceRoot":"","sources":["../../src/open-beast-link.spec.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ import type { FunctionDef, MutationDef, PackageDef, PackageItem } from './types.
25
25
  *
26
26
  * @example
27
27
  * ```ts
28
- * const input_name = e3.input('name', StringType, 'World');
28
+ * const input_name = e3.input('name', StringType, variant('value', 'World'));
29
29
  * const say_hello = e3.task('say_hello', [input_name], ...);
30
30
  *
31
31
  * // Only need to pass the final task - input_name is included automatically
@@ -21,7 +21,7 @@
21
21
  *
22
22
  * @example
23
23
  * ```ts
24
- * const input_name = e3.input('name', StringType, 'World');
24
+ * const input_name = e3.input('name', StringType, variant('value', 'World'));
25
25
  * const say_hello = e3.task('say_hello', [input_name], ...);
26
26
  *
27
27
  * // Only need to pass the final task - input_name is included automatically
@@ -49,7 +49,7 @@ export declare const tasksTree: DataTreeDef;
49
49
  *
50
50
  * @example
51
51
  * ```ts
52
- * const input_name = e3.input('name', StringType, 'World');
52
+ * const input_name = e3.input('name', StringType, variant('value', 'World'));
53
53
  *
54
54
  * const say_hello = e3.task(
55
55
  * 'say_hello',
@@ -106,6 +106,11 @@ type IntersectKeysAll<A, Rest> = Rest extends readonly [] ? A : Rest extends rea
106
106
  type ByResult<K> = Expr<any> | (K extends StructType<infer F> ? {
107
107
  [P in keyof F]?: ExprType<F[P]>;
108
108
  } : never);
109
+ /** What `merge` takes for a keyed output: a Dict output folds the values of
110
+ * equal keys with a function of the key and two values, a Set output
111
+ * collapses equal elements with the literal `'union'`, and no other output
112
+ * takes one. */
113
+ type OutputMerge<Output extends EastType> = Output extends DictType<infer K, infer V> ? ($: BlockBuilder<V>, key: ExprType<K>, a: ExprType<V>, b: ExprType<V>) => SubtypeExprOrValue<V> | void : Output extends SetType<any> ? 'union' : never;
109
114
  /**
110
115
  * The declaration half of {@link partitionTask} — everything structural about
111
116
  * the task; the body comes last as the `fn` argument.
@@ -142,6 +147,34 @@ export interface PartitionTaskSpec<Partitions extends readonly [DatasetDef, ...D
142
147
  * pairwise in a fixed tree order; when absent, each execution returns its
143
148
  * shard of the output and the shards splice in partition order. */
144
149
  readonly combine?: ($: BlockBuilder<Output>, a: ExprType<Output>, b: ExprType<Output>) => SubtypeExprOrValue<Output> | void;
150
+ /**
151
+ * Per-key resolution for keyed partials that may collide — the third
152
+ * assembly mode, alongside splice and `combine`.
153
+ *
154
+ * @remarks
155
+ * The partials are merged by the task's runner — its `merge` command, over
156
+ * sorted partials, in one pass; the orchestrator never decodes them.
157
+ * Partials whose key ranges overlap are grouped, and each group merges
158
+ * through a tree of merge executions (up to 32 partials each) folding equal
159
+ * keys in partition order; partials no other partial reaches take no merge
160
+ * at all, and the results splice. Every merge unit is an ordinary cached
161
+ * execution: a re-run with unchanged partials merges nothing again, and the
162
+ * intermediate results of the tree are stored like any other execution
163
+ * output. The merge command is built here, at export, and carried in the
164
+ * package's metadata like any other command IR.
165
+ *
166
+ * A `Dict` output takes a function of the key and two of its values, over
167
+ * the output's own key and value types; a `Set` output takes the literal
168
+ * `'union'`. The function must be associative — a key's values may fold in
169
+ * any grouping, though never out of partition order. Mutually exclusive with
170
+ * {@link combine}, which stays the mode for non-collection outputs (KPIs,
171
+ * counts) and for authors who want a whole-value fold.
172
+ *
173
+ * Needs a stock runtime: the merge units run the runner's `merge` command,
174
+ * which the `custom` runtime does not have and an older runner does not
175
+ * ship.
176
+ */
177
+ readonly merge?: OutputMerge<Output>;
145
178
  /** Target carved-slice size in wire bytes. Defaults to 256 MiB. */
146
179
  readonly targetPartitionBytes?: number;
147
180
  /** Runtime the body runs on; defaults to {@link DEFAULT_RUNNER}. */
@@ -153,8 +186,9 @@ export interface PartitionTaskSpec<Partitions extends readonly [DatasetDef, ...D
153
186
  * Defines a partitioned task: e3 carves the huge partitioned input(s) into
154
187
  * key-range slices, runs `fn` once per partition as an ordinary
155
188
  * content-addressed execution (parallel, memoized per partition), and
156
- * assembles the output — by splicing shards in partition order, or by
157
- * folding partials pairwise when `combine` is given.
189
+ * assembles the output — by splicing shards in partition order, by merging
190
+ * keyed partials on the task's runner when `merge` is given, or by folding
191
+ * partials pairwise when `combine` is given.
158
192
  *
159
193
  * `fn` always returns the output type: without `combine` each execution
160
194
  * returns its *shard* of the output (Array shards concatenate freely;
@@ -184,8 +218,9 @@ export interface PartitionTaskSpec<Partitions extends readonly [DatasetDef, ...D
184
218
  * mix collection kinds (or include Arrays) under co-partitioning, key
185
219
  * types cannot align, `by` (explicit or the implicit alignment under
186
220
  * co-partitioning) does not read a leading prefix of every partitioned
187
- * dataset's key, or the output is not a collection in splice mode (no
188
- * `combine`).
221
+ * dataset's key, the output is not a collection in splice mode (no
222
+ * `combine`), or `merge` is given alongside `combine`, on an Array output,
223
+ * in the wrong form for the output's kind, or with the `custom` runtime.
189
224
  *
190
225
  * @example
191
226
  * ```ts
@@ -216,12 +251,27 @@ export interface StreamTaskSpec<Stream extends DatasetDef | undefined, Inputs ex
216
251
  readonly stream?: Stream;
217
252
  /** Ordinary inputs, decoded whole. */
218
253
  readonly inputs?: [...Inputs];
219
- /** The output collection type. Emission order is unconstrained: ascending
220
- * Set/Dict emission streams straight to the output, and out-of-order
221
- * emission is sorted by the runner's sink (bounded-memory spill/merge)
222
- * before the file is finalized — the stored dataset is always the
223
- * canonical collection. Duplicate Set/Dict keys are a runtime error. */
254
+ /** The output collection type. An Array output stores its elements in
255
+ * emission order. A Set or Dict output must be emitted in ascending key
256
+ * order (East's total order): the runner writes it in one pass, segment by
257
+ * segment, and an out-of-order key fails the task with the same message
258
+ * on every runtime. Duplicate Set/Dict keys are a runtime error unless
259
+ * {@link merge} folds them. */
224
260
  readonly output: Output;
261
+ /**
262
+ * How the runner's sink folds emissions with equal keys that arrive
263
+ * together, instead of failing on the duplicate.
264
+ *
265
+ * @remarks
266
+ * A `Dict` output takes a function of the key and two values: adjacent
267
+ * equal keys fold left in emission order, `acc = merge(key, acc, value)`. A
268
+ * `Set` output takes the literal `'union'`: adjacent equal elements collapse
269
+ * to the first. The ascending contract stands — `merge` folds the equal keys
270
+ * of a grouped stream; keys that collide across the stream are a
271
+ * `partitionTask` with `merge`. The stored dataset is exactly the output the
272
+ * folded emissions would write. An Array output takes no `merge`.
273
+ */
274
+ readonly merge?: OutputMerge<Output>;
225
275
  /** Runtime the body runs on; defaults to {@link DEFAULT_RUNNER}. Every
226
276
  * stock runtime streams the output through `emit` and feeds the `stream`
227
277
  * input lazily (segment-fed iteration and keyed reads at O(segment)
@@ -244,14 +294,17 @@ type StreamTaskArgs<Stream extends DatasetDef | undefined, Inputs extends readon
244
294
  *
245
295
  * `emit` is a runner-implemented function value: `emit(key, value)` for Dict
246
296
  * outputs, `emit(element)` for Array/Set outputs. The streaming writer
247
- * re-batches emissions byte-adaptively, and emission order is unconstrained:
248
- * emissions arriving in ascending (key) order stream straight to the output
249
- * file, and out-of-order emissions are sorted by the sink (bounded-memory
250
- * spill/merge, reported on stderr when it engages) before the file is
251
- * finalized — either way the stored dataset is the canonical collection, so
252
- * a re-keying producer can emit as it reads. Duplicate Set/Dict keys are a
253
- * runtime error. The body's return value is unused — the output dataset is
254
- * what `emit` wrote.
297
+ * re-batches emissions byte-adaptively and writes the output in one pass,
298
+ * with one open batch in memory whatever the output's size. An Array output
299
+ * takes its elements in emission order; a Set or Dict output must be emitted
300
+ * in ascending key order, and an out-of-order key fails the task (`beast2
301
+ * v5: Dict key emitted out of order: 1 after 2 — Set/Dict emissions must
302
+ * ascend in East order`, the same words on every runtime). A re-key whose
303
+ * output keys do not arrive in order is a `partitionTask` with `merge`.
304
+ * Duplicate Set/Dict keys are a runtime error unless `merge` folds them: a
305
+ * function for a Dict output (adjacent equal keys fold left in emission
306
+ * order), `'union'` for a Set output. The body's return value is unused —
307
+ * the output dataset is what `emit` wrote.
255
308
  *
256
309
  * With no `stream`, the task is a producer: its body loops over
257
310
  * platform-function sources (paginated APIs, database cursors) and emits.
@@ -265,12 +318,13 @@ type StreamTaskArgs<Stream extends DatasetDef | undefined, Inputs extends readon
265
318
  * @typeParam Inputs - Ordinary input dataset defs
266
319
  * @param name - Task name
267
320
  * @param spec - The declaration: stream input, ordinary inputs, output
268
- * collection type, runner and environment
321
+ * collection type, merge, runner and environment
269
322
  * @param fn - Implementation body; receives the stream value (when
270
323
  * declared), the inputs, then `emit`, and returns nothing
271
324
  * @returns A TaskDef with `.output` for chaining
272
- * @throws {Error} When the output is not a collection type or the runner is
273
- * the `custom` runtime.
325
+ * @throws {Error} When the output is not a collection type, the runner is
326
+ * the `custom` runtime, or `merge` is given for an Array output or in the
327
+ * wrong form for the output's kind.
274
328
  *
275
329
  * @example
276
330
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/task.ts"],"names":[],"mappings":"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"}