@elaraai/east-node-cli 1.0.84 → 1.0.86

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/exec.spec.js CHANGED
@@ -7,18 +7,57 @@
7
7
  * through this runner, writes the corpus's bytes and comes to its outcome, as
8
8
  * east-c's and east-py's runners must. The corpus is `east`'s
9
9
  * (`test/runner_corpus.spec.ts`): read from `EAST_RUNNER_CORPUS` when that
10
- * names one, and written afresh for this run otherwise.
10
+ * names one, and written afresh for this run otherwise. `exec` is the file
11
+ * wrapper of east's `executeUnit`, so every case also runs over the in-memory
12
+ * UnitIO a browser gives it, which must write the very files `exec` writes.
11
13
  */
12
- import { describe, it, before, after } from 'node:test';
14
+ import { describe, it, before, after, beforeEach } from 'node:test';
13
15
  import assert from 'node:assert/strict';
14
- import { spawnSync } from 'node:child_process';
15
- import { cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, statSync, writeFileSync } from 'node:fs';
16
+ import { spawn, spawnSync } from 'node:child_process';
17
+ import { copyFileSync, cpSync, existsSync, mkdirSync, mkdtempSync, readdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from 'node:fs';
16
18
  import { tmpdir } from 'node:os';
17
19
  import { dirname, join } from 'node:path';
18
20
  import { fileURLToPath } from 'node:url';
19
- import { ArrayType, Beast2ManifestWriter, BooleanType, DictType, East, IntegerType, NullType, StringType, UnitOutcomeType, UnitResultType, UnitType, decodeBeast2, decodeBeast2For, encodeBeast2For, encodeEastIR, equalFor, variant, } from '@elaraai/east';
20
- import { inputBytes } from './loader.js';
21
+ import { ArrayType, Beast2ManifestWriter, BooleanType, DictType, East, FETCH_SEGMENTS_ENV, InMemoryUnitIO, IntegerType, NullType, StringType, UnitOutcomeType, UnitResultType, UnitType, decodeBeast2, decodeBeast2For, decodeCollectionManifest, encodeBeast2For, encodeBeast2SegmentsFor, encodeEastIR, equalFor, executeUnit, printFor, variant, } from '@elaraai/east';
22
+ import { execUnit, readUnit } from './exec.js';
23
+ import { inputBytes, loadPlatform } from './loader.js';
21
24
  const bin = fileURLToPath(new URL('../bin/east-node.mjs', import.meta.url));
25
+ /** An outcome as a message shows it. */
26
+ const printOutcome = printFor(UnitOutcomeType);
27
+ /** Every file under `root`, by its path relative to `root`, forward-slashed —
28
+ * the paths a unit names them by. */
29
+ function filesUnder(root) {
30
+ const files = [];
31
+ const walk = (rel) => {
32
+ for (const name of readdirSync(join(root, rel))) {
33
+ const path = rel === '' ? name : `${rel}/${name}`;
34
+ if (statSync(join(root, path)).isDirectory())
35
+ walk(path);
36
+ else
37
+ files.push([path, new Uint8Array(readFileSync(join(root, path)))]);
38
+ }
39
+ };
40
+ walk('');
41
+ return files;
42
+ }
43
+ /**
44
+ * Asserts an in-memory UnitIO holds the tree at `root`, and nothing else: each
45
+ * directory's entries, and every file's bytes.
46
+ */
47
+ function assertHoldsTree(io, root, label) {
48
+ const walk = (rel) => {
49
+ const names = readdirSync(join(root, rel)).sort();
50
+ assert.deepEqual(io.list(rel), names, `${label}: the entries of ${rel || '.'}`);
51
+ for (const name of names) {
52
+ const path = rel === '' ? name : `${rel}/${name}`;
53
+ if (statSync(join(root, path)).isDirectory())
54
+ walk(path);
55
+ else
56
+ assert.deepEqual(io.read(path), new Uint8Array(readFileSync(join(root, path))), `${label}: ${path}`);
57
+ }
58
+ };
59
+ walk('');
60
+ }
22
61
  describe('exec: the runner protocol corpus', () => {
23
62
  let corpus;
24
63
  let generated;
@@ -70,6 +109,41 @@ describe('exec: the runner protocol corpus', () => {
70
109
  assert.ok(!existsSync(join(dir, path)), `${name}: ${path} is not written`);
71
110
  }
72
111
  });
112
+ it('writes, over the in-memory UnitIO, the very files its file wrapper writes on disk, and comes to the same outcome', async () => {
113
+ const names = decodeBeast2For(ArrayType(StringType))(readFileSync(join(corpus, 'index.beast2')));
114
+ const equalOutcome = equalFor(UnitOutcomeType);
115
+ // The file wrapper turns the fetch variable on or off for its process,
116
+ // as its unit says: this one's is put back after.
117
+ const fetching = process.env[FETCH_SEGMENTS_ENV];
118
+ try {
119
+ for (const name of names) {
120
+ const expected = decodeBeast2(readFileSync(join(corpus, name, 'case.beast2'))).value;
121
+ // On disk: a copy of the case, executed by `exec`'s file
122
+ // wrapper in this process — all of `exec` but the result file
123
+ // it records and the exit status, which the case above holds.
124
+ const dir = join(scratch, 'in-memory', name);
125
+ cpSync(join(corpus, name), dir, { recursive: true });
126
+ const onDisk = await execUnit(readUnit(join(dir, 'unit.beast2')));
127
+ // In memory: the case's files as the corpus holds them, the
128
+ // platforms resolved as the file wrapper resolves them.
129
+ const io = new InMemoryUnitIO(filesUnder(join(corpus, name)));
130
+ const unit = decodeBeast2For(UnitType)(io.read('unit.beast2'));
131
+ const inMemory = await executeUnit(unit, io, { platforms: loadPlatform });
132
+ assert.ok(equalOutcome(inMemory.outcome, onDisk.outcome), `${name}: in memory ${printOutcome(inMemory.outcome)}, on disk ${printOutcome(onDisk.outcome)}`);
133
+ assert.ok(equalOutcome(inMemory.outcome, expected.outcome), `${name}: ${printOutcome(inMemory.outcome)}`);
134
+ assert.ok(onDisk.peakBytes > 0n, `${name}: the process's peak is measured`);
135
+ assert.equal(inMemory.peakBytes, 0n, `${name}: a host that measures no memory reports no peak`);
136
+ // Every directory and file, byte for byte.
137
+ assertHoldsTree(io, dir, name);
138
+ }
139
+ }
140
+ finally {
141
+ if (fetching === undefined)
142
+ delete process.env[FETCH_SEGMENTS_ENV];
143
+ else
144
+ process.env[FETCH_SEGMENTS_ENV] = fetching;
145
+ }
146
+ });
73
147
  });
74
148
  describe('exec -v: the account of each input', () => {
75
149
  // The protocol e3 runs a task through, and the only form whose stderr
@@ -134,6 +208,189 @@ describe('exec -v: the account of each input', () => {
134
208
  assert.ok(!whole.includes('opened lazily'), `a whole unit opened its input lazily:\n${whole}`);
135
209
  assert.match(whole, /input 0: decoded whole — \+[\d.]+ (B|KB|MB) resident/);
136
210
  });
211
+ it('keeps what its keyed reads decode within EAST_PAGED_CACHE_BYTES of decoded weight, as east-c\'s and east-py\'s runners do', () => {
212
+ // Keyed reads that cycle over five segments. In the one-segment mode
213
+ // every read decodes its segment again; at the default budget the
214
+ // segments stay, but for the three the first pass, reading in key
215
+ // order, dropped behind it, which the second pass decodes again.
216
+ const DT = DictType(IntegerType, StringType);
217
+ const entries = Array.from({ length: 500 }, (_, i) => [BigInt(i), `row-${i}`]);
218
+ writeFileSync(join(dir, 'cycle.beast2'), encodeBeast2SegmentsFor(DT)(Array.from({ length: 5 }, (_, i) => new Map(entries.slice(i * 100, (i + 1) * 100)))));
219
+ const program = East.function([DT], IntegerType, ($, table) => {
220
+ const hits = $.let(0n);
221
+ $.for(East.Array.range(0n, 50n), ($, i) => {
222
+ $.if(table.has(i.remainder(5n).multiply(100n)), ($) => {
223
+ $.assign(hits, hits.add(1n));
224
+ });
225
+ });
226
+ return hits;
227
+ });
228
+ writeFileSync(join(dir, 'cycle-program.beast2'), encodeEastIR(program.toIR()));
229
+ writeFileSync(join(dir, 'cycle-unit.beast2'), encodeBeast2For(UnitType)({
230
+ work: variant('run', { program: 'cycle-program.beast2', inputs: ['cycle.beast2'], output: variant('value', 'cycle-out.beast2'), decode: variant('lazy', null) }),
231
+ platforms: [],
232
+ threads: 1n,
233
+ fetch: false,
234
+ result: 'cycle-result.beast2',
235
+ }));
236
+ const { EAST_PAGED_CACHE_BYTES: _budget, ...env } = process.env;
237
+ const decodes = (budget) => {
238
+ const run = spawnSync(process.execPath, [bin, 'exec', join(dir, 'cycle-unit.beast2'), '-v'], {
239
+ env: budget === undefined ? env : { ...env, EAST_PAGED_CACHE_BYTES: budget },
240
+ encoding: 'utf8',
241
+ });
242
+ assert.equal(run.status, 0, run.stderr);
243
+ assert.equal(decodeBeast2For(IntegerType)(readFileSync(join(dir, 'cycle-out.beast2'))), 50n);
244
+ const account = /input 0: (\d+) segment decodes of its 5 segments, 5 fences probed/.exec(run.stderr);
245
+ assert.ok(account !== null, `the reads' account:\n${run.stderr}`);
246
+ return Number(account[1]);
247
+ };
248
+ assert.equal(decodes('1'), 50, 'one segment kept: every read decodes its segment');
249
+ assert.equal(decodes(), 8, 'the default budget: each segment decoded once, and the three dropped behind again');
250
+ });
251
+ });
252
+ describe('exec: a unit whose host places segments as they are read', () => {
253
+ // A host whose store is elsewhere stages a manifest without its segments
254
+ // and places each as the runner asks for it: `<segment>.want`, answered
255
+ // with the file or with `<segment>.error`. Only a unit that says `fetch`
256
+ // asks.
257
+ const DT = DictType(IntegerType, StringType);
258
+ let dir;
259
+ let input;
260
+ let segmentDir;
261
+ let store;
262
+ let segments;
263
+ before(() => {
264
+ dir = mkdtempSync(join(tmpdir(), 'east-node-exec-fetch-'));
265
+ input = join(dir, 'table.beast2');
266
+ segmentDir = `${input}.segments`;
267
+ store = join(dir, 'store');
268
+ mkdirSync(segmentDir);
269
+ mkdirSync(store);
270
+ // Staged as e3 stages it, and every segment moved to the host's store.
271
+ const writer = new Beast2ManifestWriter(DT, {
272
+ object: (hash, bytes) => writeFileSync(join(store, `${hash}.beast2`), bytes),
273
+ manifest: (bytes) => writeFileSync(input, bytes),
274
+ });
275
+ for (let i = 0; i < 20_000; i++)
276
+ writer.add([BigInt(i), `row-${i}`]);
277
+ writer.finish();
278
+ segments = decodeCollectionManifest(new Uint8Array(readFileSync(input))).entries.map((entry) => `${entry.hash}.beast2`);
279
+ assert.ok(segments.length > 4, `several segments, got ${segments.length}`);
280
+ writeFileSync(join(dir, 'program.beast2'), encodeEastIR(East.function([DT], StringType, ($, table) => table.get(9999n)).toIR()));
281
+ });
282
+ after(() => {
283
+ rmSync(dir, { recursive: true, force: true });
284
+ });
285
+ beforeEach(() => {
286
+ // Each run starts with no segment placed, and nothing asked for.
287
+ for (const name of readdirSync(segmentDir))
288
+ rmSync(join(segmentDir, name));
289
+ rmSync(join(dir, 'out.beast2'), { force: true });
290
+ rmSync(join(dir, 'result.beast2'), { force: true });
291
+ });
292
+ /** Writes the unit: the program on the table, fetching or not, lazily or
293
+ * whole. */
294
+ function writeUnit(fetch, decode) {
295
+ const unitPath = join(dir, 'unit.beast2');
296
+ writeFileSync(unitPath, encodeBeast2For(UnitType)({
297
+ work: variant('run', {
298
+ program: 'program.beast2',
299
+ inputs: ['table.beast2'],
300
+ output: variant('value', 'out.beast2'),
301
+ decode: decode === 'lazy' ? variant('lazy', null) : variant('whole', null),
302
+ }),
303
+ platforms: [],
304
+ threads: 1n,
305
+ fetch,
306
+ result: 'result.beast2',
307
+ }));
308
+ return unitPath;
309
+ }
310
+ /**
311
+ * Executes a unit while this process is its host, placing each segment it
312
+ * asks for from the store — or, given a refusal, answering each ask with
313
+ * it — within a bounded wait.
314
+ *
315
+ * @returns the exit status, stderr, and the segments asked for, in order
316
+ */
317
+ async function execHosted(unitPath, refusal) {
318
+ const child = spawn(process.execPath, [bin, 'exec', unitPath], { stdio: ['ignore', 'ignore', 'pipe'] });
319
+ let stderr = '';
320
+ child.stderr.setEncoding('utf8');
321
+ child.stderr.on('data', (chunk) => { stderr += chunk; });
322
+ const closed = new Promise((resolve) => child.on('close', (code) => resolve(code)));
323
+ const asked = [];
324
+ const host = setInterval(() => {
325
+ for (const name of readdirSync(segmentDir)) {
326
+ if (!name.endsWith('.want'))
327
+ continue;
328
+ const segment = name.slice(0, -'.want'.length);
329
+ if (asked.includes(segment))
330
+ continue;
331
+ asked.push(segment);
332
+ const file = join(segmentDir, segment);
333
+ // Whole, or not at all: the runner reads either file the moment
334
+ // it is there, so each is written under a name of its own and
335
+ // renamed into place, as e3's host writes them.
336
+ if (refusal !== undefined) {
337
+ writeFileSync(`${file}.error.partial`, refusal);
338
+ renameSync(`${file}.error.partial`, `${file}.error`);
339
+ }
340
+ else {
341
+ copyFileSync(join(store, segment), `${file}.placing`);
342
+ renameSync(`${file}.placing`, file);
343
+ }
344
+ }
345
+ }, 2);
346
+ let timer;
347
+ try {
348
+ const status = await Promise.race([closed, new Promise((resolve) => { timer = setTimeout(() => resolve('late'), 60_000); })]);
349
+ assert.notEqual(status, 'late', `the runner did not finish within 60 s:\n${stderr}`);
350
+ return { status: status, stderr, asked };
351
+ }
352
+ finally {
353
+ clearInterval(host);
354
+ clearTimeout(timer);
355
+ if (child.exitCode === null && child.signalCode === null)
356
+ child.kill('SIGKILL');
357
+ }
358
+ }
359
+ /** The unit's recorded outcome. */
360
+ const outcome = () => decodeBeast2For(UnitResultType)(readFileSync(join(dir, 'result.beast2'))).outcome;
361
+ it('asks for the one segment a lazy read reads, and for every segment a whole decode reads', async () => {
362
+ const lazy = await execHosted(writeUnit(true, 'lazy'));
363
+ assert.equal(lazy.status, 0, lazy.stderr);
364
+ assert.equal(decodeBeast2For(StringType)(readFileSync(join(dir, 'out.beast2'))), 'row-9999');
365
+ assert.equal(lazy.asked.length, 1, `one segment asked for, of ${segments.length}: ${lazy.asked.join(', ')}`);
366
+ assert.ok(segments.includes(lazy.asked[0]), 'a segment the manifest names');
367
+ for (const name of readdirSync(segmentDir))
368
+ rmSync(join(segmentDir, name));
369
+ const whole = await execHosted(writeUnit(true, 'whole'));
370
+ assert.equal(whole.status, 0, whole.stderr);
371
+ assert.equal(decodeBeast2For(StringType)(readFileSync(join(dir, 'out.beast2'))), 'row-9999');
372
+ assert.deepEqual(whole.asked, segments, 'every segment, in the manifest\'s order');
373
+ });
374
+ it('fails in the host\'s words when the host cannot place a segment', async () => {
375
+ const refused = await execHosted(writeUnit(true, 'lazy'), 'the store is throttling');
376
+ assert.equal(refused.status, 1, refused.stderr);
377
+ const failed = outcome();
378
+ if (failed.type !== 'failed')
379
+ assert.fail(`the outcome is ${failed.type}`);
380
+ // The segment as every runner names it: `<input>.segments/<hash>.beast2`.
381
+ assert.equal(failed.value.message, `beast2 v5: manifest segment ${input}.segments/${refused.asked[0]} cannot be placed: the store is throttling`);
382
+ assert.ok(!existsSync(join(dir, 'out.beast2')), 'nothing is written');
383
+ });
384
+ it('asks for nothing for a unit that does not say fetch, and fails on the absent segment at once', async () => {
385
+ const unasked = await execHosted(writeUnit(false, 'lazy'));
386
+ assert.equal(unasked.status, 1, unasked.stderr);
387
+ assert.deepEqual(unasked.asked, []);
388
+ assert.deepEqual(readdirSync(segmentDir), [], 'no segment asked for');
389
+ const failed = outcome();
390
+ if (failed.type !== 'failed')
391
+ assert.fail(`the outcome is ${failed.type}`);
392
+ assert.match(failed.value.message, /^ENOENT: no such file or directory, open '.*\.beast2'$/);
393
+ });
137
394
  });
138
395
  describe('exec: a unit given no platform', () => {
139
396
  // A unit whose platforms are empty loads none, so a program calling one
@@ -1 +1 @@
1
- {"version":3,"file":"exec.spec.js","sourceRoot":"","sources":["../src/exec.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exec.spec.js","sourceRoot":"","sources":["../src/exec.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3J,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACH,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,QAAQ,EACR,UAAU,EACV,eAAe,EACf,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,OAAO,GAEV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE5E,wCAAwC;AACxC,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;AAE/C;sCACsC;AACtC,SAAS,UAAU,CAAC,IAAY;IAC5B,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QAC/B,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YAClD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;gBACpD,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;IACL,CAAC,CAAC;IACF,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,EAAkB,EAAE,IAAY,EAAE,KAAa;IACpE,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;QAChF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YAClD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;gBACpD,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC;QAC9G,CAAC;IACL,CAAC,CAAC;IACF,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAWD,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAC9C,IAAI,MAAc,CAAC;IACnB,IAAI,SAA6B,CAAC;IAClC,IAAI,OAAe,CAAC;IAEpB,MAAM,CAAC,GAAG,EAAE;QACR,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACzD,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YACjC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;YACxC,OAAO;QACX,CAAC;QACD,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,uBAAuB,CAAC,CAAC;QACvH,qEAAqE;QACrE,0CAA0C;QAC1C,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;QAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,sBAAsB,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE;YAClF,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE;YAC1C,QAAQ,EAAE,MAAM;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,+BAA+B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9H,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,EAAE;QACP,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;QACjG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,wBAAwB,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,KAAmB,CAAC;YACnG,gDAAgD;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YACvG,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,UAAU,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjG,MAAM,MAAM,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;YACzF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EACpD,GAAG,IAAI,iBAAiB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACtH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,EAAE,GAAG,IAAI,wBAAwB,CAAC,CAAC;YAClE,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,CAAC;gBAClE,MAAM,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAClH,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM;gBAAE,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,KAAK,IAAI,iBAAiB,CAAC,CAAC;QACnH,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kHAAkH,EAAE,KAAK,IAAI,EAAE;QAC9H,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;QACjG,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC/C,uEAAuE;QACvE,kDAAkD;QAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACjD,IAAI,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,KAAmB,CAAC;gBACnG,yDAAyD;gBACzD,8DAA8D;gBAC9D,8DAA8D;gBAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;gBAElE,4DAA4D;gBAC5D,wDAAwD;gBACxD,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9D,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC/D,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;gBAC1E,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,eAAe,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC3J,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,KAAK,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC1G,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,EAAE,GAAG,IAAI,kCAAkC,CAAC,CAAC;gBAC5E,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,IAAI,kDAAkD,CAAC,CAAC;gBAChG,2CAA2C;gBAC3C,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;gBAAS,CAAC;YACP,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;;gBAC9D,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC;QACpD,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAChD,sEAAsE;IACtE,wDAAwD;IACxD,IAAI,GAAW,CAAC;IAEhB,MAAM,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,EAAE;QACP,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE,GAAG,EAAE;QAChG,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC7C,qEAAqE;QACrE,iCAAiC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,GAAG,KAAK,WAAW,CAAC;QACpC,SAAS,CAAC,OAAO,CAAC,CAAC;QACnB,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,EAAE,EAAE;YACxC,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,SAAS,CAAC,EAAE,KAAK,CAAC;YAC9E,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC;SACnD,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,MAAM,EAAE,CAAC;QAChB,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChI,MAAM,SAAS,GAAG,CAAC,MAAwB,EAAQ,EAAE;YACjD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAC9D,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE;oBACjB,OAAO,EAAE,gBAAgB;oBACzB,MAAM,EAAE,CAAC,cAAc,CAAC;oBACxB,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC;oBACtC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;iBAC7E,CAAC;gBACF,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,eAAe;aAC1B,CAAC,CAAC,CAAC;QACR,CAAC,CAAC;QAEF,MAAM,IAAI,GAAG,CAAC,GAAG,KAAe,EAAU,EAAE;YACxC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YACjH,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACxC,OAAO,GAAG,CAAC,MAAM,CAAC;QACtB,CAAC,CAAC;QACF,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI;YACrE,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3G,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,kDAAkD,CAAC,CAAC;QAC5G,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,KAAK,MAAM,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EACjF,8DAA8D,OAAO,EAAE,CAAC,CAAC;QAC7E,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,6BAA6B,OAAO,EAAE,CAAC,CAAC;QAC9F,oEAAoE;QACpE,uBAAuB;QACvB,MAAM,CAAC,EAAE,CAAC,oFAAoF,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,6BAA6B,OAAO,EAAE,CAAC,CAAC;QACtJ,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,wCAAwC,CAAC,CAAC;QAElF,sEAAsE;QACtE,0CAA0C;QAC1C,SAAS,CAAC,OAAO,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,0CAA0C,KAAK,EAAE,CAAC,CAAC;QAC/F,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,sDAAsD,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2HAA2H,EAAE,GAAG,EAAE;QACjI,qEAAqE;QACrE,kEAAkE;QAClE,kEAAkE;QAClE,iEAAiE;QACjE,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAqB,CAAC,CAAC;QACnG,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,uBAAuB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3J,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YAC1D,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACtC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;oBAClD,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/E,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;YACpE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAChK,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,qBAAqB;SAChC,CAAC,CAAC,CAAC;QACJ,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;QAChE,MAAM,OAAO,GAAG,CAAC,MAAe,EAAU,EAAE;YACxC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,EAAE,IAAI,CAAC,EAAE;gBACzF,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE;gBAC5E,QAAQ,EAAE,MAAM;aACnB,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC7F,MAAM,OAAO,GAAG,mEAAmE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrG,MAAM,CAAC,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE,wBAAwB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAClE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,kDAAkD,CAAC,CAAC;QACnF,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,mFAAmF,CAAC,CAAC;IACpH,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0DAA0D,EAAE,GAAG,EAAE;IACtE,yEAAyE;IACzE,wEAAwE;IACxE,yEAAyE;IACzE,QAAQ;IACR,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC7C,IAAI,GAAW,CAAC;IAChB,IAAI,KAAa,CAAC;IAClB,IAAI,UAAkB,CAAC;IACvB,IAAI,KAAa,CAAC;IAClB,IAAI,QAAkB,CAAC;IAEvB,MAAM,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAC3D,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAClC,UAAU,GAAG,GAAG,KAAK,WAAW,CAAC;QACjC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC3B,SAAS,CAAC,UAAU,CAAC,CAAC;QACtB,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,uEAAuE;QACvE,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,EAAE,EAAE;YACxC,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,SAAS,CAAC,EAAE,KAAK,CAAC;YAC5E,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC;SACnD,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,MAAM,EAAE,CAAC;QAChB,QAAQ,GAAG,wBAAwB,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC;QACxH,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,yBAAyB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtI,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,EAAE;QACP,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,EAAE;QACZ,iEAAiE;QACjE,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH;iBACa;IACb,SAAS,SAAS,CAAC,KAAc,EAAE,MAAwB;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAC1C,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE;gBACjB,OAAO,EAAE,gBAAgB;gBACzB,MAAM,EAAE,CAAC,cAAc,CAAC;gBACxB,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC;gBACtC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;aAC7E,CAAC;YACF,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,KAAK;YACL,MAAM,EAAE,eAAe;SAC1B,CAAC,CAAC,CAAC;QACJ,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,OAAgB;QACxD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACxG,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnG,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;YAC1B,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,SAAS;gBACtC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/C,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,SAAS;gBACtC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACvC,gEAAgE;gBAChE,8DAA8D;gBAC9D,gDAAgD;gBAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBACxB,aAAa,CAAC,GAAG,IAAI,gBAAgB,EAAE,OAAO,CAAC,CAAC;oBAChD,UAAU,CAAC,GAAG,IAAI,gBAAgB,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACJ,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,UAAU,CAAC,CAAC;oBACtD,UAAU,CAAC,GAAG,IAAI,UAAU,EAAE,IAAI,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;QACL,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,IAAI,KAAiC,CAAC;QACtC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE,GAAG,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,2CAA2C,MAAM,EAAE,CAAC,CAAC;YACrF,OAAO,EAAE,MAAM,EAAE,MAAuB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC9D,CAAC;gBAAS,CAAC;YACP,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpF,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,MAAM,OAAO,GAAG,GAAgB,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAErH,EAAE,CAAC,wFAAwF,EAAE,KAAK,IAAI,EAAE;QACpG,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC7F,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,6BAA6B,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7G,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,8BAA8B,CAAC,CAAC;QAE7E,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC7F,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,yCAAyC,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,yBAAyB,CAAC,CAAC;QACrF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3E,0EAA0E;QAC1E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,+BAA+B,KAAK,aAAa,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC;QAClJ,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8FAA8F,EAAE,KAAK,IAAI,EAAE;QAC1G,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,sBAAsB,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,wDAAwD,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC5C,wEAAwE;IACxE,oEAAoE;IACpE,IAAI,GAAW,CAAC;IAEhB,MAAM,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,2BAA2B,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,EAAE;QACP,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACjE,oDAAoD;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/D,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;QACH,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzE,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC9D,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAChJ,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,eAAe;SAC1B,CAAC,CAAC,CAAC;QAEJ,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACvG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;QAC9F,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7E,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACnD,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACzC,IAAI,GAAW,CAAC;IAEhB,MAAM,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,EAAE;QACP,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACrC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,YAAY,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1G,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
package/dist/loader.d.ts 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 { EastIR, AsyncEastIR, type EastTypeValue } from '@elaraai/east';
5
+ import { type AsyncEastIR, type EastIR, type EastTypeValue, type UnitIO } from '@elaraai/east';
6
6
  import type { PlatformFunction, IR, ValueTypeOf } from '@elaraai/east/internal';
7
7
  /**
8
8
  * Metadata about a loaded platform package.
@@ -40,6 +40,64 @@ export declare function loadPlatformWithMetadata(packageName: string): Promise<P
40
40
  * @returns Combined array of all platform functions
41
41
  */
42
42
  export declare function loadPlatforms(packageNames: string[]): Promise<PlatformFunction[]>;
43
+ /**
44
+ * A staged manifest's segment file, present: asked of the host when it is
45
+ * absent and the host places segments as they are read (`fetch`), by creating
46
+ * `<file>.want` and waiting for the host to place the file or to write
47
+ * `<file>.error`, why it cannot — each whole, renamed into place, since this
48
+ * reads either the moment it is there. Without `fetch`, an absent file is
49
+ * returned as it is, for its read to fail as ever.
50
+ *
51
+ * @param file - the segment's file, `<input>.segments/<hash>.beast2`
52
+ * @param fetch - whether the unit's host places segments as they are read
53
+ * @returns the file
54
+ * @throws {Error} When the host writes why it cannot place the segment.
55
+ */
56
+ export declare function segmentFile(file: string, fetch: boolean): string;
57
+ /**
58
+ * Whether this process's units' hosts place segments as they are read:
59
+ * {@link FETCH_SEGMENTS_ENV} is `1`, which `exec` sets from its unit's
60
+ * `fetch`, and which a host never sets for a runner.
61
+ *
62
+ * @returns whether an absent segment of a staged manifest is asked for
63
+ */
64
+ export declare function fetchingSegments(): boolean;
65
+ /**
66
+ * The process's resident memory now, in bytes: the gauge a lazily opened
67
+ * input weighs a read of it whole by, and the verbose account weighs an input
68
+ * decoded whole by.
69
+ *
70
+ * @returns the resident set size
71
+ */
72
+ export declare function residentBytes(): number;
73
+ /** The variable east-c's pager reads its cache's budget from as it opens an
74
+ * input, which this runner reads for its own. */
75
+ export declare const PAGED_CACHE_BYTES_ENV = "EAST_PAGED_CACHE_BYTES";
76
+ /**
77
+ * The decoded weight, in bytes, a lazily opened input's pager keeps of the
78
+ * segments its keyed and index reads decode (`v5/SPEC.md`, "The pager's
79
+ * cache"): {@link PAGED_CACHE_BYTES_ENV}, read as east-c's pager reads it, so a
80
+ * test runs all three runners in one mode — `1` keeps one segment.
81
+ *
82
+ * @returns the budget, or `undefined` — the pager's default, 256 MiB — when
83
+ * the variable is unset or not a whole number in decimal digits, which
84
+ * east-c ignores too
85
+ */
86
+ export declare function pagedCacheBytes(): number | undefined;
87
+ /**
88
+ * The {@link UnitIO} over this machine's files, by the paths it is given — a
89
+ * relative one taken against the working directory, as every `fs` call takes
90
+ * it. `exec` hands it a unit whose paths it resolved against the unit file's
91
+ * directory first.
92
+ *
93
+ * @remarks
94
+ * A file's size and each ranged read open the file and close it after, so a
95
+ * lazily opened input holds no descriptor for its life, and a body that
96
+ * iterates every segment of a large manifest runs out of none. A missing file
97
+ * fails as opening it fails, and a directory is no file. A segment asked for
98
+ * is asked of the host through `<file>.want` ({@link segmentFile}).
99
+ */
100
+ export declare const nodeUnitIO: UnitIO;
43
101
  /**
44
102
  * Loads an IR file and returns the parsed IR.
45
103
  *
@@ -60,19 +118,19 @@ export declare function loadIR(filePath: string): ValueTypeOf<IR>;
60
118
  * map). Prefer this over {@link loadIR} when the caller will compile + run
61
119
  * the IR, so that error locations resolve end-to-end.
62
120
  *
63
- * Supports `.beast2` / `.beast` (source map read from the blob), `.json`
64
- * (source map read from the `{ir, source_map}` wrapper format), and `.east`
65
- * (no source map available — field stays null).
121
+ * Supports `.beast2` / `.beast` (source map read from the blob), `.json` and
122
+ * `.east` (no source map available — field stays null): east's
123
+ * `loadUnitProgram` over this machine's files.
66
124
  */
67
125
  export declare function loadEastIR(filePath: string): EastIR<any, any> | AsyncEastIR<any, any>;
68
126
  /**
69
- * Loads input data from a file.
70
- *
71
- * The type of the input must be provided to decode correctly.
127
+ * Loads input data from a file, decoded whole.
72
128
  *
73
129
  * Task inputs decode **frozen**: deeply immutable from construction, with
74
130
  * mutating builtins throwing the uniform runtime error naming the copy-first
75
- * remedy. Frozen collections compare by value under East `Is`.
131
+ * remedy. Frozen collections compare by value under East `Is`. A manifest is
132
+ * the collection it names, its segments spliced from the files beside it, each
133
+ * asked of the host when it places segments as they are read.
76
134
  *
77
135
  * @param filePath - Path to the input file
78
136
  * @param type - The expected East type of the input
@@ -91,18 +149,18 @@ export declare function loadInput(filePath: string, type: EastTypeValue): unknow
91
149
  export declare function lazyInputBytesRead(value: unknown): number | undefined;
92
150
  /**
93
151
  * Opens an input file as a lazy pager-backed collection value, when it can
94
- * be: a beast2 v5 collection blob carrying a segment index. Size, iteration
95
- * and keyed reads are then served from the index with O(segment) decoded
96
- * memory; any other operation hydrates transparently to the eager value's
97
- * exact semantics, and what that added to the process's resident memory is
98
- * kept for the runner's verbose account.
99
- *
100
- * The file is never buffered whole: the value pages segment frames from an
101
- * open descriptor through positioned reads (a Set or Dict input's first
102
- * keyed read probes every segment's fence once), so its residency is the
103
- * page cache and the process heap holds one decoded segment at a time — the
104
- * difference between an out-of-memory kill and graceful eviction for an
105
- * input near the runner's memory limit.
152
+ * be: a beast2 v5 collection blob carrying a segment index, or a manifest over
153
+ * its segment files. Size, iteration and keyed reads are then served from the
154
+ * index with O(segment) decoded memory; any other operation hydrates
155
+ * transparently to the eager value's exact semantics, and what that added to
156
+ * the process's resident memory is kept for the runner's verbose account.
157
+ *
158
+ * The file is never buffered whole: the value pages segment frames from it
159
+ * through positioned reads (a Set or Dict input's first keyed read probes
160
+ * every segment's fence once), so its residency is the page cache and the
161
+ * process heap holds one decoded segment at a time — the difference between an
162
+ * out-of-memory kill and graceful eviction for an input near the runner's
163
+ * memory limit.
106
164
  *
107
165
  * Returns `undefined` when the file cannot be served lazily (a non-beast2
108
166
  * format, a v4 or index-less blob, a non-collection root, cross-segment
@@ -114,29 +172,14 @@ export declare function lazyInputBytesRead(value: unknown): number | undefined;
114
172
  * mutated (no write through a freshly decoded element to drop) and frozen
115
173
  * collections compare by value. Only `Ref` (an identity cell even when
116
174
  * frozen) and function shapes fall back to the eager (frozen) decode.
117
- * {@link isBeast2LazySafe} is the gate.
175
+ *
176
+ * Its pager keeps the segments keyed and index reads decode, up to
177
+ * {@link pagedCacheBytes} of decoded weight.
118
178
  *
119
179
  * @param filePath - Path to the input file
120
180
  * @returns The lazy collection value, or `undefined` to fall back
121
181
  */
122
182
  export declare function loadInputLazy(filePath: string): unknown | undefined;
123
- /** The directory a manifest-rooted input's segment files sit in, beside the
124
- * file itself: `<input>.segments/<hash>.beast2`. The convention is shared
125
- * with e3-core's staging and with the other runtimes. */
126
- export declare function segmentDirFor(filePath: string): string;
127
- /**
128
- * A staged manifest's segment file, present: asked of the host when it is
129
- * absent and the host places segments as they are read ({@link
130
- * FETCH_SEGMENTS_ENV} is `1`), by creating `<file>.want` and waiting for the
131
- * host to place the file, whole, or to write `<file>.error`, why it cannot.
132
- * Without the variable, an absent file is returned as it is, for its read to
133
- * fail as ever.
134
- *
135
- * @param file - the segment's file, `<input>.segments/<hash>.beast2`
136
- * @returns the file
137
- * @throws {Error} When the host writes why it cannot place the segment.
138
- */
139
- export declare function segmentFile(file: string): string;
140
183
  /**
141
184
  * The bytes an input stands for: the collection a manifest-rooted file names
142
185
  * — the manifest and every segment file — or any other file's own size.
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAkBH,MAAM,EACN,WAAW,EACX,KAAK,aAAa,EAErB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAWhF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,GAAG,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAsDD;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAyCnF;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsB7F;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CASvF;AAmDD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAgCxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAuBrF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CA2BxE;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAErE;AAqBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAwBnE;AAED;;0DAE0D;AAC1D,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD;AAKD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAchD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAanD"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAMH,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,MAAM,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAmBhF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,GAAG,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AA4ED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA0CnF;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsB7F;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CASvF;AAgCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAchE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;kDACkD;AAClD,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAE9D;;;;;;;;;GASG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAGpD;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,EAAE,MAqCxB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAgCxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAErF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAExE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAErE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAOnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnD"}