@elaraai/e3-cli 1.0.80 → 1.0.82

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.
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ import { test } from 'node:test';
6
+ import assert from 'node:assert';
7
+ import { createHash } from 'node:crypto';
8
+ import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
9
+ import { tmpdir } from 'node:os';
10
+ import { join } from 'node:path';
11
+ import { variant } from '@elaraai/east';
12
+ import { createProgress } from './progress.js';
13
+ import { commitText, deployJobText, hashDelivery, intakeReporter, uploadReporter } from './intake.js';
14
+ function fakeStream(tty) {
15
+ const chunks = [];
16
+ return { chunks, isTTY: tty, write: (c) => { chunks.push(c); return true; } };
17
+ }
18
+ const MB = 1024 * 1024;
19
+ const sources = { count: 3, bytes: 30 * MB };
20
+ const event = (path, rest) => ({ path, file: `/deliveries/${path.split('/').pop()}.beast2`, sources, phase: 'hash', bytes: 0, total: 10 * MB, ...rest });
21
+ test('a line per file as it finishes, naming the runner that took it in, and a summary once the last is in', () => {
22
+ const stream = fakeStream(false);
23
+ let clock = 0;
24
+ const intake = intakeReporter(createProgress({ stream }), () => clock);
25
+ intake.report(event('inputs/a', { phase: 'hash', bytes: 5 * MB }));
26
+ intake.report(event('inputs/b', { phase: 'hash', bytes: 5 * MB }));
27
+ clock = 1000;
28
+ intake.report(event('inputs/a', { phase: 'take-in', bytes: 10 * MB }));
29
+ clock = 2000;
30
+ intake.report(event('inputs/a', { phase: 'done', bytes: 10 * MB, taken: 'carried' }));
31
+ intake.report(event('inputs/b', { phase: 'done', bytes: 10 * MB, taken: 'known' }));
32
+ intake.report(event('inputs/c', { phase: 'take-in', bytes: 0, pieces: { done: 0, total: 4 } }));
33
+ clock = 4000;
34
+ intake.report(event('inputs/c', { phase: 'done', bytes: 10 * MB, taken: 'taken', runners: ['east-c'] }));
35
+ assert.deepStrictEqual(stream.chunks.join('').split('\n').filter(Boolean), [
36
+ 'taking in 3 files (30.0 MB) …',
37
+ '✔ a 10.0 MB in 2.0 s (5.0 MB/s), carried',
38
+ '✔ b 10.0 MB in 2.0 s (5.0 MB/s), unchanged, already in the store',
39
+ '✔ c 10.0 MB in 2.0 s (5.0 MB/s), taken in by east-c',
40
+ '✔ took in 3 files, 30.0 MB in 4.0 s (7.5 MB/s): 1 unchanged, 1 carried, 1 taken in',
41
+ ]);
42
+ });
43
+ test('a runner that fell back says why once, on the first file it took in', () => {
44
+ const stream = fakeStream(false);
45
+ const intake = intakeReporter(createProgress({ stream }), () => 0);
46
+ const fallback = 'east-c exited 2 without recording a result for the intake unit (Unknown command: exec)';
47
+ for (const path of ['inputs/a', 'inputs/b']) {
48
+ intake.report(event(path, { phase: 'done', bytes: 10 * MB, taken: 'taken', runners: ['east-node'], fallback }));
49
+ }
50
+ intake.report(event('inputs/c', { phase: 'done', bytes: 10 * MB, taken: 'taken', runners: [] }));
51
+ assert.deepStrictEqual(stream.chunks.join('').split('\n').filter(Boolean).slice(1, 4), [
52
+ `✔ a 10.0 MB in 0.0 s, taken in by east-node, since ${fallback}`,
53
+ '✔ b 10.0 MB in 0.0 s, taken in by east-node',
54
+ '✔ c 10.0 MB in 0.0 s, taken in from the pieces an earlier intake finished',
55
+ ]);
56
+ });
57
+ test('on a terminal, the live line names the files in flight, their pieces, and the pace across them', () => {
58
+ const stream = fakeStream(true);
59
+ let clock = 0;
60
+ const intake = intakeReporter(createProgress({ stream }), () => clock);
61
+ intake.report(event('inputs/a', { phase: 'hash', bytes: 2 * MB }));
62
+ clock = 1000;
63
+ intake.report(event('inputs/a', { phase: 'take-in', bytes: 5 * MB, pieces: { done: 2, total: 4 } }));
64
+ const out = stream.chunks.join('');
65
+ assert.ok(out.includes('taking in 0/3 files, 5.0 MB/30.0 MB, 5.0 MB/s, 5.0 s left: a 5.0 MB/10.0 MB (2/4 pieces)'), out);
66
+ });
67
+ test('a failed intake ends its live line without a summary', () => {
68
+ const stream = fakeStream(false);
69
+ const intake = intakeReporter(createProgress({ stream }), () => 0);
70
+ intake.report(event('inputs/a', { phase: 'hash', bytes: MB }));
71
+ intake.fail();
72
+ assert.strictEqual(stream.chunks.join('').includes('took in'), false);
73
+ });
74
+ test('uploads side by side: a line per file as it finishes, and a summary once the last is in', () => {
75
+ const stream = fakeStream(false);
76
+ let clock = 0;
77
+ const upload = uploadReporter(createProgress({ stream }), 2, 20 * MB, () => clock);
78
+ const a = upload.start('a', 10 * MB);
79
+ const b = upload.start('b', 10 * MB);
80
+ a.hashing(5 * MB);
81
+ b.sending();
82
+ clock = 1000;
83
+ b.done('uploaded ws.b (10.0 MB, 0123456789ab...)');
84
+ clock = 2000;
85
+ a.done('uploaded ws.a (10.0 MB, ba9876543210...)');
86
+ assert.deepStrictEqual(stream.chunks.join('').split('\n').filter(Boolean), [
87
+ 'uploading 2 files (20.0 MB) …',
88
+ '✔ uploaded ws.b (10.0 MB, 0123456789ab...)',
89
+ '✔ uploaded ws.a (10.0 MB, ba9876543210...)',
90
+ '✔ uploaded 2 files, 20.0 MB in 2.0 s (10.0 MB/s)',
91
+ ]);
92
+ });
93
+ test('on a terminal, the upload line names the files in flight and what each is doing', () => {
94
+ const stream = fakeStream(true);
95
+ let clock = 0;
96
+ const upload = uploadReporter(createProgress({ stream }), 5, 50 * MB, () => clock);
97
+ const [a, b, c] = ['a', 'b', 'c', 'd'].map((name) => upload.start(name, 10 * MB));
98
+ clock = 1000;
99
+ a.hashing(4 * MB);
100
+ b.sending();
101
+ clock = 2000;
102
+ c.committing({ path: 'inputs/c', step: variant('taking_in', { pieces: 4n, done: 1n }), bytes: BigInt(3 * MB), total: BigInt(10 * MB) });
103
+ upload.fail();
104
+ const out = stream.chunks.join('');
105
+ assert.ok(out.includes('uploading 0/5 files: a hashing 4.0 MB/10.0 MB, b sending 10.0 MB, c server taking in 3.0 MB/10.0 MB (1/4 pieces), 1 more'), out);
106
+ });
107
+ test('a failed upload ends the live line without a summary, and the uploads still in flight are no longer heard', () => {
108
+ const stream = fakeStream(false);
109
+ const upload = uploadReporter(createProgress({ stream }), 2, 20 * MB, () => 0);
110
+ const a = upload.start('a', 10 * MB);
111
+ const b = upload.start('b', 10 * MB);
112
+ upload.fail();
113
+ a.done('uploaded ws.a (10.0 MB, 0123456789ab...)');
114
+ b.done('uploaded ws.b (10.0 MB, ba9876543210...)');
115
+ assert.deepStrictEqual(stream.chunks.join('').split('\n').filter(Boolean), ['uploading 2 files (20.0 MB) …']);
116
+ });
117
+ test('an upload hashes its delivery first, saying how far the read has got, at most every tenth of a second', async () => {
118
+ const dir = mkdtempSync(join(tmpdir(), 'e3-intake-'));
119
+ try {
120
+ const file = join(dir, 'table.beast2');
121
+ const bytes = new Uint8Array(3 * MB).fill(7);
122
+ writeFileSync(file, bytes);
123
+ const lines = () => {
124
+ const updates = [];
125
+ return { updates, step: { update: (text) => { updates.push(text); }, done: () => { }, fail: () => { } } };
126
+ };
127
+ // The clock moves a tenth of a second between reads: every read is said.
128
+ const paced = lines();
129
+ let clock = 0;
130
+ const hash = await hashDelivery(file, bytes.length, 'table', paced.step, () => (clock += 100));
131
+ assert.strictEqual(hash, createHash('sha256').update(bytes).digest('hex'));
132
+ assert.deepStrictEqual(paced.updates, ['hashing table: 1.0 MB/3.0 MB', 'hashing table: 2.0 MB/3.0 MB', 'hashing table: 3.0 MB/3.0 MB']);
133
+ // It stands still: the first read is said, and the rest wait for the clock.
134
+ const still = lines();
135
+ await hashDelivery(file, bytes.length, 'table', still.step, () => 100);
136
+ assert.deepStrictEqual(still.updates, ['hashing table: 1.0 MB/3.0 MB']);
137
+ }
138
+ finally {
139
+ rmSync(dir, { recursive: true, force: true });
140
+ }
141
+ });
142
+ test("a server's commit says what it is doing with the file", () => {
143
+ const at = (step) => commitText({ path: 'inputs/a', step, bytes: BigInt(4 * MB), total: BigInt(10 * MB) });
144
+ assert.strictEqual(at(variant('hashing', null)), 'the server is hashing it: 4.0 MB/10.0 MB');
145
+ assert.strictEqual(at(variant('taking_in', { pieces: 1n, done: 0n })), 'the server is taking it in: 4.0 MB/10.0 MB');
146
+ assert.strictEqual(at(variant('taking_in', { pieces: 4n, done: 1n })), 'the server is taking it in (1/4 pieces): 4.0 MB/10.0 MB');
147
+ });
148
+ test("a server's deploy job says its files, then the record it migrates or indexes, then finishing", () => {
149
+ const file = (step) => ({ path: 'inputs/a', step, bytes: 0n, total: 1n });
150
+ const job = (files, step) => ({
151
+ package: { name: 'p', version: '1.0.0' },
152
+ startedAt: new Date(0),
153
+ files,
154
+ records: [{ plan: { record: 'records/orders', action: variant('migrate', { steps: ['a', 'b'] }) }, indexes: ['by_customer'], step }],
155
+ });
156
+ const done = file(variant('done', variant('carried', null)));
157
+ assert.strictEqual(deployJobText(job([done, file(variant('waiting', null))], variant('waiting', null))), 'taking in 1/2 files');
158
+ assert.strictEqual(deployJobText(job([done], variant('migrating', { name: 'b', step: 2n, steps: 2n }))), 'migrating orders: b (2/2)');
159
+ assert.strictEqual(deployJobText(job([], variant('indexing', { index: 'by_customer', build: 1n, builds: 1n }))), 'building orders.by_customer (1/1)');
160
+ assert.strictEqual(deployJobText(job([done], variant('done', null))), 'finishing');
161
+ });
162
+ //# sourceMappingURL=intake.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intake.spec.js","sourceRoot":"","sources":["../../src/intake.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,cAAc,EAAwC,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEtG,SAAS,UAAU,CAAC,GAAY;IAC9B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACxF,CAAC;AAED,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACvB,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;AAC7C,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,IAAmC,EAAwB,EAAE,CACxF,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAE7H,IAAI,CAAC,sGAAsG,EAAE,GAAG,EAAE;IAChH,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACnE,KAAK,GAAG,IAAI,CAAC;IACb,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACvE,KAAK,GAAG,IAAI,CAAC;IACb,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACtF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACpF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAChG,KAAK,GAAG,IAAI,CAAC;IACb,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACzG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACzE,+BAA+B;QAC/B,0CAA0C;QAC1C,kEAAkE;QAClE,qDAAqD;QACrD,oFAAoF;KACrF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qEAAqE,EAAE,GAAG,EAAE;IAC/E,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,wFAAwF,CAAC;IAC1G,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACjG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QACrF,sDAAsD,QAAQ,EAAE;QAChE,6CAA6C;QAC7C,2EAA2E;KAC5E,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gGAAgG,EAAE,GAAG,EAAE;IAC1G,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACnE,KAAK,GAAG,IAAI,CAAC;IACb,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrG,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,0FAA0F,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3H,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;IAChE,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/D,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yFAAyF,EAAE,GAAG,EAAE;IACnG,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACnF,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,OAAO,EAAE,CAAC;IACZ,KAAK,GAAG,IAAI,CAAC;IACb,CAAC,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACnD,KAAK,GAAG,IAAI,CAAC;IACb,CAAC,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACnD,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACzE,+BAA+B;QAC/B,4CAA4C;QAC5C,4CAA4C;QAC5C,kDAAkD;KACnD,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iFAAiF,EAAE,GAAG,EAAE;IAC3F,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACnF,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAClF,KAAK,GAAG,IAAI,CAAC;IACb,CAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACnB,CAAE,CAAC,OAAO,EAAE,CAAC;IACb,KAAK,GAAG,IAAI,CAAC;IACb,CAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACzI,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,0HAA0H,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3J,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2GAA2G,EAAE,GAAG,EAAE;IACrH,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,CAAC,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACnD,CAAC,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACnD,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC,CAAC;AAChH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uGAAuG,EAAE,KAAK,IAAI,EAAE;IACvH,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,GAA4C,EAAE;YAC1D,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,EAAE,CAAC;QAC1G,CAAC,CAAC;QAEF,yEAAyE;QACzE,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;QACtB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC;QAC/F,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,8BAA8B,EAAE,8BAA8B,EAAE,8BAA8B,CAAC,CAAC,CAAC;QAExI,4EAA4E;QAC5E,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;QACtB,MAAM,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACvE,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC1E,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;IACjE,MAAM,EAAE,GAAG,CAAC,IAAwB,EAAU,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACvI,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE,0CAA0C,CAAC,CAAC;IAC7F,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,4CAA4C,CAAC,CAAC;IACrH,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,yDAAyD,CAAC,CAAC;AACpI,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8FAA8F,EAAE,GAAG,EAAE;IACxG,MAAM,IAAI,GAAG,CAAC,IAAwB,EAAc,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1G,MAAM,GAAG,GAAG,CAAC,KAAmB,EAAE,IAA+B,EAAkB,EAAE,CAAC,CAAC;QACrF,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;QACxC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;QACtB,KAAK;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;KACrI,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAChI,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;IACtI,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,mCAAmC,CAAC,CAAC;IACtJ,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AACrF,CAAC,CAAC,CAAC"}
@@ -52,7 +52,7 @@ export declare function createProgress(options?: {
52
52
  stream?: ProgressStream;
53
53
  }): Progress;
54
54
  /**
55
- * Format a byte count for progress lines (`812 kB`, `1.2 MB`).
55
+ * Format a byte count for progress lines (`812 kB`, `1.2 MB`, `7.5 GB`).
56
56
  *
57
57
  * @param bytes - The byte count
58
58
  * @returns Human-readable size
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/progress.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;GAcG;AAEH,uEAAuE;AACvE,MAAM,WAAW,UAAU;IACzB,kFAAkF;IAClF,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,wEAAwE;IACxE,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,8EAA8E;IAC9E,IAAI,IAAI,IAAI,CAAC;CACd;AAED,4EAA4E;AAC5E,MAAM,WAAW,QAAQ;IACvB,+CAA+C;IAC/C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,4EAA4E;IAC5E,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC/B,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B;AAKD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAA;CAAE,GAAG,QAAQ,CA8E/F;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjD"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/progress.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;GAcG;AAEH,uEAAuE;AACvE,MAAM,WAAW,UAAU;IACzB,kFAAkF;IAClF,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,wEAAwE;IACxE,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,8EAA8E;IAC9E,IAAI,IAAI,IAAI,CAAC;CACd;AAED,4EAA4E;AAC5E,MAAM,WAAW,QAAQ;IACvB,+CAA+C;IAC/C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,4EAA4E;IAC5E,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC/B,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B;AAKD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAA;CAAE,GAAG,QAAQ,CA2E/F;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKjD"}
@@ -37,15 +37,13 @@ export function createProgress(options) {
37
37
  const phase = (text) => {
38
38
  if (quiet)
39
39
  return;
40
- const hadActive = active !== undefined;
41
- const activeText = active?.text;
42
- stopActive();
40
+ // A phase can complete while a step is still spinning (a captured member,
41
+ // a file taken in): its line goes above the step's, which carries on — the
42
+ // same step, so its handle still updates and completes it.
43
+ clearLine();
43
44
  stream.write(`✔ ${text}\n`);
44
- // Resume the interrupted step's line (a capture phase can complete while
45
- // a surrounding step is still spinning).
46
- if (hadActive && activeText !== undefined) {
47
- startStepInternal(activeText);
48
- }
45
+ if (tty)
46
+ renderSpinner();
49
47
  };
50
48
  const startStepInternal = (text) => {
51
49
  if (tty) {
@@ -93,7 +91,7 @@ export function createProgress(options) {
93
91
  return { phase, step, quiet };
94
92
  }
95
93
  /**
96
- * Format a byte count for progress lines (`812 kB`, `1.2 MB`).
94
+ * Format a byte count for progress lines (`812 kB`, `1.2 MB`, `7.5 GB`).
97
95
  *
98
96
  * @param bytes - The byte count
99
97
  * @returns Human-readable size
@@ -103,6 +101,8 @@ export function formatBytes(bytes) {
103
101
  return `${bytes} B`;
104
102
  if (bytes < 1024 * 1024)
105
103
  return `${Math.round(bytes / 1024)} kB`;
106
- return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
104
+ if (bytes < 1024 * 1024 * 1024)
105
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
106
+ return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
107
107
  }
108
108
  //# sourceMappingURL=progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/progress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/progress.ts"],"names":[],"mappings":"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"}
@@ -37,16 +37,31 @@ test('TTY: step renders in place and completes to a ✔ line', () => {
37
37
  assert.ok(out.includes('pushing objects 23/40'), 'update text rendered');
38
38
  assert.ok(out.endsWith('✔ imported demo@1.0.0 (40 objects)\n'), 'completion line last');
39
39
  });
40
- test('TTY: a phase completing mid-step resumes the step line', () => {
40
+ test('TTY: a phase completing mid-step resumes the step line, and the step goes on', () => {
41
41
  const stream = fakeStream(true);
42
42
  const progress = createProgress({ stream });
43
43
  const step = progress.step('capturing package');
44
44
  progress.phase('captured pricing (uv build --sdist, 1.2 MB)');
45
+ step.update('capturing package: 2 of 3 members');
45
46
  step.done('captured package demo@1.0.0');
46
47
  const out = stream.chunks.join('');
47
48
  const phaseAt = out.indexOf('✔ captured pricing');
48
49
  const resumeAt = out.indexOf('capturing package', phaseAt);
49
50
  assert.ok(phaseAt >= 0 && resumeAt > phaseAt, 'step line resumes after the phase line');
51
+ assert.ok(out.indexOf('capturing package: 2 of 3 members', phaseAt) > phaseAt, 'the step updates after the phase');
52
+ assert.ok(out.endsWith('✔ captured package demo@1.0.0\n'), 'the step completes after the phase');
53
+ });
54
+ test('non-TTY: a phase mid-step prints its line, and the step still completes', () => {
55
+ const stream = fakeStream(false);
56
+ const progress = createProgress({ stream });
57
+ const step = progress.step('taking in 2 files');
58
+ progress.phase('wide_a 70.7 MB in 3.1 s (22.8 MB/s), carried');
59
+ step.done('took in 2 files');
60
+ assert.deepStrictEqual(stream.chunks.join('').split('\n').filter(Boolean), [
61
+ 'taking in 2 files …',
62
+ '✔ wide_a 70.7 MB in 3.1 s (22.8 MB/s), carried',
63
+ '✔ took in 2 files',
64
+ ]);
50
65
  });
51
66
  test('quiet suppresses everything', () => {
52
67
  const stream = fakeStream(true);
@@ -71,5 +86,6 @@ test('formatBytes picks sensible units', () => {
71
86
  assert.strictEqual(formatBytes(512), '512 B');
72
87
  assert.strictEqual(formatBytes(84 * 1024), '84 kB');
73
88
  assert.strictEqual(formatBytes(1.2 * 1024 * 1024), '1.2 MB');
89
+ assert.strictEqual(formatBytes(7.5 * 1024 * 1024 * 1024), '7.5 GB');
74
90
  });
75
91
  //# sourceMappingURL=progress.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.spec.js","sourceRoot":"","sources":["../../src/progress.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progress.spec.js","sourceRoot":"","sources":["../../src/progress.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elaraai/e3-cli",
3
- "version": "1.0.80",
3
+ "version": "1.0.82",
4
4
  "type": "module",
5
5
  "description": "East Execution Engine CLI - Command-line tool for managing e3 repositories and tasks",
6
6
  "main": "dist/src/index.js",
@@ -41,13 +41,13 @@
41
41
  "dependencies": {
42
42
  "commander": "^12.0.0",
43
43
  "esbuild": "^0.27.2",
44
- "@elaraai/e3": "1.0.80",
45
- "@elaraai/e3-api-client": "1.0.80",
46
- "@elaraai/e3-types": "1.0.80",
47
- "@elaraai/e3-core": "1.0.80"
44
+ "@elaraai/e3": "1.0.82",
45
+ "@elaraai/e3-core": "1.0.82",
46
+ "@elaraai/e3-api-client": "1.0.82",
47
+ "@elaraai/e3-types": "1.0.82"
48
48
  },
49
49
  "peerDependencies": {
50
- "@elaraai/east": "1.0.80"
50
+ "@elaraai/east": "1.0.82"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/node": "^22.0.0",