@elaraai/east-node-cli 1.0.77 → 1.0.79
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 +126 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +151 -18
- package/dist/cli.js.map +1 -1
- package/dist/emit-writer.d.ts +74 -0
- package/dist/emit-writer.d.ts.map +1 -0
- package/dist/emit-writer.js +159 -0
- package/dist/emit-writer.js.map +1 -0
- package/dist/merge.d.ts +48 -0
- package/dist/merge.d.ts.map +1 -0
- package/dist/merge.js +342 -0
- package/dist/merge.js.map +1 -0
- package/dist/runner.d.ts +53 -3
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +145 -244
- package/dist/runner.js.map +1 -1
- package/dist/runner.spec.js +559 -63
- package/dist/runner.spec.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -47,6 +47,99 @@ east-node run ./process.beast2 \
|
|
|
47
47
|
east-node run ./program.beast2 -p @elaraai/east-node-std -v
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
### Streaming Outputs
|
|
51
|
+
|
|
52
|
+
A function whose trailing parameter is an emit capability writes its output
|
|
53
|
+
incrementally instead of returning it; `--stream` feeds the named inputs
|
|
54
|
+
lazily, one decoded segment at a time:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Emit a Dict (or array / set) through the trailing parameter, feeding
|
|
58
|
+
# inputs 0 and 1 lazily from indexed beast2 blobs
|
|
59
|
+
east-node run ./task.beast2 -p @elaraai/east-node-std \
|
|
60
|
+
-i rows.beast2 -i more.beast2 --stream 0 --stream 1 \
|
|
61
|
+
--emit dict -o out.beast2 -v
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Dict and Set emissions must ascend in East order. The sink writes one pass,
|
|
65
|
+
segment by segment, with one open batch in memory whatever the size of the
|
|
66
|
+
output, and a key below the previous one is an error naming both:
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
beast2 v5: Dict key emitted out of order: 1 after 2 — Set/Dict emissions must ascend in East order
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Equal keys are an error too unless the sink folds them:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Dict: fold the values of adjacent equal keys with an East function (K, V, V) -> V
|
|
76
|
+
east-node run ./task.beast2 -p @elaraai/east-node-std --emit dict --merge merge.beast2 -o out.beast2
|
|
77
|
+
|
|
78
|
+
# Set: keep the first of adjacent equal elements
|
|
79
|
+
east-node run ./task.beast2 -p @elaraai/east-node-std --emit set --union -o out.beast2
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
`--merge` takes an IR file in any format the program itself may use, compiled
|
|
83
|
+
with the run's `-p` platforms; its signature must match the emit parameter's
|
|
84
|
+
key and value types. Adjacent equal keys fold left in emission order,
|
|
85
|
+
`acc = merge(key, acc, value)`, and the output is byte-identical to what the
|
|
86
|
+
sink writes without the flag for the already-folded sequence.
|
|
87
|
+
|
|
88
|
+
### Merging blobs
|
|
89
|
+
|
|
90
|
+
`merge` combines sorted Set or Dict blobs of one type — the files `run --emit`
|
|
91
|
+
writes — into one, in a single pass over the inputs: every input is read
|
|
92
|
+
segment by segment, equal keys across inputs fold in input order (`--merge`
|
|
93
|
+
on Dict inputs, `--union` on Set inputs; without a fold an equal key is an
|
|
94
|
+
error), and the output is byte-identical to what `run --emit` writes for the
|
|
95
|
+
same entries emitted ascending. This is how e3 assembles a partitioned task's
|
|
96
|
+
keyed partials; all three runners write the same bytes.
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# Dict partials: fold the values of equal keys, in input order
|
|
100
|
+
east-node merge --merge merge.beast2 -i part-0.beast2 -i part-1.beast2 -i part-2.beast2 -o out.beast2 -v
|
|
101
|
+
|
|
102
|
+
# Set partials: the first of equal elements stands
|
|
103
|
+
east-node merge --union -i part-0.beast2 -i part-1.beast2 -o out.beast2
|
|
104
|
+
|
|
105
|
+
# Only the keys in [from, to): range.beast2 holds a Struct{from: Option<K>,
|
|
106
|
+
# to: Option<K>} over the inputs' key type, an absent bound open
|
|
107
|
+
east-node merge --merge merge.beast2 --range range.beast2 -i part-0.beast2 -i part-1.beast2 -o out.beast2
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
With `--range` every input is sought to the segment owning `from` through its
|
|
111
|
+
fences and read up to the first key at or past `to`, so a merge over one key
|
|
112
|
+
range of large partials reads that range's share of each, plus at most one
|
|
113
|
+
segment — how e3 merges a large output in parallel, one range per unit.
|
|
114
|
+
|
|
115
|
+
An input of another type than the first, an Array input, an input whose keys
|
|
116
|
+
do not ascend, a fold whose signature does not match the inputs, and bounds of
|
|
117
|
+
another type than the inputs' key are refused, naming the input. With `-v` the
|
|
118
|
+
merge prints its account:
|
|
119
|
+
|
|
120
|
+
```text
|
|
121
|
+
merge: 3 input(s), 31 entries, 13 fold(s)
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Exiting with the Parent
|
|
125
|
+
|
|
126
|
+
With `--exit-with-parent` on its command line (`run` and `merge`) the runner
|
|
127
|
+
watches its stdin from a worker thread, reading it through a socket on the
|
|
128
|
+
worker's own event loop, and kills its own process as soon as stdin ends,
|
|
129
|
+
closes or cannot be read. A parent that spawns the runner with a stdin pipe
|
|
130
|
+
it never writes to — as e3 does — takes the runner down with it when it dies,
|
|
131
|
+
even while the body is computing. The watcher never blocks in a read, so it
|
|
132
|
+
never holds up the runner's own exit. The runner opens `process.stdin` before
|
|
133
|
+
the watcher reads, so it keeps full use of its stdin over any pipe — on
|
|
134
|
+
Windows a read pending on a synchronous pipe holds the pipe's file-object
|
|
135
|
+
lock, and opening stdin after it (as the first import of `node:process` does)
|
|
136
|
+
would otherwise wait until the parent is gone. Without the flag, stdin is left
|
|
137
|
+
alone.
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
east-node run ./task.beast2 --exit-with-parent -p @elaraai/east-node-std --emit dict -o out.beast2
|
|
141
|
+
```
|
|
142
|
+
|
|
50
143
|
### Version Information
|
|
51
144
|
|
|
52
145
|
```bash
|
|
@@ -103,6 +196,37 @@ Options:
|
|
|
103
196
|
-i, --input <file> Input data file (can be repeated)
|
|
104
197
|
-o, --output <file> Output file path for result
|
|
105
198
|
-v, --verbose Enable verbose output
|
|
199
|
+
--emit <kind> Write the output incrementally from the function's
|
|
200
|
+
trailing emit parameter (array|set|dict)
|
|
201
|
+
--merge <file> With --emit dict: fold equal keys with the East function
|
|
202
|
+
(K, V, V) -> V in <file>, in emission order
|
|
203
|
+
--union With --emit set: collapse equal elements
|
|
204
|
+
--stream <index> Feed the given -i input (0-based) lazily, segment by
|
|
205
|
+
segment (can be repeated)
|
|
206
|
+
--exit-with-parent Exit as soon as stdin reaches end of file — for a parent
|
|
207
|
+
that holds a stdin pipe it never writes to
|
|
208
|
+
-h, --help Display help
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### `east-node merge`
|
|
212
|
+
|
|
213
|
+
Merge sorted Set or Dict blobs of one type into one, in a single pass.
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
east-node merge -i <file>... -o <file> [options]
|
|
217
|
+
|
|
218
|
+
Options:
|
|
219
|
+
-i, --input <file...> The input blobs (equal keys fold in this order)
|
|
220
|
+
-o, --output <file> The merged blob
|
|
221
|
+
-p, --package <package...> Platform packages the --merge function's platform calls need
|
|
222
|
+
-v, --verbose Enable verbose output
|
|
223
|
+
--merge <file> Dict inputs: fold equal keys with the East function
|
|
224
|
+
(K, V, V) -> V in <file>, in input order
|
|
225
|
+
--union Set inputs: the first of equal elements stands
|
|
226
|
+
--range <file> Merge only the keys in [from, to): a beast2 blob of
|
|
227
|
+
Struct{from: Option<K>, to: Option<K>} over the inputs'
|
|
228
|
+
key type; an absent bound is open
|
|
229
|
+
--exit-with-parent Exit as soon as stdin reaches end of file
|
|
106
230
|
-h, --help Display help
|
|
107
231
|
```
|
|
108
232
|
|
|
@@ -171,8 +295,8 @@ operation transparently decodes the whole value once. Semantics are identical
|
|
|
171
295
|
to an eager decode, so the threshold is a memory knob, not a behavior toggle.
|
|
172
296
|
|
|
173
297
|
Control it with the `EAST_LAZY_INPUT_BYTES` environment variable: a byte
|
|
174
|
-
threshold, or `0` to disable lazy opening entirely.
|
|
175
|
-
streaming task
|
|
298
|
+
threshold, or `0` to disable lazy opening entirely. Every `--stream` input of
|
|
299
|
+
a streaming task opens lazily regardless of size.
|
|
176
300
|
|
|
177
301
|
Lazy opening applies only to **value-semantic element shapes** (scalars,
|
|
178
302
|
structs, variants). An element type that transitively contains an Array, Set,
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgYH,wBAAgB,IAAI,IAAI,IAAI,CA0G3B"}
|
package/dist/cli.js
CHANGED
|
@@ -4,10 +4,13 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { Command } from 'commander';
|
|
6
6
|
import { writeFileSync } from 'node:fs';
|
|
7
|
+
import { extname } from 'node:path';
|
|
8
|
+
import { Worker } from 'node:worker_threads';
|
|
7
9
|
import { createRequire } from 'module';
|
|
8
10
|
import { EastError } from '@elaraai/east/internal';
|
|
9
11
|
import { loadPlatforms, loadPlatformWithMetadata } from './loader.js';
|
|
10
|
-
import { runProgram } from './runner.js';
|
|
12
|
+
import { runProgram, UsageError } from './runner.js';
|
|
13
|
+
import { mergeBlobs } from './merge.js';
|
|
11
14
|
import { writeSnapshot, readSnapshot } from './snapshot.js';
|
|
12
15
|
import { encodeRebuilt, isDirectory, transpile, transpileDir } from './transpile.js';
|
|
13
16
|
import { exportFunctionsFromModule } from './export-functions.js';
|
|
@@ -16,26 +19,52 @@ import { checkModule, formatFinding } from './check.js';
|
|
|
16
19
|
import { East } from '@elaraai/east';
|
|
17
20
|
const require = createRequire(import.meta.url);
|
|
18
21
|
const pkg = require('../package.json');
|
|
22
|
+
/**
|
|
23
|
+
* Collects a repeated option's values.
|
|
24
|
+
*
|
|
25
|
+
* Every repeatable flag takes ONE value and is given again for the next —
|
|
26
|
+
* `-i a -i b`, `--stream 0 --stream 1` — which is the grammar east-c and
|
|
27
|
+
* east-py accept and all three READMEs document. Commander's variadic form
|
|
28
|
+
* (`<file...>`) would also swallow the following positional, so
|
|
29
|
+
* `run --stream 0 program.beast2` lost its IR file and reported it missing.
|
|
30
|
+
*/
|
|
31
|
+
function collect(value, previous) {
|
|
32
|
+
return [...previous, value];
|
|
33
|
+
}
|
|
34
|
+
/** The `--exit-with-parent` flag's help, shared by `run` and `merge`. */
|
|
35
|
+
const EXIT_WITH_PARENT_HELP = 'Exit as soon as stdin reaches end of file — for a parent that holds a stdin pipe it never writes to, and takes the runner down with it';
|
|
19
36
|
/** Parses the streaming-execution flags into runner options. */
|
|
20
37
|
function streamingOptions(options) {
|
|
21
38
|
const out = {};
|
|
22
39
|
if (options.emit !== undefined) {
|
|
23
40
|
if (options.emit !== 'array' && options.emit !== 'set' && options.emit !== 'dict') {
|
|
24
|
-
throw new
|
|
41
|
+
throw new UsageError(`--emit must be one of array, set or dict, got '${options.emit}'`);
|
|
25
42
|
}
|
|
26
43
|
out.emit = options.emit;
|
|
27
44
|
}
|
|
45
|
+
if (options.merge !== undefined) {
|
|
46
|
+
if (out.emit !== 'dict')
|
|
47
|
+
throw new UsageError('--merge applies to --emit dict only');
|
|
48
|
+
out.merge = options.merge;
|
|
49
|
+
}
|
|
50
|
+
if (options.union) {
|
|
51
|
+
if (out.emit !== 'set')
|
|
52
|
+
throw new UsageError('--union applies to --emit set only');
|
|
53
|
+
out.union = true;
|
|
54
|
+
}
|
|
28
55
|
if (options.stream !== undefined) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
56
|
+
out.streamInputs = options.stream.map((raw) => {
|
|
57
|
+
const index = Number(raw);
|
|
58
|
+
if (!Number.isInteger(index) || index < 0) {
|
|
59
|
+
throw new UsageError(`--stream must be a non-negative input index, got '${raw}'`);
|
|
60
|
+
}
|
|
61
|
+
return index;
|
|
62
|
+
});
|
|
34
63
|
}
|
|
35
64
|
if (options.lazyInputs !== undefined) {
|
|
36
65
|
const bytes = Number(options.lazyInputs);
|
|
37
66
|
if (!Number.isFinite(bytes) || bytes < 0) {
|
|
38
|
-
throw new
|
|
67
|
+
throw new UsageError(`--lazy-inputs must be a byte threshold (0 disables), got '${options.lazyInputs}'`);
|
|
39
68
|
}
|
|
40
69
|
out.lazyInputBytes = bytes;
|
|
41
70
|
}
|
|
@@ -44,12 +73,13 @@ function streamingOptions(options) {
|
|
|
44
73
|
/**
|
|
45
74
|
* Print `message` to stderr and exit 1 once the write has FLUSHED.
|
|
46
75
|
*
|
|
47
|
-
*
|
|
48
|
-
* `process.exit(1)` can
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
76
|
+
* A write to `process.stderr` is asynchronous on a POSIX pipe (and on a
|
|
77
|
+
* Windows terminal), so `console.error(...)` followed by `process.exit(1)` can
|
|
78
|
+
* end the process before the message is written — and e3 spawns this CLI with
|
|
79
|
+
* stdio pipes and surfaces the stderr tail on failure. Exiting from the write
|
|
80
|
+
* callback lets the whole message through. The returned promise never
|
|
81
|
+
* resolves (the process exits from the write callback), so `return fail(...)`
|
|
82
|
+
* ends the caller exactly like the exit it replaces.
|
|
53
83
|
*/
|
|
54
84
|
function fail(message) {
|
|
55
85
|
process.exitCode = 1;
|
|
@@ -57,7 +87,52 @@ function fail(message) {
|
|
|
57
87
|
process.stderr.write(`${message}\n`, () => process.exit(1));
|
|
58
88
|
});
|
|
59
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* The exit-with-parent watcher (issue #770), run on a worker thread: it reads
|
|
92
|
+
* stdin through a socket on the worker's own event loop, and once stdin ends,
|
|
93
|
+
* closes or cannot be read it kills the whole process — `process.exit` inside
|
|
94
|
+
* a worker ends only the worker.
|
|
95
|
+
*
|
|
96
|
+
* It never blocks in a read. Process exit joins worker threads, so a worker
|
|
97
|
+
* blocked in `fs.readSync(0)` keeps the runner from ever exiting: a read that
|
|
98
|
+
* starts before stdin is non-blocking stays blocked, and on Windows libuv
|
|
99
|
+
* keeps pipes in blocking mode. An evented read stops with the worker's loop
|
|
100
|
+
* (on a synchronous Windows pipe libuv cancels its blocking read).
|
|
101
|
+
*/
|
|
102
|
+
const EXIT_WITH_PARENT_WATCHER = `
|
|
103
|
+
const { Socket } = require('node:net');
|
|
104
|
+
const stop = () => process.kill(process.pid, 'SIGKILL');
|
|
105
|
+
try {
|
|
106
|
+
const stdin = new Socket({ fd: 0, readable: true, writable: false });
|
|
107
|
+
stdin.on('end', stop);
|
|
108
|
+
stdin.on('close', stop);
|
|
109
|
+
stdin.on('error', stop);
|
|
110
|
+
stdin.resume();
|
|
111
|
+
} catch {
|
|
112
|
+
stop();
|
|
113
|
+
}
|
|
114
|
+
`;
|
|
115
|
+
/**
|
|
116
|
+
* Exit with the parent (issue #770): with `--exit-with-parent` on the
|
|
117
|
+
* command line, start the watcher on an unref'd worker thread. A parent
|
|
118
|
+
* passes the flag only when it gives the runner a stdin pipe it never writes
|
|
119
|
+
* to, so stdin ends only when that parent is gone. The main thread never
|
|
120
|
+
* reads `process.stdin`, but it opens it first: on Windows a read pending on
|
|
121
|
+
* a synchronous pipe holds the pipe's file-object lock, so once the watcher
|
|
122
|
+
* reads, opening stdin — which the first ESM import of `node:process` does,
|
|
123
|
+
* the builtin's facade reading every export — would wait for the parent to
|
|
124
|
+
* go. Opened now, stdin is one stream every later use shares. (e3 hands its
|
|
125
|
+
* runners an overlapped pipe, whose reads take no such lock; this keeps the
|
|
126
|
+
* runner whole under any parent.)
|
|
127
|
+
*/
|
|
128
|
+
function startLifeline(options) {
|
|
129
|
+
if (!options.exitWithParent)
|
|
130
|
+
return;
|
|
131
|
+
void process.stdin;
|
|
132
|
+
new Worker(EXIT_WITH_PARENT_WATCHER, { eval: true }).unref();
|
|
133
|
+
}
|
|
60
134
|
async function cmdRun(irFile, options) {
|
|
135
|
+
startLifeline(options);
|
|
61
136
|
try {
|
|
62
137
|
// --from-snapshot is exclusive with <ir_file>, -i, -p
|
|
63
138
|
if (options.fromSnapshot) {
|
|
@@ -112,11 +187,52 @@ async function cmdRun(irFile, options) {
|
|
|
112
187
|
// threw + the East call site), and the message alone drops them. The
|
|
113
188
|
// stack already begins with `Error: <message>`, so don't re-prefix.
|
|
114
189
|
const e = err;
|
|
190
|
+
// A refusal of the command line is the user's error: one sentence, as
|
|
191
|
+
// east-c and east-py give it. A stack belongs only to an error thrown
|
|
192
|
+
// from East or a platform function, where the frames ARE the answer.
|
|
193
|
+
if (err instanceof UsageError)
|
|
194
|
+
return fail(`Error: ${e.message}`);
|
|
115
195
|
return fail(err instanceof EastError
|
|
116
196
|
? `Error: ${err.toString()}`
|
|
117
197
|
: (e.stack ?? `Error: ${e.message ?? String(err)}`));
|
|
118
198
|
}
|
|
119
199
|
}
|
|
200
|
+
/**
|
|
201
|
+
* `east-node merge` (#770): k sorted Set/Dict blobs of one type into one
|
|
202
|
+
* canonical blob, in a single pass — the fan-in of a partitioned task's
|
|
203
|
+
* keyed partials.
|
|
204
|
+
*/
|
|
205
|
+
async function cmdMerge(options) {
|
|
206
|
+
startLifeline(options);
|
|
207
|
+
try {
|
|
208
|
+
// The same rules, in the same words, as east-c and east-py: a merge
|
|
209
|
+
// needs at least one input, an output, one fold at most, and writes a
|
|
210
|
+
// beast2 stream exactly as `run --emit` does.
|
|
211
|
+
if (options.input.length === 0) {
|
|
212
|
+
return fail('Error: merge requires at least one -i input');
|
|
213
|
+
}
|
|
214
|
+
if (options.output === undefined) {
|
|
215
|
+
return fail('Error: merge requires -o FILE');
|
|
216
|
+
}
|
|
217
|
+
if (options.merge !== undefined && options.union) {
|
|
218
|
+
return fail('Error: --merge and --union are two folds — give one');
|
|
219
|
+
}
|
|
220
|
+
if (extname(options.output).toLowerCase() !== '.beast2') {
|
|
221
|
+
return fail('Error: merge requires a .beast2 output file (-o)');
|
|
222
|
+
}
|
|
223
|
+
const platformFns = await loadPlatforms(options.package ?? []);
|
|
224
|
+
mergeBlobs(options.input, options.output, {
|
|
225
|
+
...(options.merge !== undefined && { mergePath: options.merge }),
|
|
226
|
+
...(options.range !== undefined && { rangePath: options.range }),
|
|
227
|
+
union: options.union ?? false,
|
|
228
|
+
platformFns,
|
|
229
|
+
verbose: options.verbose ?? false,
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
catch (err) {
|
|
233
|
+
return fail(`Error: ${err.message}`);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
120
236
|
/**
|
|
121
237
|
* `east-node transpile` (#628): print an IR file — or every IR file in a
|
|
122
238
|
* directory — as the TypeScript `East.function` builder surface. With
|
|
@@ -211,16 +327,33 @@ export function main() {
|
|
|
211
327
|
.command('run')
|
|
212
328
|
.description('Run an East IR program')
|
|
213
329
|
.argument('[ir_file]', 'Path to IR file (.beast2, .beast, .east, or .json)')
|
|
214
|
-
.option('-p, --package <package
|
|
215
|
-
.option('-i, --input <file
|
|
330
|
+
.option('-p, --package <package>', 'Platform package to load (can be repeated)', collect, [])
|
|
331
|
+
.option('-i, --input <file>', 'Input data file (can be repeated, order matches function parameters)', collect, [])
|
|
216
332
|
.option('-o, --output <file>', 'Output file path for result')
|
|
217
333
|
.option('-v, --verbose', 'Enable verbose output')
|
|
218
334
|
.option('--snapshot <path>', 'Write a .east-snapshot bundle (IR + inputs + manifest)')
|
|
219
335
|
.option('--from-snapshot <path>', 'Replay from a .east-snapshot bundle (exclusive with <ir_file>, -i, -p)')
|
|
220
336
|
.option('--emit <kind>', "Write the output incrementally from the function's trailing emit parameter (array|set|dict)")
|
|
221
|
-
.option('--
|
|
337
|
+
.option('--merge <file>', 'With --emit dict: fold equal keys with the East function (K, V, V) -> V in <file>, in emission order')
|
|
338
|
+
.option('--union', 'With --emit set: collapse equal elements')
|
|
339
|
+
.option('--stream <index>', 'Feed the given -i input (0-based) lazily, segment-by-segment (can be repeated)', collect, [])
|
|
222
340
|
.option('--lazy-inputs <bytes>', 'Open indexed collection inputs at or above this size lazily (0 disables; default 64 MiB)')
|
|
341
|
+
.option('--exit-with-parent', EXIT_WITH_PARENT_HELP)
|
|
223
342
|
.action(cmdRun);
|
|
343
|
+
program
|
|
344
|
+
.command('merge')
|
|
345
|
+
.description('Merge sorted Set or Dict blobs of one type into one, in a single pass: equal keys fold with ' +
|
|
346
|
+
'the East function (K, V, V) -> V in --merge <file> (Dict), or collapse under --union (Set); without ' +
|
|
347
|
+
'a fold an equal key is an error. The output is what `run --emit` writes for the same entries emitted ascending')
|
|
348
|
+
.option('-i, --input <file>', 'An input blob (can be repeated; equal keys fold in this order)', collect, [])
|
|
349
|
+
.option('-o, --output <file>', 'The merged blob')
|
|
350
|
+
.option('-p, --package <package>', "Platform package the --merge function's platform calls need (can be repeated)", collect, [])
|
|
351
|
+
.option('-v, --verbose', 'Enable verbose output')
|
|
352
|
+
.option('--merge <file>', 'Dict inputs: fold equal keys with the East function (K, V, V) -> V in <file>, in input order')
|
|
353
|
+
.option('--union', 'Set inputs: the first of equal elements stands')
|
|
354
|
+
.option('--range <file>', "Merge only the keys in [from, to): a beast2 blob of Struct{from: Option<K>, to: Option<K>} over the inputs' key type; an absent bound is open")
|
|
355
|
+
.option('--exit-with-parent', EXIT_WITH_PARENT_HELP)
|
|
356
|
+
.action(cmdMerge);
|
|
224
357
|
program
|
|
225
358
|
.command('transpile')
|
|
226
359
|
.description('Print an East IR program as TypeScript East.function builder source')
|
|
@@ -276,7 +409,7 @@ export function main() {
|
|
|
276
409
|
program
|
|
277
410
|
.command('version')
|
|
278
411
|
.description('Show version information')
|
|
279
|
-
.option('-p, --package <package
|
|
412
|
+
.option('-p, --package <package>', 'Platform package to check (can be repeated)', collect, [])
|
|
280
413
|
.action(cmdVersion);
|
|
281
414
|
program.parse();
|
|
282
415
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import type { EastTypeValue } from '@elaraai/east/internal';
|
|
6
|
+
/** The output collection kind an emit writer batches for. */
|
|
7
|
+
export type EmitKind = 'array' | 'set' | 'dict';
|
|
8
|
+
/**
|
|
9
|
+
* A streaming, byte-adaptively batched writer of one canonical collection
|
|
10
|
+
* blob. Entries are elements (Array and Set) or `[key, value]` pairs (Dict).
|
|
11
|
+
*/
|
|
12
|
+
export declare class EmitFileWriter {
|
|
13
|
+
private readonly kind;
|
|
14
|
+
private readonly outType;
|
|
15
|
+
private readonly fd;
|
|
16
|
+
private readonly writer;
|
|
17
|
+
private headerBytes;
|
|
18
|
+
private batch;
|
|
19
|
+
private written;
|
|
20
|
+
private nextBatch;
|
|
21
|
+
private probed;
|
|
22
|
+
/**
|
|
23
|
+
* Opens `path` for writing and emits the blob's header.
|
|
24
|
+
*
|
|
25
|
+
* @param kind - the collection kind
|
|
26
|
+
* @param outType - the collection's wire type
|
|
27
|
+
* @param path - the output file
|
|
28
|
+
*/
|
|
29
|
+
constructor(kind: EmitKind, outType: EastTypeValue, path: string);
|
|
30
|
+
/**
|
|
31
|
+
* Appends `entry` under the flush rule: a full batch goes out only now
|
|
32
|
+
* that an entry which will not fold into it has arrived, so the batch's
|
|
33
|
+
* last entry is always still open for a fold.
|
|
34
|
+
*
|
|
35
|
+
* @param entry - the element, or the `[key, value]` pair
|
|
36
|
+
*/
|
|
37
|
+
push(entry: unknown): void;
|
|
38
|
+
/**
|
|
39
|
+
* Seeds the batch size from a throwaway encode of the first entries, as
|
|
40
|
+
* `encodeBeast2PagedFor` does — the same probe, over the same count, so
|
|
41
|
+
* one value segments the same whether it was returned or emitted.
|
|
42
|
+
*
|
|
43
|
+
* Opening at the element cap instead made the first segment as many
|
|
44
|
+
* elements as the cap whatever they weighed: for rows above the target's
|
|
45
|
+
* share that is one oversized segment and every later boundary shifted,
|
|
46
|
+
* so the same Dict written both ways hashed differently. The probed
|
|
47
|
+
* entries are then drained through the refined size, exactly as the
|
|
48
|
+
* paged encoder pumps its own probe.
|
|
49
|
+
*/
|
|
50
|
+
private probe;
|
|
51
|
+
/**
|
|
52
|
+
* Replaces the open batch's last entry — where an adjacent equal key's
|
|
53
|
+
* fold lands.
|
|
54
|
+
*
|
|
55
|
+
* @param update - maps the last entry to its folded form
|
|
56
|
+
*/
|
|
57
|
+
foldLast(update: (last: unknown) => unknown): void;
|
|
58
|
+
/** Writes the open batch and finalizes the blob (terminator + index). */
|
|
59
|
+
finishClose(): void;
|
|
60
|
+
/** Closes the file without finalizing it — after an error, the partial
|
|
61
|
+
* output carries no terminator or index. */
|
|
62
|
+
closeAbandoned(): void;
|
|
63
|
+
private flush;
|
|
64
|
+
private toValue;
|
|
65
|
+
/** The batch size the paged encoder would choose after `bytes` of body
|
|
66
|
+
* for `this.written` elements. */
|
|
67
|
+
private refine;
|
|
68
|
+
/** The next batch size. With frames deflating on workers the bytes
|
|
69
|
+
* written are only known within bounds; the refinement is monotone in
|
|
70
|
+
* them, so agreeing bounds are the serial decision and disagreeing ones
|
|
71
|
+
* wait for the frames — the segmentation never depends on timing. */
|
|
72
|
+
private refineNext;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=emit-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emit-writer.d.ts","sourceRoot":"","sources":["../src/emit-writer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAW5D,6DAA6D;AAC7D,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAEhD;;;GAGG;AACH,qBAAa,cAAc;IAgBX,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAY,OAAO,CAAC,QAAQ,CAAC,OAAO;IAfrE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,MAAM,CAAS;IAEvB;;;;;;OAMG;gBAC0B,IAAI,EAAE,QAAQ,EAAmB,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM;IAUlG;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAM1B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,KAAK;IAoBb;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI;IAKlD,yEAAyE;IACzE,WAAW,IAAI,IAAI;IAMnB;iDAC6C;IAC7C,cAAc,IAAI,IAAI;IAItB,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,OAAO;IAIf;uCACmC;IACnC,OAAO,CAAC,MAAM;IAKd;;;0EAGsE;IACtE,OAAO,CAAC,UAAU;CAOrB"}
|