@scenario-labs/sdk 2.4.0-alpha.1 → 2.5.0
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/CHANGELOG.md +36 -0
- package/README.md +26 -0
- package/client.d.mts +1 -1
- package/client.d.mts.map +1 -1
- package/client.d.ts +1 -1
- package/client.d.ts.map +1 -1
- package/lib/cel/environment.d.mts +38 -0
- package/lib/cel/environment.d.mts.map +1 -0
- package/lib/cel/environment.d.ts +38 -0
- package/lib/cel/environment.d.ts.map +1 -0
- package/lib/cel/environment.js +52 -0
- package/lib/cel/environment.js.map +1 -0
- package/lib/cel/environment.mjs +48 -0
- package/lib/cel/environment.mjs.map +1 -0
- package/lib/cel/functions.d.mts +4 -0
- package/lib/cel/functions.d.mts.map +1 -0
- package/lib/cel/functions.d.ts +4 -0
- package/lib/cel/functions.d.ts.map +1 -0
- package/lib/cel/functions.js +67 -0
- package/lib/cel/functions.js.map +1 -0
- package/lib/cel/functions.mjs +64 -0
- package/lib/cel/functions.mjs.map +1 -0
- package/lib/cel/index.d.mts +3 -0
- package/lib/cel/index.d.mts.map +1 -0
- package/lib/cel/index.d.ts +3 -0
- package/lib/cel/index.d.ts.map +1 -0
- package/lib/cel/index.js +9 -0
- package/lib/cel/index.js.map +1 -0
- package/lib/cel/index.mjs +3 -0
- package/lib/cel/index.mjs.map +1 -0
- package/lib/cel/prng.d.mts +28 -0
- package/lib/cel/prng.d.mts.map +1 -0
- package/lib/cel/prng.d.ts +28 -0
- package/lib/cel/prng.d.ts.map +1 -0
- package/lib/cel/prng.js +64 -0
- package/lib/cel/prng.js.map +1 -0
- package/lib/cel/prng.mjs +58 -0
- package/lib/cel/prng.mjs.map +1 -0
- package/lib/workflow_converter.d.mts +3 -0
- package/lib/workflow_converter.d.mts.map +1 -1
- package/lib/workflow_converter.d.ts +3 -0
- package/lib/workflow_converter.d.ts.map +1 -1
- package/lib/workflow_converter.js +62 -34
- package/lib/workflow_converter.js.map +1 -1
- package/lib/workflow_converter.mjs +62 -34
- package/lib/workflow_converter.mjs.map +1 -1
- package/package.json +17 -2
- package/resources/assets/assets.d.mts +269 -31
- package/resources/assets/assets.d.mts.map +1 -1
- package/resources/assets/assets.d.ts +269 -31
- package/resources/assets/assets.d.ts.map +1 -1
- package/resources/assets/assets.js.map +1 -1
- package/resources/assets/assets.mjs.map +1 -1
- package/resources/generate.d.mts +157 -51
- package/resources/generate.d.mts.map +1 -1
- package/resources/generate.d.ts +157 -51
- package/resources/generate.d.ts.map +1 -1
- package/resources/generate.js +1 -5
- package/resources/generate.js.map +1 -1
- package/resources/generate.mjs +1 -5
- package/resources/generate.mjs.map +1 -1
- package/resources/index.d.mts +1 -1
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +1 -1
- package/resources/index.d.ts.map +1 -1
- package/resources/jobs.d.mts +30 -12
- package/resources/jobs.d.mts.map +1 -1
- package/resources/jobs.d.ts +30 -12
- package/resources/jobs.d.ts.map +1 -1
- package/resources/models/description.d.mts +62 -4
- package/resources/models/description.d.mts.map +1 -1
- package/resources/models/description.d.ts +62 -4
- package/resources/models/description.d.ts.map +1 -1
- package/resources/models/examples.d.mts +94 -64
- package/resources/models/examples.d.mts.map +1 -1
- package/resources/models/examples.d.ts +94 -64
- package/resources/models/examples.d.ts.map +1 -1
- package/resources/models/models.d.mts +239 -295
- package/resources/models/models.d.mts.map +1 -1
- package/resources/models/models.d.ts +239 -295
- package/resources/models/models.d.ts.map +1 -1
- package/resources/models/models.js.map +1 -1
- package/resources/models/models.mjs.map +1 -1
- package/resources/models/train.d.mts +92 -110
- package/resources/models/train.d.mts.map +1 -1
- package/resources/models/train.d.ts +92 -110
- package/resources/models/train.d.ts.map +1 -1
- package/resources/search.d.mts +2 -2
- package/resources/search.d.ts +2 -2
- package/resources/uploads.d.mts +2 -3
- package/resources/uploads.d.mts.map +1 -1
- package/resources/uploads.d.ts +2 -3
- package/resources/uploads.d.ts.map +1 -1
- package/resources/usages.d.mts +44 -15
- package/resources/usages.d.mts.map +1 -1
- package/resources/usages.d.ts +44 -15
- package/resources/usages.d.ts.map +1 -1
- package/resources/workflows.d.mts +63 -45
- package/resources/workflows.d.mts.map +1 -1
- package/resources/workflows.d.ts +63 -45
- package/resources/workflows.d.ts.map +1 -1
- package/resources/workflows.js +4 -4
- package/resources/workflows.js.map +1 -1
- package/resources/workflows.mjs +4 -4
- package/resources/workflows.mjs.map +1 -1
- package/src/client.ts +1 -1
- package/src/lib/cel/environment.ts +81 -0
- package/src/lib/cel/functions.ts +109 -0
- package/src/lib/cel/index.ts +8 -0
- package/src/lib/cel/prng.ts +62 -0
- package/src/lib/workflow_converter.ts +91 -35
- package/src/resources/assets/assets.ts +300 -62
- package/src/resources/generate.ts +157 -129
- package/src/resources/index.ts +1 -1
- package/src/resources/jobs.ts +27 -37
- package/src/resources/models/description.ts +70 -12
- package/src/resources/models/examples.ts +100 -88
- package/src/resources/models/models.ts +228 -385
- package/src/resources/models/train.ts +89 -139
- package/src/resources/search.ts +2 -2
- package/src/resources/uploads.ts +2 -3
- package/src/resources/usages.ts +47 -20
- package/src/resources/workflows.ts +48 -157
- package/src/tools/cel.ts +4 -0
- package/src/version.ts +1 -1
- package/tools/cel.d.mts +2 -0
- package/tools/cel.d.mts.map +1 -0
- package/tools/cel.d.ts +2 -0
- package/tools/cel.d.ts.map +1 -0
- package/tools/cel.js +8 -0
- package/tools/cel.js.map +1 -0
- package/tools/cel.mjs +5 -0
- package/tools/cel.mjs.map +1 -0
- package/version.d.mts +1 -1
- package/version.d.mts.map +1 -1
- package/version.d.ts +1 -1
- package/version.d.ts.map +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
- package/version.mjs +1 -1
- package/version.mjs.map +1 -1
package/lib/cel/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Environment = exports.evaluateCel = exports.createCelEnvironment = void 0;
|
|
4
|
+
var environment_1 = require("./environment.js");
|
|
5
|
+
Object.defineProperty(exports, "createCelEnvironment", { enumerable: true, get: function () { return environment_1.createCelEnvironment; } });
|
|
6
|
+
Object.defineProperty(exports, "evaluateCel", { enumerable: true, get: function () { return environment_1.evaluateCel; } });
|
|
7
|
+
var cel_js_1 = require("@marcbachmann/cel-js");
|
|
8
|
+
Object.defineProperty(exports, "Environment", { enumerable: true, get: function () { return cel_js_1.Environment; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/cel/index.ts"],"names":[],"mappings":";;;AAAA,gDAMuB;AALrB,mHAAA,oBAAoB,OAAA;AACpB,0GAAA,WAAW,OAAA;AAKb,+CAAmD;AAA1C,qGAAA,WAAW,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/lib/cel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,WAAW,GAIZ,0BAAsB;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic PRNG + sampling primitives backing the CEL `randomSample`
|
|
3
|
+
* function.
|
|
4
|
+
*
|
|
5
|
+
* STABILITY CONTRACT — DO NOT CHANGE THESE ALGORITHMS.
|
|
6
|
+
* The same seed must produce the same sample on every runtime and every SDK
|
|
7
|
+
* version: the backend (server) and frontend (client) rely on agreeing outputs,
|
|
8
|
+
* and customers rely on seeds for reproducible workflow runs. Golden-value
|
|
9
|
+
* tests in tests/lib/cel/prng.test.ts pin the exact outputs.
|
|
10
|
+
*/
|
|
11
|
+
/** A source of random floats in [0, 1). */
|
|
12
|
+
export type RandomSource = () => number;
|
|
13
|
+
/**
|
|
14
|
+
* mulberry32: fast 32-bit PRNG with exact, platform-independent output.
|
|
15
|
+
* `seed` is coerced to uint32 (via `>>> 0`); use {@link normalizeSeed} to
|
|
16
|
+
* convert arbitrary CEL ints before calling this.
|
|
17
|
+
*/
|
|
18
|
+
export declare function mulberry32(seed: number): RandomSource;
|
|
19
|
+
/** Normalize a CEL int (bigint or number) to a uint32 PRNG seed. */
|
|
20
|
+
export declare function normalizeSeed(seed: bigint | number): number;
|
|
21
|
+
/**
|
|
22
|
+
* Sample `count` distinct elements via partial Fisher–Yates.
|
|
23
|
+
* `count` is clamped to [0, list.length]; the input list is not mutated.
|
|
24
|
+
*/
|
|
25
|
+
export declare function sampleWithoutReplacement<T>(list: readonly T[], count: number, rand: RandomSource): T[];
|
|
26
|
+
/** `count` independent draws; duplicates allowed. Returns [] if the list is empty or count <= 0. */
|
|
27
|
+
export declare function sampleWithReplacement<T>(list: readonly T[], count: number, rand: RandomSource): T[];
|
|
28
|
+
//# sourceMappingURL=prng.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prng.d.mts","sourceRoot":"","sources":["../../src/lib/cel/prng.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,2CAA2C;AAC3C,MAAM,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC;AAExC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAQrD;AAED,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,CAAC,EAAE,CAYtG;AAED,oGAAoG;AACpG,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,CAAC,EAAE,CAQnG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic PRNG + sampling primitives backing the CEL `randomSample`
|
|
3
|
+
* function.
|
|
4
|
+
*
|
|
5
|
+
* STABILITY CONTRACT — DO NOT CHANGE THESE ALGORITHMS.
|
|
6
|
+
* The same seed must produce the same sample on every runtime and every SDK
|
|
7
|
+
* version: the backend (server) and frontend (client) rely on agreeing outputs,
|
|
8
|
+
* and customers rely on seeds for reproducible workflow runs. Golden-value
|
|
9
|
+
* tests in tests/lib/cel/prng.test.ts pin the exact outputs.
|
|
10
|
+
*/
|
|
11
|
+
/** A source of random floats in [0, 1). */
|
|
12
|
+
export type RandomSource = () => number;
|
|
13
|
+
/**
|
|
14
|
+
* mulberry32: fast 32-bit PRNG with exact, platform-independent output.
|
|
15
|
+
* `seed` is coerced to uint32 (via `>>> 0`); use {@link normalizeSeed} to
|
|
16
|
+
* convert arbitrary CEL ints before calling this.
|
|
17
|
+
*/
|
|
18
|
+
export declare function mulberry32(seed: number): RandomSource;
|
|
19
|
+
/** Normalize a CEL int (bigint or number) to a uint32 PRNG seed. */
|
|
20
|
+
export declare function normalizeSeed(seed: bigint | number): number;
|
|
21
|
+
/**
|
|
22
|
+
* Sample `count` distinct elements via partial Fisher–Yates.
|
|
23
|
+
* `count` is clamped to [0, list.length]; the input list is not mutated.
|
|
24
|
+
*/
|
|
25
|
+
export declare function sampleWithoutReplacement<T>(list: readonly T[], count: number, rand: RandomSource): T[];
|
|
26
|
+
/** `count` independent draws; duplicates allowed. Returns [] if the list is empty or count <= 0. */
|
|
27
|
+
export declare function sampleWithReplacement<T>(list: readonly T[], count: number, rand: RandomSource): T[];
|
|
28
|
+
//# sourceMappingURL=prng.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prng.d.ts","sourceRoot":"","sources":["../../src/lib/cel/prng.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,2CAA2C;AAC3C,MAAM,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC;AAExC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAQrD;AAED,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,CAAC,EAAE,CAYtG;AAED,oGAAoG;AACpG,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,CAAC,EAAE,CAQnG"}
|
package/lib/cel/prng.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Deterministic PRNG + sampling primitives backing the CEL `randomSample`
|
|
4
|
+
* function.
|
|
5
|
+
*
|
|
6
|
+
* STABILITY CONTRACT — DO NOT CHANGE THESE ALGORITHMS.
|
|
7
|
+
* The same seed must produce the same sample on every runtime and every SDK
|
|
8
|
+
* version: the backend (server) and frontend (client) rely on agreeing outputs,
|
|
9
|
+
* and customers rely on seeds for reproducible workflow runs. Golden-value
|
|
10
|
+
* tests in tests/lib/cel/prng.test.ts pin the exact outputs.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.mulberry32 = mulberry32;
|
|
14
|
+
exports.normalizeSeed = normalizeSeed;
|
|
15
|
+
exports.sampleWithoutReplacement = sampleWithoutReplacement;
|
|
16
|
+
exports.sampleWithReplacement = sampleWithReplacement;
|
|
17
|
+
/**
|
|
18
|
+
* mulberry32: fast 32-bit PRNG with exact, platform-independent output.
|
|
19
|
+
* `seed` is coerced to uint32 (via `>>> 0`); use {@link normalizeSeed} to
|
|
20
|
+
* convert arbitrary CEL ints before calling this.
|
|
21
|
+
*/
|
|
22
|
+
function mulberry32(seed) {
|
|
23
|
+
let a = seed >>> 0;
|
|
24
|
+
return () => {
|
|
25
|
+
a = (a + 0x6d2b79f5) | 0;
|
|
26
|
+
let t = Math.imul(a ^ (a >>> 15), 1 | a);
|
|
27
|
+
t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;
|
|
28
|
+
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/** Normalize a CEL int (bigint or number) to a uint32 PRNG seed. */
|
|
32
|
+
function normalizeSeed(seed) {
|
|
33
|
+
return Number(BigInt.asUintN(32, BigInt(seed)));
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Sample `count` distinct elements via partial Fisher–Yates.
|
|
37
|
+
* `count` is clamped to [0, list.length]; the input list is not mutated.
|
|
38
|
+
*/
|
|
39
|
+
function sampleWithoutReplacement(list, count, rand) {
|
|
40
|
+
const n = list.length;
|
|
41
|
+
const k = Math.min(Math.max(count, 0), n);
|
|
42
|
+
if (k === 0)
|
|
43
|
+
return [];
|
|
44
|
+
const pool = list.slice();
|
|
45
|
+
for (let i = 0; i < k; i++) {
|
|
46
|
+
const j = i + Math.floor(rand() * (n - i));
|
|
47
|
+
const tmp = pool[i];
|
|
48
|
+
pool[i] = pool[j];
|
|
49
|
+
pool[j] = tmp;
|
|
50
|
+
}
|
|
51
|
+
return pool.slice(0, k);
|
|
52
|
+
}
|
|
53
|
+
/** `count` independent draws; duplicates allowed. Returns [] if the list is empty or count <= 0. */
|
|
54
|
+
function sampleWithReplacement(list, count, rand) {
|
|
55
|
+
const n = list.length;
|
|
56
|
+
if (n === 0 || count <= 0)
|
|
57
|
+
return [];
|
|
58
|
+
const out = [];
|
|
59
|
+
for (let i = 0; i < count; i++) {
|
|
60
|
+
out.push(list[Math.floor(rand() * n)]);
|
|
61
|
+
}
|
|
62
|
+
return out;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=prng.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prng.js","sourceRoot":"","sources":["../../src/lib/cel/prng.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAUH,gCAQC;AAGD,sCAEC;AAMD,4DAYC;AAGD,sDAQC;AA/CD;;;;GAIG;AACH,SAAgB,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;IACnB,OAAO,GAAG,EAAE;QACV,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,SAAgB,aAAa,CAAC,IAAqB;IACjD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CAAI,IAAkB,EAAE,KAAa,EAAE,IAAkB;IAC/F,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACnB,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,oGAAoG;AACpG,SAAgB,qBAAqB,CAAI,IAAkB,EAAE,KAAa,EAAE,IAAkB;IAC5F,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,GAAG,GAAQ,EAAE,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/lib/cel/prng.mjs
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic PRNG + sampling primitives backing the CEL `randomSample`
|
|
3
|
+
* function.
|
|
4
|
+
*
|
|
5
|
+
* STABILITY CONTRACT — DO NOT CHANGE THESE ALGORITHMS.
|
|
6
|
+
* The same seed must produce the same sample on every runtime and every SDK
|
|
7
|
+
* version: the backend (server) and frontend (client) rely on agreeing outputs,
|
|
8
|
+
* and customers rely on seeds for reproducible workflow runs. Golden-value
|
|
9
|
+
* tests in tests/lib/cel/prng.test.ts pin the exact outputs.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* mulberry32: fast 32-bit PRNG with exact, platform-independent output.
|
|
13
|
+
* `seed` is coerced to uint32 (via `>>> 0`); use {@link normalizeSeed} to
|
|
14
|
+
* convert arbitrary CEL ints before calling this.
|
|
15
|
+
*/
|
|
16
|
+
export function mulberry32(seed) {
|
|
17
|
+
let a = seed >>> 0;
|
|
18
|
+
return () => {
|
|
19
|
+
a = (a + 0x6d2b79f5) | 0;
|
|
20
|
+
let t = Math.imul(a ^ (a >>> 15), 1 | a);
|
|
21
|
+
t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;
|
|
22
|
+
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** Normalize a CEL int (bigint or number) to a uint32 PRNG seed. */
|
|
26
|
+
export function normalizeSeed(seed) {
|
|
27
|
+
return Number(BigInt.asUintN(32, BigInt(seed)));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Sample `count` distinct elements via partial Fisher–Yates.
|
|
31
|
+
* `count` is clamped to [0, list.length]; the input list is not mutated.
|
|
32
|
+
*/
|
|
33
|
+
export function sampleWithoutReplacement(list, count, rand) {
|
|
34
|
+
const n = list.length;
|
|
35
|
+
const k = Math.min(Math.max(count, 0), n);
|
|
36
|
+
if (k === 0)
|
|
37
|
+
return [];
|
|
38
|
+
const pool = list.slice();
|
|
39
|
+
for (let i = 0; i < k; i++) {
|
|
40
|
+
const j = i + Math.floor(rand() * (n - i));
|
|
41
|
+
const tmp = pool[i];
|
|
42
|
+
pool[i] = pool[j];
|
|
43
|
+
pool[j] = tmp;
|
|
44
|
+
}
|
|
45
|
+
return pool.slice(0, k);
|
|
46
|
+
}
|
|
47
|
+
/** `count` independent draws; duplicates allowed. Returns [] if the list is empty or count <= 0. */
|
|
48
|
+
export function sampleWithReplacement(list, count, rand) {
|
|
49
|
+
const n = list.length;
|
|
50
|
+
if (n === 0 || count <= 0)
|
|
51
|
+
return [];
|
|
52
|
+
const out = [];
|
|
53
|
+
for (let i = 0; i < count; i++) {
|
|
54
|
+
out.push(list[Math.floor(rand() * n)]);
|
|
55
|
+
}
|
|
56
|
+
return out;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=prng.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prng.mjs","sourceRoot":"","sources":["../../src/lib/cel/prng.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;IACnB,OAAO,GAAG,EAAE;QACV,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,aAAa,CAAC,IAAqB;IACjD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAI,IAAkB,EAAE,KAAa,EAAE,IAAkB;IAC/F,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACnB,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,qBAAqB,CAAI,IAAkB,EAAE,KAAa,EAAE,IAAkB;IAC5F,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,GAAG,GAAQ,EAAE,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow_converter.d.mts","sourceRoot":"","sources":["../src/lib/workflow_converter.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,yBAAyB,EAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC3C,aAAa,CAAC,EAAE,0BAA0B,EAAE,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC1B;IACE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,cAAc,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAC5F,GACD;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAA;CAAE,GACxG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACvE;IACE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,cAAc,GAAG;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH,GACD;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAChF;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACrF;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC7E;IACE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,cAAc,GAAG;
|
|
1
|
+
{"version":3,"file":"workflow_converter.d.mts","sourceRoot":"","sources":["../src/lib/workflow_converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow_converter.d.ts","sourceRoot":"","sources":["../src/lib/workflow_converter.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,yBAAyB,EAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC3C,aAAa,CAAC,EAAE,0BAA0B,EAAE,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC1B;IACE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,cAAc,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAC5F,GACD;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAA;CAAE,GACxG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACvE;IACE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,cAAc,GAAG;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH,GACD;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAChF;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACrF;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC7E;IACE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,cAAc,GAAG;
|
|
1
|
+
{"version":3,"file":"workflow_converter.d.ts","sourceRoot":"","sources":["../src/lib/workflow_converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -321,6 +321,42 @@ function hasHandleConnection(node, handleName, edges, nodeId) {
|
|
|
321
321
|
function getOutputHandleVarName(targetNodeId, handleName) {
|
|
322
322
|
return ['output', 'allOutputs'].includes(handleName) ? targetNodeId : `${targetNodeId}_${handleName}`;
|
|
323
323
|
}
|
|
324
|
+
function getIsSliceAssetsItemsSourceHandle(nodeId, sourceHandle) {
|
|
325
|
+
return sourceHandle === `${nodeId}-source-items` || sourceHandle === `${nodeId}-source-assets`;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Builds the concat variables and flow inputs for a list-concatenating node
|
|
329
|
+
* (groupItems, sliceAssets in randomize mode) from its incoming edges.
|
|
330
|
+
* `getVarName` maps a target node id + output handle name to the variable name,
|
|
331
|
+
* which differs between callers.
|
|
332
|
+
*/
|
|
333
|
+
function collectConcatVarsAndInputs(edges, ctx, getVarName) {
|
|
334
|
+
const { nodes, inputNodeIds } = ctx;
|
|
335
|
+
const variables = [];
|
|
336
|
+
const flowInputs = [];
|
|
337
|
+
for (const edge of edges) {
|
|
338
|
+
const targetNode = nodes.find((n) => n.id === edge.target);
|
|
339
|
+
if (!targetNode)
|
|
340
|
+
continue;
|
|
341
|
+
const ref = getSourceRef(edge, ctx);
|
|
342
|
+
if (!ref)
|
|
343
|
+
continue;
|
|
344
|
+
const outHandle = targetNode.data.outputHandles?.find((h) => h.id === edge.targetHandle);
|
|
345
|
+
const outHandleName = outHandle?.name ?? 'output';
|
|
346
|
+
const varName = getVarName(targetNode.id, outHandleName);
|
|
347
|
+
const isArr = (targetNode.type === 'asset' && !!targetNode.data.isMultiple) ||
|
|
348
|
+
targetNode.type === 'groupItems' ||
|
|
349
|
+
targetNode.type === 'sliceAssets' ||
|
|
350
|
+
outHandleName === 'allOutputs';
|
|
351
|
+
const isRequired = inputNodeIds.includes(targetNode.id) ?
|
|
352
|
+
(targetNode.type === 'asset' && !!targetNode.data.isRequired) ||
|
|
353
|
+
['firstFrame', 'lastFrame'].includes(outHandleName)
|
|
354
|
+
: true;
|
|
355
|
+
variables.push({ name: varName, isArray: isArr, isRequired });
|
|
356
|
+
flowInputs.push({ name: varName, type: isArr ? 'file_array' : 'file', ref });
|
|
357
|
+
}
|
|
358
|
+
return { variables, flowInputs };
|
|
359
|
+
}
|
|
324
360
|
function setOrPushFlowInput(flowInputs, existingIndex, input) {
|
|
325
361
|
if (existingIndex !== -1) {
|
|
326
362
|
flowInputs[existingIndex] = input;
|
|
@@ -1120,32 +1156,8 @@ function convertWorkflowEditorToFlow(params) {
|
|
|
1120
1156
|
// ------------------------------------
|
|
1121
1157
|
}
|
|
1122
1158
|
else if (node.type === 'groupItems') {
|
|
1123
|
-
const flowInputs = [];
|
|
1124
|
-
const variables = [];
|
|
1125
1159
|
const conditionalHandleId = getConditionalInputHandleId(node.id);
|
|
1126
|
-
|
|
1127
|
-
if (edge.sourceHandle === conditionalHandleId)
|
|
1128
|
-
continue;
|
|
1129
|
-
const targetNode = nodes.find((n) => n.id === edge.target);
|
|
1130
|
-
if (!targetNode)
|
|
1131
|
-
continue;
|
|
1132
|
-
const ref = getSourceRef(edge, ctx);
|
|
1133
|
-
if (!ref)
|
|
1134
|
-
continue;
|
|
1135
|
-
const outHandle = targetNode.data.outputHandles?.find((h) => h.id === edge.targetHandle);
|
|
1136
|
-
const outHandleName = outHandle?.name ?? 'output';
|
|
1137
|
-
const varName = `${targetNode.id}_${outHandleName}`;
|
|
1138
|
-
const isArr = (targetNode.type === 'asset' && !!targetNode.data.isMultiple) ||
|
|
1139
|
-
targetNode.type === 'groupItems' ||
|
|
1140
|
-
targetNode.type === 'sliceAssets' ||
|
|
1141
|
-
outHandleName === 'allOutputs';
|
|
1142
|
-
const isRequired = inputNodeIds.includes(targetNode.id) ?
|
|
1143
|
-
(targetNode.type === 'asset' && !!targetNode.data.isRequired) ||
|
|
1144
|
-
['firstFrame', 'lastFrame'].includes(outHandleName)
|
|
1145
|
-
: true;
|
|
1146
|
-
variables.push({ name: varName, isArray: isArr, isRequired });
|
|
1147
|
-
flowInputs.push({ name: varName, type: isArr ? 'file_array' : 'file', ref });
|
|
1148
|
-
}
|
|
1160
|
+
const { variables, flowInputs } = collectConcatVarsAndInputs(incomingEdges.filter((e) => e.sourceHandle !== conditionalHandleId), ctx, (targetNodeId, handleName) => `${targetNodeId}_${handleName}`);
|
|
1149
1161
|
const orderedValues = convertValueToList(node.data.value ?? '');
|
|
1150
1162
|
variables.sort((a, b) => orderedValues.indexOf(a.name) - orderedValues.indexOf(b.name));
|
|
1151
1163
|
flowInputs.sort((a, b) => orderedValues.indexOf(a.name) - orderedValues.indexOf(b.name));
|
|
@@ -1157,22 +1169,38 @@ function convertWorkflowEditorToFlow(params) {
|
|
|
1157
1169
|
inputs: flowInputs.length > 0 ? flowInputs : undefined,
|
|
1158
1170
|
});
|
|
1159
1171
|
// ------------------------------------
|
|
1160
|
-
// SliceAssets -> slice(list, from, from+count)
|
|
1172
|
+
// SliceAssets -> slice(list, from, from+count) or randomSample(list, count, seed)
|
|
1161
1173
|
// ------------------------------------
|
|
1162
1174
|
}
|
|
1163
1175
|
else if (node.type === 'sliceAssets') {
|
|
1164
|
-
const
|
|
1165
|
-
|
|
1166
|
-
|
|
1176
|
+
const sliceData = node.data;
|
|
1177
|
+
const conditionalHandleId = getConditionalInputHandleId(node.id);
|
|
1178
|
+
const itemsEdges = incomingEdges.filter((e) => e.sourceHandle !== conditionalHandleId &&
|
|
1179
|
+
getIsSliceAssetsItemsSourceHandle(node.id, e.sourceHandle));
|
|
1180
|
+
if (sliceData.isRandomize) {
|
|
1181
|
+
const { variables, flowInputs } = collectConcatVarsAndInputs(itemsEdges, ctx, getOutputHandleVarName);
|
|
1182
|
+
flowInputs.push(...collectConditionalConnectionInputs(incomingEdges, node.id, ctx));
|
|
1183
|
+
const count = Math.max(1, parseInt(String(sliceData.count ?? ''), 10) || 1);
|
|
1184
|
+
const seed = parseInt(String(sliceData.randomSeed ?? ''), 10) || 0;
|
|
1185
|
+
const transform = `randomSample(${buildConcatArrayTransform(variables)}, ${count}, ${seed})`;
|
|
1186
|
+
flow.push({
|
|
1187
|
+
id: flowId,
|
|
1188
|
+
type: 'transform',
|
|
1189
|
+
logic: { transform },
|
|
1190
|
+
inputs: flowInputs.length > 0 ? flowInputs : undefined,
|
|
1191
|
+
});
|
|
1167
1192
|
}
|
|
1168
1193
|
else {
|
|
1169
|
-
const
|
|
1170
|
-
if (
|
|
1171
|
-
|
|
1172
|
-
|
|
1194
|
+
const assetsEdge = itemsEdges[0];
|
|
1195
|
+
if (!assetsEdge) {
|
|
1196
|
+
flow.push({ id: flowId, type: 'transform', logic: { transform: '[]' } });
|
|
1197
|
+
}
|
|
1198
|
+
else {
|
|
1199
|
+
const targetNode = nodes.find((n) => n.id === assetsEdge.target);
|
|
1200
|
+
const ref = targetNode ? getSourceRef(assetsEdge, ctx) : undefined;
|
|
1201
|
+
if (targetNode && ref) {
|
|
1173
1202
|
const outHandle = targetNode.data.outputHandles?.find((h) => h.id === assetsEdge.targetHandle);
|
|
1174
1203
|
const varName = getOutputHandleVarName(targetNode.id, outHandle?.name ?? 'output');
|
|
1175
|
-
const sliceData = node.data;
|
|
1176
1204
|
const from = parseInt(String(sliceData.from ?? ''), 10) || 0;
|
|
1177
1205
|
const count = parseInt(String(sliceData.count ?? ''), 10) || 0;
|
|
1178
1206
|
const transform = from < 0 ?
|