@elaraai/e3 1.0.4 → 1.0.6

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 CHANGED
@@ -89,8 +89,9 @@ Dual AGPL-3.0 / Commercial. See [LICENSE.md](./LICENSE.md).
89
89
  - [@elaraai/east-node-io](https://www.npmjs.com/package/@elaraai/east-node-io): SQLite, PostgreSQL, MySQL, MongoDB, Redis, S3, FTP, SFTP, XLSX, XML, compression
90
90
  - [@elaraai/east-node-cli](https://www.npmjs.com/package/@elaraai/east-node-cli): CLI for running East IR programs in Node.js
91
91
 
92
- - **[East C](https://github.com/elaraai/east-workspace/tree/main/libs/east-c)**: C11 native runtime for executing East IR. Tarballed for `linux-x64` and `linux-arm64`, attached to each GitHub Release.
93
- - `east-c`: Core runtimetype system, IR interpreter, 200+ builtins, serialization (Beast2, JSON, CSV, East text)
92
+ - **[East C](https://github.com/elaraai/east-workspace/tree/main/libs/east-c)**: C11 native runtime for executing East IR. Distributed via npm (launcher + per-platform optional dependencies) and as tarballs on each GitHub Release.
93
+ - [@elaraai/east-c-cli](https://www.npmjs.com/package/@elaraai/east-c-cli): npm launcherinstalls the matching native binary as an optional dependency
94
+ - `east-c`: Core runtime — type system, IR interpreter, builtins, serialization (Beast2, JSON, CSV, East text)
94
95
  - `east-c-std`: Console, FileSystem, Fetch, Crypto, Time, Path, Random
95
96
  - `east-c-cli`: CLI for running East IR programs natively
96
97
 
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/export.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,YAAY,CAAC;AAE1D;;;;;;;;;;;;;;;GAeG;AAEH,wBAAsB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6KlH;AAOD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKrE"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/export.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,YAAY,CAAC;AAG1D;;;;;;;;;;;;;;;GAeG;AAEH,wBAAsB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmMlH;AAOD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKrE"}
@@ -15,7 +15,8 @@ import * as fs from 'node:fs';
15
15
  import { createHash } from 'node:crypto';
16
16
  import yazl from 'yazl';
17
17
  import { variant, encodeBeast2For, encodeEastIR, EastIR, AsyncEastIR, printIdentifier, SortedMap, toEastTypeValue } from '@elaraai/east';
18
- import { DatasetRefType, PackageObjectType, TaskObjectType } from '@elaraai/e3-types';
18
+ import { DatasetRefType, PackageObjectType, TaskObjectType, FunctionObjectType } from '@elaraai/e3-types';
19
+ import { runnerToVariant } from './runner.js';
19
20
  /**
20
21
  * Exports a package to a .zip bundle.
21
22
  *
@@ -153,6 +154,25 @@ export async function export_(pkg, outputPath) {
153
154
  throw new Error(`Unknown package item kind: ${item.kind}`);
154
155
  }
155
156
  }
157
+ // Write function objects (functions are not in pkg.contents — they have
158
+ // no deps and never enter the data tree). Mirrors how tasks are written:
159
+ // body IR as a content object, then a small FunctionObject pointing at it.
160
+ const functions = new SortedMap(); // name -> function object hash
161
+ const functionEncoder = encodeBeast2For(FunctionObjectType);
162
+ for (const [fname, fdef] of Object.entries(pkg.functions)) {
163
+ const bodyIrData = encodeEastIR(fdef.body);
164
+ const bodyIrHash = addObject(zipfile, Buffer.from(bodyIrData));
165
+ // The FunctionObject stores homoiconic type VALUES (EastTypeType), not
166
+ // the raw TS EastType definitions Expr.type yields.
167
+ const fnObject = {
168
+ bodyIr: bodyIrHash,
169
+ inputTypes: fdef.inputTypes.map((t) => toEastTypeValue(t)),
170
+ outputType: toEastTypeValue(fdef.outputType),
171
+ runner: runnerToVariant(fdef.runner),
172
+ };
173
+ const fnHash = addObject(zipfile, Buffer.from(functionEncoder(fnObject)));
174
+ functions.set(fname, fnHash);
175
+ }
156
176
  // Get the root structure
157
177
  const rootStructure = structures.get('');
158
178
  if (!rootStructure) {
@@ -165,6 +185,7 @@ export async function export_(pkg, outputPath) {
165
185
  structure: rootStructure,
166
186
  refs,
167
187
  },
188
+ functions,
168
189
  };
169
190
  const packageObjectEncoder = encodeBeast2For(PackageObjectType);
170
191
  const packageObjectData = packageObjectEncoder(packageObject);
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/export.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
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
+ /**
6
+ * Named function definitions for e3 packages.
7
+ *
8
+ * `e3.function` declares a named, typed function stored in a package and
9
+ * invoked by name with argument values over the CLI (`e3 call`) and HTTP
10
+ * API. It is e3's "stored procedure" / RPC method: not wired to datasets,
11
+ * not part of the dataflow graph, and its result is returned inline to the
12
+ * caller — nothing durable is written by a call.
13
+ */
14
+ import type { AsyncFunctionExpr, CallableAsyncFunctionExpr, CallableFunctionExpr, EastType, FunctionExpr } from '@elaraai/east';
15
+ import type { FunctionDef } from './types.js';
16
+ import { type FunctionRunner } from './runner.js';
17
+ /**
18
+ * Defines a named function stored in a package.
19
+ *
20
+ * The body is an ordinary East function (sync or async); its signature IS
21
+ * the parameter list — `inputTypes` / `outputType` are inferred from the
22
+ * East function, so there is no separate type array to keep in sync.
23
+ *
24
+ * Unlike a task, a function creates no dataset tree nodes and no command IR:
25
+ * its body IR is stored directly as a content object, its signature lives on
26
+ * the function object, and the executor builds the runner argv directly at
27
+ * call time (which is what enables a request-time runner override).
28
+ *
29
+ * @typeParam Name - Function name (literal type)
30
+ * @typeParam Inputs - Positional parameter types
31
+ * @typeParam Output - Return type
32
+ * @param name - Function name (unique within the package)
33
+ * @param fn - The East function body. Pure compute — no dataset reads; may
34
+ * be async (platform calls / IO).
35
+ * @param config - Optional runner selection. Only the known runtimes are
36
+ * allowed (no `custom` raw-argv runner — see {@link FunctionRunner}).
37
+ * @returns A FunctionDef to pass to `e3.package`
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const forecast = e3.function(
42
+ * 'forecast',
43
+ * East.function([IntegerType, FloatType], FloatType, ($, periods, growthRate) => {
44
+ * ...
45
+ * }),
46
+ * { runner: { runtime: 'east-py', platforms: ['east-py-datascience'] } },
47
+ * );
48
+ *
49
+ * const pkg = e3.package('planning', '1.0.0', forecast);
50
+ * ```
51
+ */
52
+ export declare function function_<Name extends string, Inputs extends EastType[], Output extends EastType>(name: Name, fn: FunctionExpr<Inputs, Output> | CallableFunctionExpr<Inputs, Output> | AsyncFunctionExpr<Inputs, Output> | CallableAsyncFunctionExpr<Inputs, Output>, config?: {
53
+ runner?: FunctionRunner;
54
+ }): FunctionDef<Inputs, Output>;
55
+ //# sourceMappingURL=function.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../src/function.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,yBAAyB,EACzB,oBAAoB,EACpB,QAAQ,EACR,YAAY,EACb,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,SAAS,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,QAAQ,EAAE,EAAE,MAAM,SAAS,QAAQ,EAC/F,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7C,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,cAAc,CAAA;CAAE,GACnC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC"}
@@ -0,0 +1,27 @@
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 { Expr } from '@elaraai/east';
6
+ import { DEFAULT_RUNNER, runnerToVariant } from './runner.js';
7
+ export function function_(name, fn, config) {
8
+ if (!name) {
9
+ throw new Error('e3.function requires a non-empty name');
10
+ }
11
+ const runner = config?.runner ?? DEFAULT_RUNNER;
12
+ // Validate eagerly so a bad runner fails at definition time, not export time.
13
+ runnerToVariant(runner);
14
+ // Keep the full EastIR bundle (IR + source map) so export.ts can encode
15
+ // with encodeEastIR and preserve source locations.
16
+ const eastIR = fn.toIR();
17
+ const fnType = Expr.type(fn);
18
+ return {
19
+ kind: 'function',
20
+ name,
21
+ body: eastIR,
22
+ inputTypes: fnType.inputs,
23
+ outputType: fnType.output,
24
+ runner,
25
+ };
26
+ }
27
+ //# sourceMappingURL=function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.js","sourceRoot":"","sources":["../../src/function.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAuB,MAAM,aAAa,CAAC;AA6CnF,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,EAAwD,EACxD,MAAoC;IAEpC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,cAAc,CAAC;IAChD,8EAA8E;IAC9E,eAAe,CAAC,MAAM,CAAC,CAAC;IAExB,wEAAwE;IACxE,mDAAmD;IACnD,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAe,CAA6C,CAAC;IAEtF,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI;QACJ,IAAI,EAAE,MAAa;QACnB,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
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
+ export {};
6
+ //# sourceMappingURL=function.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.spec.d.ts","sourceRoot":"","sources":["../../src/function.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,184 @@
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 { describe, it, before, after } from 'node:test';
6
+ import * as assert from 'node:assert';
7
+ import * as fs from 'node:fs';
8
+ import * as os from 'node:os';
9
+ import * as path from 'node:path';
10
+ import yauzl from 'yauzl';
11
+ import { East, IntegerType, FloatType, StringType, StructType, DictType, decodeBeast2For, encodeBeast2For, toEastTypeValue, variant, } from '@elaraai/east';
12
+ import { PackageObjectType, PackageDataType, FunctionObjectType, decodePackageObject, } from '@elaraai/e3-types';
13
+ import { function_ } from './function.js';
14
+ import { runnerToVariant } from './runner.js';
15
+ import { package_ } from './package.js';
16
+ import { export_ } from './export.js';
17
+ import { input } from './input.js';
18
+ import { task } from './task.js';
19
+ /**
20
+ * Helper to read a zip file and return entries as a map of path -> buffer
21
+ */
22
+ async function readZip(zipPath) {
23
+ return new Promise((resolve, reject) => {
24
+ yauzl.open(zipPath, { lazyEntries: true }, (err, zipfile) => {
25
+ if (err)
26
+ return reject(err);
27
+ if (!zipfile)
28
+ return reject(new Error('No zipfile'));
29
+ const entries = new Map();
30
+ zipfile.readEntry();
31
+ zipfile.on('entry', (entry) => {
32
+ if (/\/$/.test(entry.fileName)) {
33
+ zipfile.readEntry();
34
+ }
35
+ else {
36
+ zipfile.openReadStream(entry, (err, readStream) => {
37
+ if (err)
38
+ return reject(err);
39
+ if (!readStream)
40
+ return reject(new Error('No read stream'));
41
+ const chunks = [];
42
+ readStream.on('data', (chunk) => chunks.push(chunk));
43
+ readStream.on('end', () => {
44
+ entries.set(entry.fileName, Buffer.concat(chunks));
45
+ zipfile.readEntry();
46
+ });
47
+ });
48
+ }
49
+ });
50
+ zipfile.on('end', () => resolve(entries));
51
+ zipfile.on('error', reject);
52
+ });
53
+ });
54
+ }
55
+ function objectEntry(entries, hash) {
56
+ return entries.get(`objects/${hash.slice(0, 2)}/${hash.slice(2)}.beast2`);
57
+ }
58
+ describe('function_', () => {
59
+ it('infers inputTypes/outputType from the East function', () => {
60
+ const fn = function_('forecast', East.function([IntegerType, FloatType], FloatType, ($, periods, rate) => rate.multiply(periods.toFloat())));
61
+ assert.strictEqual(fn.kind, 'function');
62
+ assert.strictEqual(fn.name, 'forecast');
63
+ assert.deepStrictEqual(toEastTypeValue(fn.inputTypes[0]), toEastTypeValue(IntegerType));
64
+ assert.deepStrictEqual(toEastTypeValue(fn.inputTypes[1]), toEastTypeValue(FloatType));
65
+ assert.deepStrictEqual(toEastTypeValue(fn.outputType), toEastTypeValue(FloatType));
66
+ // Defaults to DEFAULT_RUNNER (east-node + east-node-std)
67
+ assert.deepStrictEqual(runnerToVariant(fn.runner), variant('east_node', {
68
+ platforms: ['@elaraai/east-node-std'],
69
+ }));
70
+ });
71
+ it('rejects an empty name', () => {
72
+ assert.throws(() => function_('', East.function([IntegerType], IntegerType, ($, x) => x)), /non-empty name/);
73
+ });
74
+ it('rejects a custom runner at definition time', () => {
75
+ assert.throws(() => function_('bad', East.function([IntegerType], IntegerType, ($, x) => x),
76
+ // Cast: the typed signature already forbids this — verify the runtime backstop
77
+ { runner: { runtime: 'custom', command: ['python3'] } }), /custom/);
78
+ });
79
+ });
80
+ describe('runnerToVariant', () => {
81
+ it('maps each known runtime and coalesces missing platforms', () => {
82
+ assert.deepStrictEqual(runnerToVariant({ runtime: 'east-py' }), variant('east_py', { platforms: [] }));
83
+ assert.deepStrictEqual(runnerToVariant({ runtime: 'east-c', platforms: ['east-c-std'] }), variant('east_c', { platforms: ['east-c-std'] }));
84
+ });
85
+ it('collapses { custom: name } platform entries to plain strings', () => {
86
+ assert.deepStrictEqual(runnerToVariant({ runtime: 'east-py', platforms: ['east-py-std', { custom: 'my-platform' }] }), variant('east_py', { platforms: ['east-py-std', 'my-platform'] }));
87
+ });
88
+ it('rejects the custom runtime', () => {
89
+ assert.throws(() => runnerToVariant({ runtime: 'custom', command: ['bash', '-c', 'true'] }), /custom/);
90
+ });
91
+ });
92
+ describe('package_ with functions', () => {
93
+ it('collects functions by name, separate from contents', () => {
94
+ const fn = function_('double', East.function([IntegerType], IntegerType, ($, x) => x.multiply(2n)));
95
+ const pkg = package_('fns', '1.0.0', fn);
96
+ assert.strictEqual(pkg.functions['double'], fn);
97
+ assert.strictEqual(pkg.contents.length, 0);
98
+ });
99
+ it('merges functions from nested packages', () => {
100
+ const fn = function_('double', East.function([IntegerType], IntegerType, ($, x) => x.multiply(2n)));
101
+ const inner = package_('inner', '1.0.0', fn);
102
+ const outer = package_('outer', '1.0.0', inner);
103
+ assert.strictEqual(outer.functions['double'], fn);
104
+ });
105
+ });
106
+ describe('export_ with functions', () => {
107
+ let tempDir;
108
+ before(() => {
109
+ tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'e3-function-export-'));
110
+ });
111
+ after(() => {
112
+ fs.rmSync(tempDir, { recursive: true, force: true });
113
+ });
114
+ it('round-trips a FunctionObject through the bundle', async () => {
115
+ const greeting = input('greeting', StringType, 'hello');
116
+ const shout = task('shout', [greeting], East.function([StringType], StringType, ($, s) => s));
117
+ const double = function_('double', East.function([IntegerType], IntegerType, ($, x) => x.multiply(2n)), { runner: { runtime: 'east-node', platforms: ['@elaraai/east-node-std'] } });
118
+ const pkg = package_('fn-pkg', '1.0.0', shout, double);
119
+ const zipPath = path.join(tempDir, 'fn-pkg-1.0.0.zip');
120
+ await export_(pkg, zipPath);
121
+ const entries = await readZip(zipPath);
122
+ // Resolve the package object from the ref
123
+ const refData = entries.get('packages/fn-pkg/1.0.0');
124
+ assert.ok(refData, 'package ref missing');
125
+ const pkgHash = refData.toString('utf-8').trim();
126
+ const pkgData = objectEntry(entries, pkgHash);
127
+ assert.ok(pkgData, 'package object missing');
128
+ const pkgObject = decodeBeast2For(PackageObjectType)(pkgData);
129
+ // tasks/data unchanged by the function
130
+ assert.ok(pkgObject.tasks.get('shout'), 'task missing');
131
+ assert.ok(pkgObject.data.refs.get('inputs/greeting'), 'dataset ref missing');
132
+ // functions map points at a FunctionObject
133
+ const fnHash = pkgObject.functions.get('double');
134
+ assert.ok(fnHash, 'functions map missing entry');
135
+ const fnData = objectEntry(entries, fnHash);
136
+ assert.ok(fnData, 'FunctionObject missing from bundle');
137
+ const fnObject = decodeBeast2For(FunctionObjectType)(fnData);
138
+ // Note: decoded type values lack toEastTypeValue's cache symbol, so
139
+ // compare the structural fields rather than deep-equality on the object.
140
+ assert.strictEqual(fnObject.inputTypes.length, 1);
141
+ assert.strictEqual(fnObject.inputTypes[0].type, 'Integer');
142
+ assert.strictEqual(fnObject.outputType.type, 'Integer');
143
+ assert.deepStrictEqual(fnObject.runner, variant('east_node', { platforms: ['@elaraai/east-node-std'] }));
144
+ // The body IR object itself is in the bundle
145
+ assert.ok(objectEntry(entries, fnObject.bodyIr), 'bodyIr object missing from bundle');
146
+ });
147
+ it('produces identical output for the same package (deterministic)', async () => {
148
+ const fn = function_('double', East.function([IntegerType], IntegerType, ($, x) => x.multiply(2n)));
149
+ const pkg = package_('det-pkg', '1.0.0', fn);
150
+ const zip1 = path.join(tempDir, 'det1.zip');
151
+ const zip2 = path.join(tempDir, 'det2.zip');
152
+ await export_(pkg, zip1);
153
+ await export_(pkg, zip2);
154
+ assert.deepStrictEqual(fs.readFileSync(zip1), fs.readFileSync(zip2));
155
+ });
156
+ });
157
+ describe('decodePackageObject', () => {
158
+ it('decodes the current format', () => {
159
+ const bytes = encodeBeast2For(PackageObjectType)({
160
+ tasks: new Map([['t', 'a'.repeat(64)]]),
161
+ data: { structure: variant('struct', new Map()), refs: new Map() },
162
+ functions: new Map([['f', 'b'.repeat(64)]]),
163
+ });
164
+ const decoded = decodePackageObject(bytes);
165
+ assert.strictEqual(decoded.functions.get('f'), 'b'.repeat(64));
166
+ });
167
+ it('decodes a pre-functions (legacy) package with functions defaulted empty', () => {
168
+ const LegacyPackageObjectType = StructType({
169
+ tasks: DictType(StringType, StringType),
170
+ data: PackageDataType,
171
+ });
172
+ const bytes = encodeBeast2For(LegacyPackageObjectType)({
173
+ tasks: new Map([['t', 'a'.repeat(64)]]),
174
+ data: { structure: variant('struct', new Map()), refs: new Map() },
175
+ });
176
+ // The strict decoder rejects old bytes...
177
+ assert.throws(() => decodeBeast2For(PackageObjectType)(bytes));
178
+ // ...but the tolerant decoder accepts them
179
+ const decoded = decodePackageObject(bytes);
180
+ assert.strictEqual(decoded.tasks.get('t'), 'a'.repeat(64));
181
+ assert.strictEqual(decoded.functions.size, 0);
182
+ });
183
+ });
184
+ //# sourceMappingURL=function.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.spec.js","sourceRoot":"","sources":["../../src/function.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,IAAI,EACJ,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,eAAe,EACf,eAAe,EACf,eAAe,EACf,OAAO,GACR,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;GAEG;AACH,KAAK,UAAU,OAAO,CAAC,OAAe;IACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YAC1D,IAAI,GAAG;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,OAAO;gBAAE,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YAErD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC1C,OAAO,CAAC,SAAS,EAAE,CAAC;YAEpB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5B,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/B,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;wBAChD,IAAI,GAAG;4BAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC5B,IAAI,CAAC,UAAU;4BAAE,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;wBAE5D,MAAM,MAAM,GAAa,EAAE,CAAC;wBAC5B,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;wBACrD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;4BACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;4BACnD,OAAO,CAAC,SAAS,EAAE,CAAC;wBACtB,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,OAA4B,EAAE,IAAY;IAC7D,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC5E,CAAC;AAED,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,EAAE,GAAG,SAAS,CAClB,UAAU,EACV,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CACtE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CACjC,CACF,CAAC;QAEF,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QACvF,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QACnF,yDAAyD;QACzD,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE;YACtE,SAAS,EAAE,CAAC,wBAAwB,CAAC;SACtC,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAC3B,EAAE,EACF,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CACvD,EAAE,gBAAgB,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAC3B,KAAK,EACL,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACtD,+EAA+E;QAC/E,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAW,EAAE,CACjE,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,eAAe,CACpB,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EACvC,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACtC,CAAC;QACF,MAAM,CAAC,eAAe,CACpB,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EACjE,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CACjD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,CAAC,eAAe,CACpB,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAC9F,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC,CAClE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,EAC7E,QAAQ,CACT,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpG,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAEzC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpG,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAEhD,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAI,OAAe,CAAC;IAEpB,MAAM,CAAC,GAAG,EAAE;QACV,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,EAAE;QACT,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,MAAM,MAAM,GAAG,SAAS,CACtB,QAAQ,EACR,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EACnE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,wBAAwB,CAAC,EAAE,EAAE,CAC5E,CAAC;QACF,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAEvD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACvD,MAAM,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvC,0CAA0C;QAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;QAE7C,MAAM,SAAS,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC;QAE9D,uCAAuC;QACvC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAE7E,2CAA2C;QAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;QAC7D,oEAAoE;QACpE,yEAAyE;QACzE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5D,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACxD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC;QAEzG,6CAA6C;QAC7C,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,mCAAmC,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpG,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACzB,MAAM,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEzB,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,KAAK,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;YAC/C,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE;YAClE,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,uBAAuB,GAAG,UAAU,CAAC;YACzC,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;YACvC,IAAI,EAAE,eAAe;SACtB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,eAAe,CAAC,uBAAuB,CAAC,CAAC;YACrD,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE;SACnE,CAAC,CAAC;QAEH,0CAA0C;QAC1C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,2CAA2C;QAC3C,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -42,12 +42,15 @@
42
42
  * await e3.export(pkg, 'package.zip');
43
43
  * ```
44
44
  */
45
- import type { DatasetDef, DataTreeDef, DatasetsOf, MergeDatasets, PackageDef, PackageItem, TaskDef } from './types.js';
45
+ import type { DatasetDef, DataTreeDef, DatasetsOf, FunctionDef, MergeDatasets, PackageDef, PackageItem, TaskDef } from './types.js';
46
46
  import { input } from './input.js';
47
47
  import { task, customTask } from './task.js';
48
+ import { function_ } from './function.js';
48
49
  import { package_ } from './package.js';
49
50
  import { export_ } from './export.js';
50
- export type { DataTreeDef, DatasetDef, DatasetsOf, TaskDef, PackageDef, PackageItem, MergeDatasets, };
51
+ export type { DataTreeDef, DatasetDef, DatasetsOf, FunctionDef, TaskDef, PackageDef, PackageItem, MergeDatasets, };
52
+ export type { Runner, FunctionRunner, Platform, EastPyPlatform, EastNodePlatform, EastCPlatform, } from './runner.js';
53
+ export { runnerToCommand, runnerToVariant, DEFAULT_RUNNER } from './runner.js';
51
54
  /**
52
55
  * The e3 SDK namespace.
53
56
  *
@@ -57,11 +60,12 @@ declare const e3: {
57
60
  input: typeof input;
58
61
  task: typeof task;
59
62
  customTask: typeof customTask;
63
+ function: typeof function_;
60
64
  package: typeof package_;
61
65
  export: typeof export_;
62
66
  };
63
67
  export default e3;
64
- export { input, task, customTask, package_ as package, export_ as export };
68
+ export { input, task, customTask, function_, package_ as package, export_ as export };
65
69
  export { inputsTree } from './input.js';
66
70
  export { tasksTree } from './task.js';
67
71
  export { sha256File, sha256Bytes, hashToPath } from './sha256.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,OAAO,EACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,YAAY,EACV,WAAW,EACX,UAAU,EACV,UAAU,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,aAAa,GACd,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,EAAE;;;;;;CAMP,CAAC;AAEF,eAAe,EAAE,CAAC;AAGlB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,IAAI,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC;AAG3E,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,WAAW,EACX,OAAO,EACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,YAAY,EACV,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,UAAU,EACV,WAAW,EACX,aAAa,GACd,CAAC;AAGF,YAAY,EACV,MAAM,EACN,cAAc,EACd,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE/E;;;;GAIG;AACH,QAAA,MAAM,EAAE;;;;;;;CAOP,CAAC;AAEF,eAAe,EAAE,CAAC;AAGlB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,IAAI,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC;AAGtF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
package/dist/src/index.js CHANGED
@@ -4,8 +4,10 @@
4
4
  */
5
5
  import { input } from './input.js';
6
6
  import { task, customTask } from './task.js';
7
+ import { function_ } from './function.js';
7
8
  import { package_ } from './package.js';
8
9
  import { export_ } from './export.js';
10
+ export { runnerToCommand, runnerToVariant, DEFAULT_RUNNER } from './runner.js';
9
11
  /**
10
12
  * The e3 SDK namespace.
11
13
  *
@@ -15,12 +17,13 @@ const e3 = {
15
17
  input,
16
18
  task,
17
19
  customTask,
20
+ function: function_,
18
21
  package: package_,
19
22
  export: export_,
20
23
  };
21
24
  export default e3;
22
25
  // Also export individual functions for tree-shaking
23
- export { input, task, customTask, package_ as package, export_ as export };
26
+ export { input, task, customTask, function_, package_ as package, export_ as export };
24
27
  // Singleton tree definitions
25
28
  export { inputsTree } from './input.js';
26
29
  export { tasksTree } from './task.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoDH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAYtC;;;;GAIG;AACH,MAAM,EAAE,GAAG;IACT,KAAK;IACL,IAAI;IACJ,UAAU;IACV,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,OAAO;CAChB,CAAC;AAEF,eAAe,EAAE,CAAC;AAElB,oDAAoD;AACpD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,IAAI,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC;AAE3E,6BAA6B;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqDH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAsBtC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE/E;;;;GAIG;AACH,MAAM,EAAE,GAAG;IACT,KAAK;IACL,IAAI;IACJ,UAAU;IACV,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,OAAO;CAChB,CAAC;AAEF,eAAe,EAAE,CAAC;AAElB,oDAAoD;AACpD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,IAAI,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC;AAEtF,6BAA6B;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * Package definitions for e3.
7
7
  */
8
- import type { MergeDatasets, PackageDef, PackageItem } from './types.js';
8
+ import type { FunctionDef, PackageDef, PackageItem } from './types.js';
9
9
  /**
10
10
  * Creates a package definition from items.
11
11
  *
@@ -37,5 +37,5 @@ import type { MergeDatasets, PackageDef, PackageItem } from './types.js';
37
37
  * const helloTask = pkg.tasks.say_hello;
38
38
  * ```
39
39
  */
40
- export declare function package_<TItems extends (PackageItem | PackageDef<any>)[]>(name: string, version: string, ...items: TItems): PackageDef<MergeDatasets<TItems>>;
40
+ export declare function package_(name: string, version: string, ...items: (PackageItem | FunctionDef | PackageDef<any>)[]): PackageDef<Record<string, unknown>>;
41
41
  //# sourceMappingURL=package.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/package.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,WAAW,EAEZ,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,QAAQ,CAAC,MAAM,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EACvE,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,GAAG,KAAK,EAAE,MAAM,GACf,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CA6EnC"}
1
+ {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/package.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,WAAW,EAEZ,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAQH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,GAAG,KAAK,EAAE,CAAC,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,GACxD,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoFrC"}
@@ -33,10 +33,20 @@
33
33
  * const helloTask = pkg.tasks.say_hello;
34
34
  * ```
35
35
  */
36
+ // NOTE: the return is deliberately `PackageDef<Record<string, unknown>>`, NOT
37
+ // `PackageDef<MergeDatasets<TItems>>`. The precise merged-datasets map (used only
38
+ // for the optional `pkg.datasets.tasks.x.output` typed-access convenience) inlines
39
+ // every task's full dataset type; with rich task outputs that map exceeds tsc's
40
+ // type-serialization limit, so `export default e3.package(...)` failed with TS7056
41
+ // and forced authors to hand-annotate. Access datasets via the exported
42
+ // task/input consts (`myTask.output`, `myInput.path`) instead — fully typed.
36
43
  export function package_(name, version, ...items) {
37
44
  // Recursively collect all items and their transitive dependencies
38
45
  const all_items = new Set();
39
46
  const visited = new Set();
47
+ // Functions have no deps and never enter the data tree — collected by
48
+ // name, separately from all_items.
49
+ const functions = {};
40
50
  function collect(item) {
41
51
  if (visited.has(item))
42
52
  return;
@@ -53,6 +63,10 @@ export function package_(name, version, ...items) {
53
63
  for (const dep of item.contents) {
54
64
  all_items.add(dep);
55
65
  }
66
+ Object.assign(functions, item.functions);
67
+ }
68
+ else if (item.kind === "function") {
69
+ functions[item.name] = item;
56
70
  }
57
71
  else {
58
72
  collect(item);
@@ -106,6 +120,7 @@ export function package_(name, version, ...items) {
106
120
  version,
107
121
  datasets: datasets,
108
122
  contents: [...all_items],
123
+ functions,
109
124
  };
110
125
  }
111
126
  //# sourceMappingURL=package.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/package.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/package.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
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 { RunnerValue } from '@elaraai/e3-types';
6
+ /** Stock platforms shipped by `@elaraai/east-py-cli` runner. */
7
+ export type EastPyPlatform = 'east-py-std' | 'east-py-io' | 'east-py-datascience';
8
+ /** Stock platforms shipped by `@elaraai/east-node-cli` runner. */
9
+ export type EastNodePlatform = '@elaraai/east-node-std' | '@elaraai/east-node-io';
10
+ /** Stock platforms shipped by `@elaraai/east-c-cli` runner. */
11
+ export type EastCPlatform = 'east-c-std';
12
+ /**
13
+ * A platform argument: a stock literal, or an explicit user-defined name.
14
+ *
15
+ * The explicit `{ custom: '...' }` form is the only way to pass a non-stock
16
+ * name. Bare strings are rejected so a typo of a stock name (e.g.
17
+ * `'east-py-stdd'`) is a compile error instead of silently accepted.
18
+ */
19
+ export type Platform<Known extends string> = Known | {
20
+ custom: string;
21
+ };
22
+ /** Non-empty tuple — at least one element required at the type level. */
23
+ type NonEmpty<T> = [T, ...T[]];
24
+ /**
25
+ * Runner selection for {@link task}.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * // east-c with the standard platform
30
+ * { runtime: 'east-c', platforms: ['east-c-std'] }
31
+ *
32
+ * // east-node with two stock platforms
33
+ * { runtime: 'east-node', platforms: ['@elaraai/east-node-std', '@elaraai/east-node-io'] }
34
+ *
35
+ * // east-py + a user-defined platform name
36
+ * { runtime: 'east-py', platforms: ['east-py-std', { custom: 'my-org-platform' }] }
37
+ *
38
+ * // Anything else: Julia, uv wrap, container exec, …
39
+ * { runtime: 'custom', command: ['uv', 'run', 'east-py', 'run', '-p', 'east-py-std'] }
40
+ * ```
41
+ */
42
+ export type Runner = {
43
+ runtime: 'east-py';
44
+ platforms?: Platform<EastPyPlatform>[];
45
+ } | {
46
+ runtime: 'east-node';
47
+ platforms?: Platform<EastNodePlatform>[];
48
+ } | {
49
+ runtime: 'east-c';
50
+ platforms?: Platform<EastCPlatform>[];
51
+ } | {
52
+ runtime: 'custom';
53
+ command: NonEmpty<string>;
54
+ };
55
+ /**
56
+ * A {@link Runner} restricted to the known runtimes — the only runners an
57
+ * `e3.function` may use. The `custom` (raw-argv) runtime is task-only: a
58
+ * function's runner is stored on the wire and resolvable at call time, so
59
+ * allowing raw argv would be arbitrary command execution by construction.
60
+ */
61
+ export type FunctionRunner = Exclude<Runner, {
62
+ runtime: 'custom';
63
+ }>;
64
+ /**
65
+ * Convert a {@link Runner} to its wire-format {@link RunnerValue} variant
66
+ * (used by `e3.function` / `e3.export`). Rejects the `custom` runtime —
67
+ * prefer typing call sites as {@link FunctionRunner} so the rejection is a
68
+ * compile error; this throw is the runtime backstop.
69
+ */
70
+ export declare function runnerToVariant(r: Runner): RunnerValue;
71
+ /**
72
+ * Resolves a {@link Runner} to the argv prefix. The `-i` / `-o` / IR path
73
+ * suffix is appended by {@link task}'s East command IR at evaluation time;
74
+ * this function only produces what goes ahead of those.
75
+ */
76
+ export declare function runnerToCommand(r: Runner): string[];
77
+ /**
78
+ * Default runner when `e3.task(..., { runner })` is omitted.
79
+ *
80
+ * east-node is the safer baseline: every e3 project already needs Node to
81
+ * compile and deploy, so the runner resolves with no extra toolchain. east-py
82
+ * needs a Python install + uv + east-py wheels on top, which is fine when a
83
+ * task actually uses python platforms but heavy as a default.
84
+ */
85
+ export declare const DEFAULT_RUNNER: Runner;
86
+ export {};
87
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,gEAAgE;AAChE,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,YAAY,GACZ,qBAAqB,CAAC;AAE1B,kEAAkE;AAClE,MAAM,MAAM,gBAAgB,GACxB,wBAAwB,GACxB,uBAAuB,CAAC;AAE5B,+DAA+D;AAC/D,MAAM,MAAM,aAAa,GACrB,YAAY,CAAC;AAEjB;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,MAAM,IAAI,KAAK,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE,yEAAyE;AACzE,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAE/B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,MAAM,GACd;IAAE,OAAO,EAAE,SAAS,CAAC;IAAG,SAAS,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAA;CAAE,GAChE;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAA;CAAE,GAClE;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAI,SAAS,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAA;CAAE,GAC/D;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAI,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAExD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAetD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAQnD;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,MAG5B,CAAC"}
@@ -0,0 +1,71 @@
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
+ /**
6
+ * Typed runner selection for {@link task}.
7
+ *
8
+ * Replaces the previous `runner: string[]` (raw argv) with a discriminated
9
+ * union pairing each runtime with the platform names it accepts. The literal
10
+ * platform sets are closed — a typo or a cross-runtime platform name is a
11
+ * compile error. User-defined platforms go through `{ custom: 'name' }` so
12
+ * the typed path stays typo-safe; the `custom` runtime branch is the full
13
+ * escape hatch (any argv).
14
+ *
15
+ * The runner is consumed at task-definition time inside `e3.task` and
16
+ * resolved into the existing argv-emitting `commandIr` constant — the wire
17
+ * format (`TaskObjectType`) is unchanged.
18
+ *
19
+ * `e3.function` instead stores the runner as a wire variant (`RunnerType`
20
+ * in e3-types) via {@link runnerToVariant}, which excludes the `custom`
21
+ * runtime (see {@link FunctionRunner}).
22
+ */
23
+ import { variant } from '@elaraai/east';
24
+ /**
25
+ * Convert a {@link Runner} to its wire-format {@link RunnerValue} variant
26
+ * (used by `e3.function` / `e3.export`). Rejects the `custom` runtime —
27
+ * prefer typing call sites as {@link FunctionRunner} so the rejection is a
28
+ * compile error; this throw is the runtime backstop.
29
+ */
30
+ export function runnerToVariant(r) {
31
+ if (r.runtime === 'custom') {
32
+ throw new Error("e3.function does not support the 'custom' runner — functions run only on a known runtime (east-node, east-py, east-c)");
33
+ }
34
+ // The SDK makes `platforms` optional and allows `{ custom: name }` entries;
35
+ // the wire type requires a plain string array — collapse both here, exactly
36
+ // like runnerToCommand.
37
+ const platforms = (r.platforms ?? []).map((p) => (typeof p === 'string' ? p : p.custom));
38
+ switch (r.runtime) {
39
+ case 'east-node': return variant('east_node', { platforms });
40
+ case 'east-py': return variant('east_py', { platforms });
41
+ case 'east-c': return variant('east_c', { platforms });
42
+ }
43
+ }
44
+ /**
45
+ * Resolves a {@link Runner} to the argv prefix. The `-i` / `-o` / IR path
46
+ * suffix is appended by {@link task}'s East command IR at evaluation time;
47
+ * this function only produces what goes ahead of those.
48
+ */
49
+ export function runnerToCommand(r) {
50
+ if (r.runtime === 'custom')
51
+ return [...r.command];
52
+ const platforms = r.platforms ?? [];
53
+ const flags = [];
54
+ for (const p of platforms) {
55
+ flags.push('-p', typeof p === 'string' ? p : p.custom);
56
+ }
57
+ return [r.runtime, 'run', ...flags];
58
+ }
59
+ /**
60
+ * Default runner when `e3.task(..., { runner })` is omitted.
61
+ *
62
+ * east-node is the safer baseline: every e3 project already needs Node to
63
+ * compile and deploy, so the runner resolves with no extra toolchain. east-py
64
+ * needs a Python install + uv + east-py wheels on top, which is fine when a
65
+ * task actually uses python platforms but heavy as a default.
66
+ */
67
+ export const DEFAULT_RUNNER = {
68
+ runtime: 'east-node',
69
+ platforms: ['@elaraai/east-node-std'],
70
+ };
71
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AA8DxC;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,CAAS;IACvC,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,uHAAuH,CACxH,CAAC;IACJ,CAAC;IACD,4EAA4E;IAC5E,4EAA4E;IAC5E,wBAAwB;IACxB,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QAClB,KAAK,WAAW,CAAC,CAAC,OAAO,OAAO,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7D,KAAK,SAAS,CAAC,CAAG,OAAO,OAAO,CAAC,SAAS,EAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7D,KAAK,QAAQ,CAAC,CAAI,OAAO,OAAO,CAAC,QAAQ,EAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,CAAS;IACvC,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAW;IACpC,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,CAAC,wBAAwB,CAAC;CACtC,CAAC"}
@@ -0,0 +1,6 @@
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
+ export {};
6
+ //# sourceMappingURL=runner.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.spec.d.ts","sourceRoot":"","sources":["../../src/runner.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,60 @@
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 { describe, it } from 'node:test';
6
+ import assert from 'node:assert/strict';
7
+ import { DEFAULT_RUNNER, runnerToCommand } from './runner.js';
8
+ describe('runnerToCommand', () => {
9
+ it('default is east-node + east-node-std (cheap to resolve in any e3 project)', () => {
10
+ assert.deepEqual(runnerToCommand(DEFAULT_RUNNER), ['east-node', 'run', '-p', '@elaraai/east-node-std']);
11
+ });
12
+ it('east-py with multiple stock platforms', () => {
13
+ const r = {
14
+ runtime: 'east-py',
15
+ platforms: ['east-py-std', 'east-py-io', 'east-py-datascience'],
16
+ };
17
+ assert.deepEqual(runnerToCommand(r), ['east-py', 'run', '-p', 'east-py-std', '-p', 'east-py-io', '-p', 'east-py-datascience']);
18
+ });
19
+ it('east-node uses the @elaraai/* scoped platform names verbatim', () => {
20
+ const r = {
21
+ runtime: 'east-node',
22
+ platforms: ['@elaraai/east-node-std', '@elaraai/east-node-io'],
23
+ };
24
+ assert.deepEqual(runnerToCommand(r), ['east-node', 'run', '-p', '@elaraai/east-node-std', '-p', '@elaraai/east-node-io']);
25
+ });
26
+ it('east-c with the std platform', () => {
27
+ const r = { runtime: 'east-c', platforms: ['east-c-std'] };
28
+ assert.deepEqual(runnerToCommand(r), ['east-c', 'run', '-p', 'east-c-std']);
29
+ });
30
+ it('mixes stock literals with explicit { custom: ... } user-defined platforms', () => {
31
+ const r = {
32
+ runtime: 'east-py',
33
+ platforms: ['east-py-std', { custom: 'my-org-platform' }],
34
+ };
35
+ assert.deepEqual(runnerToCommand(r), ['east-py', 'run', '-p', 'east-py-std', '-p', 'my-org-platform']);
36
+ });
37
+ it('omits -p flags entirely when platforms is omitted', () => {
38
+ const r = { runtime: 'east-c' };
39
+ assert.deepEqual(runnerToCommand(r), ['east-c', 'run']);
40
+ });
41
+ it('omits -p flags when platforms is an empty array', () => {
42
+ const r = { runtime: 'east-py', platforms: [] };
43
+ assert.deepEqual(runnerToCommand(r), ['east-py', 'run']);
44
+ });
45
+ it('custom runtime returns the command argv verbatim', () => {
46
+ const r = {
47
+ runtime: 'custom',
48
+ command: ['uv', 'run', 'east-py', 'run', '-p', 'east-py-std'],
49
+ };
50
+ assert.deepEqual(runnerToCommand(r), ['uv', 'run', 'east-py', 'run', '-p', 'east-py-std']);
51
+ });
52
+ it('returns a fresh array on each call (defensive copy on custom command)', () => {
53
+ const cmd = ['julia', 'run.jl'];
54
+ const r = { runtime: 'custom', command: cmd };
55
+ const out = runnerToCommand(r);
56
+ out.push('--mutated');
57
+ assert.deepEqual(cmd, ['julia', 'run.jl'], 'caller-supplied command must not be mutated');
58
+ });
59
+ });
60
+ //# sourceMappingURL=runner.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.spec.js","sourceRoot":"","sources":["../../src/runner.spec.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@
12
12
  import type { AsyncFunctionExpr, BlockBuilder, CallableAsyncFunctionExpr, CallableFunctionExpr, EastType, ExprType, FunctionExpr } from '@elaraai/east';
13
13
  import { Expr, variant, ArrayType, StringType } from '@elaraai/east';
14
14
  import type { DatasetDef, DataTreeDef, TaskDef } from './types.js';
15
+ import { type Runner } from './runner.js';
15
16
  /**
16
17
  * Helper type to extract East types from DatasetDef array.
17
18
  * Preserves tuple structure when T is a tuple.
@@ -64,7 +65,7 @@ export declare const tasksTree: DataTreeDef;
64
65
  * ```
65
66
  */
66
67
  export declare function task<Name extends string, Inputs extends readonly DatasetDef[], Output extends EastType>(name: Name, inputs: [...Inputs], fn: FunctionExpr<ExtractDatasetTypes<Inputs>, Output> | CallableFunctionExpr<ExtractDatasetTypes<Inputs>, Output> | AsyncFunctionExpr<ExtractDatasetTypes<Inputs>, Output> | CallableAsyncFunctionExpr<ExtractDatasetTypes<Inputs>, Output>, config?: {
67
- runner?: string[];
68
+ runner?: Runner;
68
69
  kind?: string;
69
70
  metadata?: Uint8Array;
70
71
  }): TaskDef<Output, [variant<'field', 'tasks'>, variant<'field', Name>, variant<'field', 'output'>]>;
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/task.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACxJ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAqC,MAAM,eAAe,CAAC;AACxG,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEnE;;;GAGG;AACH,KAAK,mBAAmB,CAAC,CAAC,SAAS,SAAS,UAAU,EAAE,IAAI;KACzD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC7D,GAAG,QAAQ,EAAE,CAAC;AAEf;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,WAKvB,CAAC;AAgGF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,IAAI,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,SAAS,UAAU,EAAE,EAAE,MAAM,SAAS,QAAQ,EACrG,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,EACnB,EAAE,EAAE,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjD,oBAAoB,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACzD,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACtD,yBAAyB,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAClE,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,UAAU,CAAA;CAAE,GACnE,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAuEpG,wBAAgB,UAAU,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,SAAS,QAAQ,EACvG,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,EAClJ,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAoClG"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/task.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACxJ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAqC,MAAM,eAAe,CAAC;AACxG,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAmC,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE3E;;;GAGG;AACH,KAAK,mBAAmB,CAAC,CAAC,SAAS,SAAS,UAAU,EAAE,IAAI;KACzD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC7D,GAAG,QAAQ,EAAE,CAAC;AAEf;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,WAKvB,CAAC;AAgGF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,IAAI,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,SAAS,UAAU,EAAE,EAAE,MAAM,SAAS,QAAQ,EACrG,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,EACnB,EAAE,EAAE,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjD,oBAAoB,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACzD,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACtD,yBAAyB,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAClE,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,UAAU,CAAA;CAAE,GACjE,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AA8EpG,wBAAgB,UAAU,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,SAAS,QAAQ,EACvG,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,EAClJ,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAoClG"}
package/dist/src/task.js CHANGED
@@ -3,6 +3,7 @@
3
3
  * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
4
  */
5
5
  import { Expr, variant, ArrayType, StringType, East, IRType } from '@elaraai/east';
6
+ import { DEFAULT_RUNNER, runnerToCommand } from './runner.js';
6
7
  /**
7
8
  * Singleton tree definition for `.tasks`.
8
9
  *
@@ -107,9 +108,15 @@ export function task(name, inputs, fn, config) {
107
108
  ];
108
109
  // Create the output dataset
109
110
  const output = createOutputDataset(name, taskTree, outputType);
110
- // Build the command for our east-py runner
111
+ // Resolve the typed Runner to argv at task-definition time. The variant is
112
+ // SDK-only metadata: it never reaches the IR or the wire — only the
113
+ // resolved string array does, baked in as an East constant below. Default
114
+ // is east-node + east-node-std (every e3 project has Node already).
115
+ const argvPrefix = runnerToCommand(config?.runner ?? DEFAULT_RUNNER);
116
+ // Build the command IR. At task-execution time this East function is
117
+ // evaluated with the staged input/output paths and returns the final argv.
111
118
  const commandFn = East.function([ArrayType(StringType), StringType], ArrayType(StringType), ($, input_paths, output_path) => {
112
- const command = $.let(config?.runner ?? ['east-py', 'run', '-p', 'east-py-std', '-p', 'east-py-io', '-p', 'east-py-datascience'], ArrayType(StringType));
119
+ const command = $.let(argvPrefix, ArrayType(StringType));
113
120
  // Function argument paths
114
121
  const i = $.let(1n);
115
122
  $.while(East.less(i, input_paths.size()), $ => {
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/task.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAuB,MAAM,eAAe,CAAC;AAWxG;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAgB;IACpC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjC,IAAI,EAAE,IAAI,GAAG,EAAE;CAChB,CAAC;AAEF;;;;;GAKG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI;QACJ,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;KAC3B,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAAC,IAAY,EAAE,QAAqB,EAAE,MAAgD;IACpH,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC1F,IAAI,EAAE,MAAM;QACZ,6EAA6E;QAC7E,gDAAgD;QAChD,OAAO,EAAE,MAAa;QACtB,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAC1B,IAAU,EACV,QAAqB,EACrB,UAAkB;IAElB,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrF,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,WAAW,CAClB,QAAqB,EACrB,aAAyB,EACzB,MAAoB;IAEpB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAsC,CAAC;IAE3D,oBAAoB;IACpB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEpB,6BAA6B;IAC7B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEnB,4CAA4C;IAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;IAED,mFAAmF;IACnF,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAExB,OAAO,IAAI,CAAC;AACd,CAAC;AAiDD,MAAM,UAAU,IAAI,CAClB,IAAY,EACZ,MAAoB,EACpB,EAAwD,EACxD,MAAoE;IAEpE,qEAAqE;IACrE,gEAAgE;IAChE,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAe,CAAC,CAAC,MAAkB,CAAC;IAEjE,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAEtC,gEAAgE;IAChE,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE1E,+CAA+C;IAC/C,MAAM,cAAc,GAAG;QACrB,iBAAiB;QACjB,GAAG,MAAM;KACV,CAAC;IAEF,4BAA4B;IAC5B,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAE/D,2CAA2C;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAC7B,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,EACnC,SAAS,CAAC,UAAU,CAAC,EACrB,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,qBAAqB,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAEzJ,0BAA0B;QAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;YAC5C,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,cAAc;QACd,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACzB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAA;QAEhC,iCAAiC;QACjC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAExC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,CACF,CAAC;IAEF,MAAM,OAAO,GAAY;QACvB,IAAI,EAAE,MAAM;QACZ,IAAI;QACJ,uEAAuE;QACvE,OAAO,EAAE,SAAS,CAAC,IAAI,EAA0C;QACjE,MAAM,EAAE,cAAc;QACtB,MAAM;QACN,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC;QACnD,QAAQ,EAAE,MAAM,EAAE,IAAI;QACtB,QAAQ,EAAE,MAAM,EAAE,QAAQ;KAC3B,CAAC;IAEF,iFAAiF;IACjF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEzB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,IAAU,EACV,MAAc,EACd,UAAkB,EAClB,OAAkJ,EAClJ,OAAgB;IAGhB,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAEtC,4BAA4B;IAC5B,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAE/D,sCAAsC;IACtC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CACjC,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,EACnC,UAAU,EACV,OAAO,CACR,CAAC;IAEF,4CAA4C;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAC7B,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,EACnC,SAAS,CAAC,UAAU,CAAC,EACrB,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CACzF,CAAC;IAEF,MAAM,OAAO,GAAqG;QAChH,IAAI,EAAE,MAAM;QACZ,IAAI;QACJ,uEAAuE;QACvE,OAAO,EAAE,SAAS,CAAC,IAAI,EAA0C;QACjE,MAAM;QACN,MAAM;QACN,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAC5C,CAAC;IAEF,iFAAiF;IACjF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEzB,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/task.ts"],"names":[],"mappings":"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"}
@@ -105,7 +105,7 @@ describe('task', () => {
105
105
  it('preserves custom runner config', () => {
106
106
  const name_input = input('name', StringType, 'World');
107
107
  const greet = task('greet', [name_input], East.function([StringType], StringType, ($, name) => $.return(name)), {
108
- runner: ['uv', 'run', 'east-py', 'run', '-p', 'east-py-std']
108
+ runner: { runtime: 'custom', command: ['uv', 'run', 'east-py', 'run', '-p', 'east-py-std'] },
109
109
  });
110
110
  assert.strictEqual(greet.kind, 'task');
111
111
  // The runner is encoded in the command, we just verify the task was created
@@ -1 +1 @@
1
- {"version":3,"file":"task.spec.js","sourceRoot":"","sources":["../../src/task.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAEtD,MAAM,KAAK,GAAG,IAAI,CAChB,OAAO,EACP,CAAC,UAAU,CAAC,EACZ,IAAI,CAAC,QAAQ,CACX,CAAC,UAAU,CAAC,EACZ,UAAU,EACV,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA,UAAU,IAAI,GAAG,CAAC,CACjD,CACF,CAAC;YAEF,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YAEpD,MAAM,YAAY,GAAG,IAAI,CACvB,cAAc,EACd,CAAC,UAAU,EAAE,WAAW,CAAC,EACzB,IAAI,CAAC,QAAQ,CACX,CAAC,UAAU,EAAE,WAAW,CAAC,EACzB,UAAU,EACV,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA,UAAU,IAAI,GAAG,CAAC,CACzD,CACF,CAAC;YAEF,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;YAE3C,MAAM,OAAO,GAAG,IAAI,CAClB,SAAS,EACT,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAC3B,IAAI,CAAC,QAAQ,CACX,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,EACpC,UAAU,EACV,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAC9B,CACF,CAAC;YAEF,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB;QACzE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAE5C,MAAM,YAAY,GAAG,IAAI,CACvB,cAAc,EACd,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EACpC,IAAI,CAAC,QAAQ,CACX,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,EAChD,UAAU,EACV,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAClC,CACF,CAAC;YAEF,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB;QAC9E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,UAAU,GAAG,UAAU,CAAC;gBAC5B,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,WAAW;aACjB,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAE9E,MAAM,eAAe,GAAG,IAAI,CAC1B,iBAAiB,EACjB,CAAC,YAAY,CAAC,EACd,IAAI,CAAC,QAAQ,CACX,CAAC,UAAU,CAAC,EACZ,UAAU,EACV,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,GAAG,YAAY,CAAC,CAC7E,CACF,CAAC;YAEF,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAEtD,MAAM,KAAK,GAAG,IAAI,CAChB,OAAO,EACP,CAAC,UAAU,CAAC,EACZ,IAAI,CAAC,QAAQ,CACX,CAAC,UAAU,CAAC,EACZ,UAAU,EACV,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA,UAAU,IAAI,GAAG,CAAC,CACjD,CACF,CAAC;YAEF,MAAM,KAAK,GAAG,IAAI,CAChB,OAAO,EACP,CAAC,KAAK,CAAC,MAAM,CAAC,EACd,IAAI,CAAC,QAAQ,CACX,CAAC,UAAU,CAAC,EACZ,UAAU,EACV,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,QAAQ,KAAK,CAAC,CACpD,CACF,CAAC;YAEF,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACxC,kCAAkC;YAClC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAEtD,MAAM,KAAK,GAAG,IAAI,CAChB,OAAO,EACP,CAAC,UAAU,CAAC,EACZ,IAAI,CAAC,QAAQ,CACX,CAAC,UAAU,CAAC,EACZ,UAAU,EACV,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA,UAAU,IAAI,EAAE,CAAC,CAChD,CACF,CAAC;YAEF,MAAM,UAAU,GAAG,IAAI,CACrB,YAAY,EACZ,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5B,IAAI,CAAC,QAAQ,CACX,CAAC,UAAU,EAAE,UAAU,CAAC,EACxB,UAAU,EACV,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,QAAQ,GAAG,MAAM,EAAE,CAAC,CAClE,CACF,CAAC;YAEF,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAEtD,MAAM,KAAK,GAAG,IAAI,CAChB,OAAO,EACP,CAAC,UAAU,CAAC,EACZ,IAAI,CAAC,aAAa,CAChB,CAAC,UAAU,CAAC,EACZ,UAAU,EACV,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA,UAAU,IAAI,GAAG,CAAC,CACjD,CACF,CAAC;YAEF,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACjD,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YAEpD,MAAM,YAAY,GAAG,IAAI,CACvB,cAAc,EACd,CAAC,UAAU,EAAE,WAAW,CAAC,EACzB,IAAI,CAAC,aAAa,CAChB,CAAC,UAAU,EAAE,WAAW,CAAC,EACzB,UAAU,EACV,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA,UAAU,IAAI,GAAG,CAAC,CACzD,CACF,CAAC;YAEF,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB;QAC9E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAEtD,MAAM,KAAK,GAAG,IAAI,CAChB,SAAS,EACT,CAAC,UAAU,CAAC,EACZ,IAAI,CAAC,QAAQ,CACX,CAAC,UAAU,CAAC,EACZ,UAAU,EACV,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAC5B,CACF,CAAC;YAEF,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;gBACxC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;gBACzB,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;gBAC3B,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAEtD,MAAM,KAAK,GAAG,IAAI,CAChB,OAAO,EACP,CAAC,UAAU,CAAC,EACZ,IAAI,CAAC,QAAQ,CACX,CAAC,UAAU,CAAC,EACZ,UAAU,EACV,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAC5B,CACF,CAAC;YAEF,gDAAgD;YAChD,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAEtD,MAAM,KAAK,GAAG,IAAI,CAChB,OAAO,EACP,CAAC,UAAU,CAAC,EACZ,IAAI,CAAC,QAAQ,CACX,CAAC,UAAU,CAAC,EACZ,UAAU,EACV,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAC5B,EACD;gBACE,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC;aAC7D,CACF,CAAC;YAEF,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvC,4EAA4E;QAC9E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"task.spec.js","sourceRoot":"","sources":["../../src/task.spec.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,9 @@
12
12
  * - **Structure**: The shape of the data tree (what trees/datasets exist and their types)
13
13
  * - **Task**: A transformation that reads input datasets and produces an output dataset
14
14
  */
15
- import type { EastType, EastIR, ValueTypeOf, variant } from '@elaraai/east';
15
+ import type { EastType, EastIR, AsyncEastIR, ValueTypeOf, variant } from '@elaraai/east';
16
16
  import type { TreePath } from '@elaraai/e3-types';
17
+ import type { Runner } from './runner.js';
17
18
  /**
18
19
  * A tree definition.
19
20
  *
@@ -79,6 +80,30 @@ export interface TaskDef<TOutput extends EastType = EastType, Path extends TreeP
79
80
  /** Opaque extension metadata (beast2-encoded) */
80
81
  readonly metadata?: Uint8Array;
81
82
  }
83
+ /**
84
+ * A function definition.
85
+ *
86
+ * Functions are named, typed callables stored in a package and invoked by
87
+ * name with argument values (CLI / HTTP API). Unlike a task, a function is
88
+ * not wired to datasets, is not part of the dataflow graph, and triggers no
89
+ * recomputation. Its result is returned inline to the caller and nothing is
90
+ * persisted.
91
+ *
92
+ * @typeParam Inputs - The East types of the positional parameters
93
+ * @typeParam Output - The East type of the return value
94
+ */
95
+ export interface FunctionDef<Inputs extends readonly EastType[] = readonly EastType[], Output extends EastType = EastType> {
96
+ readonly kind: 'function';
97
+ /** Function name (unique within the package) */
98
+ readonly name: string;
99
+ readonly body: EastIR<any, any> | AsyncEastIR<any, any>;
100
+ /** Positional parameter types (the East function's signature) */
101
+ readonly inputTypes: Inputs;
102
+ /** Return type */
103
+ readonly outputType: Output;
104
+ /** Runtime the body runs on; defaults to DEFAULT_RUNNER */
105
+ readonly runner: Runner;
106
+ }
82
107
  /**
83
108
  * An item that can be passed to e3.package().
84
109
  */
@@ -131,6 +156,9 @@ export interface PackageDef<Datasets extends Record<string, any>> {
131
156
  readonly datasets: Datasets;
132
157
  /** All contents of the package (trees, datasets, tasks) */
133
158
  readonly contents: Array<PackageItem>;
159
+ /** Named functions, by name. Functions are not part of `contents` —
160
+ * they have no deps and never enter the data tree. */
161
+ readonly functions: Record<string, FunctionDef>;
134
162
  }
135
163
  export {};
136
164
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elaraai/e3",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "TypeScript SDK for authoring e3 packages",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -13,10 +13,10 @@
13
13
  },
14
14
  "dependencies": {
15
15
  "yazl": "^2.5.1",
16
- "@elaraai/e3-types": "1.0.4"
16
+ "@elaraai/e3-types": "1.0.6"
17
17
  },
18
18
  "peerDependencies": {
19
- "@elaraai/east": "1.0.4"
19
+ "@elaraai/east": "1.0.6"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/node": "^22.10.1",