@skenora/flow 0.1.2
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 +20 -0
- package/dist/core/flow-runtime.d.ts +28 -0
- package/dist/core/flow-runtime.d.ts.map +1 -0
- package/dist/core/flow-runtime.js +711 -0
- package/dist/core/flow-runtime.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/model/node-registry.d.ts +26 -0
- package/dist/model/node-registry.d.ts.map +1 -0
- package/dist/model/node-registry.js +252 -0
- package/dist/model/node-registry.js.map +1 -0
- package/dist/model/types.d.ts +143 -0
- package/dist/model/types.d.ts.map +1 -0
- package/dist/model/types.js +3 -0
- package/dist/model/types.js.map +1 -0
- package/dist/model/validation.d.ts +18 -0
- package/dist/model/validation.d.ts.map +1 -0
- package/dist/model/validation.js +186 -0
- package/dist/model/validation.js.map +1 -0
- package/package.json +31 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-runtime.js","sourceRoot":"","sources":["../../src/core/flow-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type FlowNode } from "./types.js";
|
|
2
|
+
export type FlowValueType = "any" | "boolean" | "number" | "string" | "object" | "transform";
|
|
3
|
+
export interface FlowPortDefinition {
|
|
4
|
+
name: string;
|
|
5
|
+
kind: "control" | "value";
|
|
6
|
+
valueType?: FlowValueType;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
multiple?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface FlowNodeDefinition {
|
|
11
|
+
type: string;
|
|
12
|
+
category: "trigger" | "value" | "control" | "action";
|
|
13
|
+
inputs: readonly FlowPortDefinition[];
|
|
14
|
+
outputs: readonly FlowPortDefinition[];
|
|
15
|
+
validateConfig?: (node: Readonly<FlowNode>) => readonly string[];
|
|
16
|
+
}
|
|
17
|
+
export declare class FlowNodeRegistry {
|
|
18
|
+
#private;
|
|
19
|
+
register(definition: FlowNodeDefinition): () => void;
|
|
20
|
+
get(type: string): FlowNodeDefinition | undefined;
|
|
21
|
+
has(type: string): boolean;
|
|
22
|
+
list(): readonly FlowNodeDefinition[];
|
|
23
|
+
}
|
|
24
|
+
export declare function createBuiltInFlowNodeRegistry(): FlowNodeRegistry;
|
|
25
|
+
export declare function createBuiltInFlowNodeDefinitions(): readonly FlowNodeDefinition[];
|
|
26
|
+
//# sourceMappingURL=node-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-registry.d.ts","sourceRoot":"","sources":["../../src/model/node-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAElE,MAAM,MAAM,aAAa,GACvB,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEnE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrD,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACvC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,SAAS,MAAM,EAAE,CAAC;CAClE;AAED,qBAAa,gBAAgB;;IAG3B,QAAQ,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAiDpD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIjD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,IAAI,IAAI,SAAS,kBAAkB,EAAE;CAGtC;AAMD,wBAAgB,6BAA6B,IAAI,gBAAgB,CAMhE;AAED,wBAAgB,gCAAgC,IAAI,SAAS,kBAAkB,EAAE,CA0LhF"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { FLOW_MATERIAL_PROPERTIES } from "./types.js";
|
|
2
|
+
export class FlowNodeRegistry {
|
|
3
|
+
#definitions = new Map();
|
|
4
|
+
register(definition) {
|
|
5
|
+
if (typeof definition.type !== "string" ||
|
|
6
|
+
!definition.type.trim() ||
|
|
7
|
+
definition.type !== definition.type.trim()) {
|
|
8
|
+
throw new Error("Flow node definition requires a type");
|
|
9
|
+
}
|
|
10
|
+
if (!["trigger", "value", "control", "action"].includes(definition.category)) {
|
|
11
|
+
throw new Error(`Flow node ${definition.type} has an invalid category`);
|
|
12
|
+
}
|
|
13
|
+
if (!Array.isArray(definition.inputs) ||
|
|
14
|
+
!Array.isArray(definition.outputs)) {
|
|
15
|
+
throw new Error(`Flow node ${definition.type} inputs and outputs must be arrays`);
|
|
16
|
+
}
|
|
17
|
+
if (definition.validateConfig !== undefined &&
|
|
18
|
+
typeof definition.validateConfig !== "function") {
|
|
19
|
+
throw new Error(`Flow node ${definition.type} validateConfig must be a function`);
|
|
20
|
+
}
|
|
21
|
+
assertPortDefinitions(definition.type, "input", definition.inputs);
|
|
22
|
+
assertPortDefinitions(definition.type, "output", definition.outputs);
|
|
23
|
+
if (this.#definitions.has(definition.type)) {
|
|
24
|
+
throw new Error(`Flow node definition is already registered: ${definition.type}`);
|
|
25
|
+
}
|
|
26
|
+
const owned = Object.freeze({
|
|
27
|
+
...definition,
|
|
28
|
+
inputs: Object.freeze(definition.inputs.map(ownPort)),
|
|
29
|
+
outputs: Object.freeze(definition.outputs.map(ownPort)),
|
|
30
|
+
});
|
|
31
|
+
this.#definitions.set(definition.type, owned);
|
|
32
|
+
return () => {
|
|
33
|
+
if (this.#definitions.get(definition.type) === owned) {
|
|
34
|
+
this.#definitions.delete(definition.type);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
get(type) {
|
|
39
|
+
return this.#definitions.get(type);
|
|
40
|
+
}
|
|
41
|
+
has(type) {
|
|
42
|
+
return this.#definitions.has(type);
|
|
43
|
+
}
|
|
44
|
+
list() {
|
|
45
|
+
return [...this.#definitions.values()];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const controlInput = controlPort("in");
|
|
49
|
+
const nextOutput = controlPort("next");
|
|
50
|
+
const anyValueOutput = valuePort("value", "any");
|
|
51
|
+
export function createBuiltInFlowNodeRegistry() {
|
|
52
|
+
const registry = new FlowNodeRegistry();
|
|
53
|
+
for (const definition of createBuiltInFlowNodeDefinitions()) {
|
|
54
|
+
registry.register(definition);
|
|
55
|
+
}
|
|
56
|
+
return registry;
|
|
57
|
+
}
|
|
58
|
+
export function createBuiltInFlowNodeDefinitions() {
|
|
59
|
+
const entityConfig = requireStringConfigs("entityId");
|
|
60
|
+
return [
|
|
61
|
+
triggerDefinition("trigger.scene.ready"),
|
|
62
|
+
triggerDefinition("trigger.event", requireStringConfigs("event")),
|
|
63
|
+
triggerDefinition("trigger.timer", combineConfigValidators(optionalFiniteConfig("intervalMs", (value) => value > 0), optionalBooleanConfig("repeat"))),
|
|
64
|
+
triggerDefinition("trigger.pointer", optionalEnumConfig("event", [
|
|
65
|
+
"pick",
|
|
66
|
+
"move",
|
|
67
|
+
"down",
|
|
68
|
+
"up",
|
|
69
|
+
"enter",
|
|
70
|
+
"leave",
|
|
71
|
+
])),
|
|
72
|
+
triggerDefinition("trigger.animation", optionalEnumConfig("event", ["started", "completed"])),
|
|
73
|
+
triggerDefinition("trigger.variable"),
|
|
74
|
+
valueDefinition("value.constant"),
|
|
75
|
+
valueDefinition("value.variable", [], "any", requireStringConfigs("name")),
|
|
76
|
+
valueDefinition("value.entity.state", [], "object", requireStringConfigs("entityId")),
|
|
77
|
+
valueDefinition("value.object.get", [valuePort("object", "any")], "any", requireStringConfigs("path")),
|
|
78
|
+
valueDefinition("value.math", [
|
|
79
|
+
requiredValuePort("left", "number"),
|
|
80
|
+
requiredValuePort("right", "number"),
|
|
81
|
+
], "number", optionalEnumConfig("operator", [
|
|
82
|
+
"add",
|
|
83
|
+
"subtract",
|
|
84
|
+
"multiply",
|
|
85
|
+
"divide",
|
|
86
|
+
"min",
|
|
87
|
+
"max",
|
|
88
|
+
"modulo",
|
|
89
|
+
])),
|
|
90
|
+
valueDefinition("value.logic", [
|
|
91
|
+
requiredValuePort("left", "boolean"),
|
|
92
|
+
requiredValuePort("right", "boolean"),
|
|
93
|
+
], "boolean", optionalEnumConfig("operator", ["not", "and", "or", "xor"])),
|
|
94
|
+
valueDefinition("value.compare", [requiredValuePort("left", "any"), requiredValuePort("right", "any")], "boolean", optionalEnumConfig("operator", [
|
|
95
|
+
"equals",
|
|
96
|
+
"notEquals",
|
|
97
|
+
"contains",
|
|
98
|
+
"greater",
|
|
99
|
+
"greaterOrEqual",
|
|
100
|
+
"less",
|
|
101
|
+
"lessOrEqual",
|
|
102
|
+
"isEmpty",
|
|
103
|
+
])),
|
|
104
|
+
{
|
|
105
|
+
type: "control.branch",
|
|
106
|
+
category: "control",
|
|
107
|
+
inputs: [controlInput, requiredValuePort("condition", "boolean")],
|
|
108
|
+
outputs: [controlPort("true"), controlPort("false")],
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: "control.delay",
|
|
112
|
+
category: "control",
|
|
113
|
+
inputs: [controlInput, valuePort("durationMs", "number")],
|
|
114
|
+
outputs: [nextOutput],
|
|
115
|
+
validateConfig: optionalFiniteConfig("durationMs", (value) => value >= 0),
|
|
116
|
+
},
|
|
117
|
+
actionDefinition("action.variable.set", [requiredValuePort("value", "any")], requireStringConfigs("name")),
|
|
118
|
+
actionDefinition("action.entity.setEnabled", [requiredValuePort("enabled", "boolean")], entityConfig),
|
|
119
|
+
actionDefinition("action.entity.setVisible", [requiredValuePort("visible", "boolean")], entityConfig),
|
|
120
|
+
actionDefinition("action.entity.setTransform", [requiredValuePort("transform", "transform")], entityConfig),
|
|
121
|
+
actionDefinition("action.entity.setTransparent", [valuePort("alpha", "number")], combineConfigValidators(entityConfig, optionalFiniteConfig("alpha", (value) => value >= 0 && value <= 1))),
|
|
122
|
+
actionDefinition("action.entity.clearTransparent", [], entityConfig),
|
|
123
|
+
actionDefinition("action.entity.setOutline", [valuePort("color", "string")], entityConfig),
|
|
124
|
+
actionDefinition("action.entity.clearOutline", [], entityConfig),
|
|
125
|
+
actionDefinition("action.material.set", [requiredValuePort("value", "any")], combineConfigValidators(requireStringConfigs("materialId", "property"), optionalEnumConfig("property", FLOW_MATERIAL_PROPERTIES))),
|
|
126
|
+
...["play", "pause", "resume", "stop", "reset"].map((action) => actionDefinition(`action.materialAnimation.${action}`, [], requireStringConfigs("materialId", "animationId"))),
|
|
127
|
+
actionDefinition("action.camera.frame", [valuePort("entityId", "string")]),
|
|
128
|
+
actionDefinition("action.camera.activateEntity", [
|
|
129
|
+
requiredValuePort("entityId", "string"),
|
|
130
|
+
valuePort("controls", "boolean"),
|
|
131
|
+
]),
|
|
132
|
+
actionDefinition("action.camera.restoreViewport"),
|
|
133
|
+
actionDefinition("action.camera.playPath", [
|
|
134
|
+
requiredValuePort("pathId", "string"),
|
|
135
|
+
]),
|
|
136
|
+
actionDefinition("action.camera.pausePath"),
|
|
137
|
+
actionDefinition("action.camera.resumePath"),
|
|
138
|
+
actionDefinition("action.camera.stopPath"),
|
|
139
|
+
actionDefinition("action.animation.play", [valuePort("animation", "string")], entityConfig),
|
|
140
|
+
actionDefinition("action.animation.stop", [valuePort("animation", "string")], entityConfig),
|
|
141
|
+
actionDefinition("action.particle.start", [], entityConfig),
|
|
142
|
+
actionDefinition("action.particle.stop", [], entityConfig),
|
|
143
|
+
actionDefinition("action.textureAnimation.play", [], requireStringConfigs("animationId")),
|
|
144
|
+
actionDefinition("action.textureAnimation.stop", [], requireStringConfigs("animationId")),
|
|
145
|
+
actionDefinition("action.event.emit", [valuePort("payload", "any")], requireStringConfigs("event")),
|
|
146
|
+
];
|
|
147
|
+
}
|
|
148
|
+
function triggerDefinition(type, validateConfig) {
|
|
149
|
+
return {
|
|
150
|
+
type,
|
|
151
|
+
category: "trigger",
|
|
152
|
+
inputs: [],
|
|
153
|
+
outputs: [nextOutput, valuePort("payload", "any")],
|
|
154
|
+
...(validateConfig ? { validateConfig } : {}),
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
function valueDefinition(type, inputs = [], outputType = "any", validateConfig) {
|
|
158
|
+
return {
|
|
159
|
+
type,
|
|
160
|
+
category: "value",
|
|
161
|
+
inputs,
|
|
162
|
+
outputs: outputType === "any"
|
|
163
|
+
? [anyValueOutput]
|
|
164
|
+
: [valuePort("value", outputType)],
|
|
165
|
+
...(validateConfig ? { validateConfig } : {}),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
function actionDefinition(type, inputs = [], validateConfig) {
|
|
169
|
+
return {
|
|
170
|
+
type,
|
|
171
|
+
category: "action",
|
|
172
|
+
inputs: [controlInput, ...inputs],
|
|
173
|
+
outputs: [nextOutput],
|
|
174
|
+
...(validateConfig ? { validateConfig } : {}),
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
function controlPort(name) {
|
|
178
|
+
return Object.freeze({ name, kind: "control" });
|
|
179
|
+
}
|
|
180
|
+
function valuePort(name, valueType) {
|
|
181
|
+
return Object.freeze({ name, kind: "value", valueType });
|
|
182
|
+
}
|
|
183
|
+
function requiredValuePort(name, valueType) {
|
|
184
|
+
return Object.freeze({ name, kind: "value", valueType, required: true });
|
|
185
|
+
}
|
|
186
|
+
function ownPort(port) {
|
|
187
|
+
return Object.freeze({ ...port });
|
|
188
|
+
}
|
|
189
|
+
function assertPortDefinitions(nodeType, direction, ports) {
|
|
190
|
+
const names = new Set();
|
|
191
|
+
for (const port of ports) {
|
|
192
|
+
if (typeof port.name !== "string" || !port.name.trim()) {
|
|
193
|
+
throw new Error(`Flow ${nodeType} has an unnamed ${direction} port`);
|
|
194
|
+
}
|
|
195
|
+
if (port.kind !== "control" && port.kind !== "value") {
|
|
196
|
+
throw new Error(`Flow ${nodeType} has an invalid ${direction} port kind: ${port.name}`);
|
|
197
|
+
}
|
|
198
|
+
if (port.valueType !== undefined &&
|
|
199
|
+
!["any", "boolean", "number", "string", "object", "transform"].includes(port.valueType)) {
|
|
200
|
+
throw new Error(`Flow ${nodeType} has an invalid ${direction} value type: ${port.name}`);
|
|
201
|
+
}
|
|
202
|
+
if ((port.required !== undefined && typeof port.required !== "boolean") ||
|
|
203
|
+
(port.multiple !== undefined && typeof port.multiple !== "boolean")) {
|
|
204
|
+
throw new Error(`Flow ${nodeType} has invalid ${direction} port flags: ${port.name}`);
|
|
205
|
+
}
|
|
206
|
+
if (names.has(port.name)) {
|
|
207
|
+
throw new Error(`Flow ${nodeType} has a duplicate ${direction} port: ${port.name}`);
|
|
208
|
+
}
|
|
209
|
+
names.add(port.name);
|
|
210
|
+
if (port.kind === "control" && port.valueType !== undefined) {
|
|
211
|
+
throw new Error(`Flow ${nodeType} control port cannot declare a value type: ${port.name}`);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
function requireStringConfigs(...keys) {
|
|
216
|
+
return (node) => keys.flatMap((key) => typeof node.config[key] === "string" && node.config[key].trim()
|
|
217
|
+
? []
|
|
218
|
+
: [`Flow node ${node.id} requires string config: ${key}`]);
|
|
219
|
+
}
|
|
220
|
+
function combineConfigValidators(...validators) {
|
|
221
|
+
return (node) => validators.flatMap((validate) => validate(node));
|
|
222
|
+
}
|
|
223
|
+
function optionalEnumConfig(key, values) {
|
|
224
|
+
return (node) => {
|
|
225
|
+
const value = node.config[key];
|
|
226
|
+
if (value === undefined || values.includes(value))
|
|
227
|
+
return [];
|
|
228
|
+
return [
|
|
229
|
+
`Flow node ${node.id} config ${key} must be one of: ${values.join(", ")}`,
|
|
230
|
+
];
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
function optionalFiniteConfig(key, accept) {
|
|
234
|
+
return (node) => {
|
|
235
|
+
const value = node.config[key];
|
|
236
|
+
if (value === undefined)
|
|
237
|
+
return [];
|
|
238
|
+
if (typeof value === "number" && Number.isFinite(value) && accept(value)) {
|
|
239
|
+
return [];
|
|
240
|
+
}
|
|
241
|
+
return [`Flow node ${node.id} config ${key} is invalid`];
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
function optionalBooleanConfig(key) {
|
|
245
|
+
return (node) => {
|
|
246
|
+
const value = node.config[key];
|
|
247
|
+
return value === undefined || typeof value === "boolean"
|
|
248
|
+
? []
|
|
249
|
+
: [`Flow node ${node.id} config ${key} must be a boolean`];
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=node-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-registry.js","sourceRoot":"","sources":["../../src/model/node-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/** Serializable Flow model and host execution contracts. */
|
|
2
|
+
import type { EventMetadata, EventSubscriber } from "@skenora/events";
|
|
3
|
+
import type { FlowEdgeRecord, FlowGraphRecord, FlowNodeRecord, MaterialRuntimeProperty, TransformUpdate } from "@skenora/contracts";
|
|
4
|
+
export type BuiltInFlowNodeType = "trigger.scene.ready" | "trigger.event" | "trigger.timer" | "trigger.pointer" | "trigger.animation" | "trigger.variable" | "value.constant" | "value.variable" | "value.entity.state" | "value.object.get" | "value.math" | "value.logic" | "value.compare" | "control.branch" | "control.delay" | "action.variable.set" | "action.entity.setEnabled" | "action.entity.setVisible" | "action.entity.setTransform" | "action.entity.setTransparent" | "action.entity.clearTransparent" | "action.entity.setOutline" | "action.entity.clearOutline" | "action.material.set" | "action.materialAnimation.play" | "action.materialAnimation.pause" | "action.materialAnimation.resume" | "action.materialAnimation.stop" | "action.materialAnimation.reset" | "action.camera.frame" | "action.camera.activateEntity" | "action.camera.restoreViewport" | "action.camera.playPath" | "action.camera.pausePath" | "action.camera.resumePath" | "action.camera.stopPath" | "action.animation.play" | "action.animation.stop" | "action.particle.start" | "action.particle.stop" | "action.textureAnimation.play" | "action.textureAnimation.stop" | "action.event.emit";
|
|
5
|
+
export type FlowNode = FlowNodeRecord & {
|
|
6
|
+
type: BuiltInFlowNodeType | (string & {});
|
|
7
|
+
};
|
|
8
|
+
export type FlowEdge = FlowEdgeRecord;
|
|
9
|
+
export type FlowGraph = FlowGraphRecord;
|
|
10
|
+
export interface FlowExecutionContext {
|
|
11
|
+
runId: string;
|
|
12
|
+
graphId: string;
|
|
13
|
+
triggerNodeId: string;
|
|
14
|
+
payload: unknown;
|
|
15
|
+
correlationId: string;
|
|
16
|
+
causationId?: string;
|
|
17
|
+
signal: AbortSignal;
|
|
18
|
+
}
|
|
19
|
+
export interface FlowEventPort {
|
|
20
|
+
readonly source: EventSubscriber<Record<string, unknown>>;
|
|
21
|
+
emit(type: string, payload: unknown, metadata?: EventMetadata): void | Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
export interface FlowVariablePort {
|
|
24
|
+
getVariable(name: string): unknown;
|
|
25
|
+
setVariable(name: string, value: unknown): void | Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
export interface FlowEntityPort {
|
|
28
|
+
getEntityState(entityId: string): FlowEntityState | null;
|
|
29
|
+
setEntityEnabled(entityId: string, enabled: boolean): void | Promise<void>;
|
|
30
|
+
setEntityVisible(entityId: string, visible: boolean): void | Promise<void>;
|
|
31
|
+
setEntityTransform(entityId: string, transform: TransformUpdate): void | Promise<void>;
|
|
32
|
+
setEntityTransparent(entityId: string, alpha: number | null): void | Promise<void>;
|
|
33
|
+
setEntityOutline(entityId: string, color: string | null): void | Promise<void>;
|
|
34
|
+
}
|
|
35
|
+
export interface FlowMaterialPort {
|
|
36
|
+
setMaterialProperty(materialId: string, property: FlowMaterialProperty, value: unknown): void | Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
export interface FlowCameraPort {
|
|
39
|
+
frameEntity(entityId: string | null): void | Promise<void>;
|
|
40
|
+
activateCameraEntity(entityId: string, controls: boolean): void | Promise<void>;
|
|
41
|
+
restoreViewportCamera(): void | Promise<void>;
|
|
42
|
+
playCameraPath(pathId: string): void | Promise<void>;
|
|
43
|
+
pauseCameraPath(): void | Promise<void>;
|
|
44
|
+
resumeCameraPath(): void | Promise<void>;
|
|
45
|
+
stopCameraPath(): void | Promise<void>;
|
|
46
|
+
}
|
|
47
|
+
export interface FlowAnimationPort {
|
|
48
|
+
playAnimation(entityId: string, animation: string | null): void | Promise<void>;
|
|
49
|
+
stopAnimation(entityId: string, animation: string | null): void | Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
export interface FlowParticlePort {
|
|
52
|
+
setParticleRunning(entityId: string, running: boolean): void | Promise<void>;
|
|
53
|
+
}
|
|
54
|
+
export interface FlowTextureAnimationPort {
|
|
55
|
+
playTextureAnimation(animationId: string, options?: {
|
|
56
|
+
signal?: AbortSignal;
|
|
57
|
+
}): void | Promise<void>;
|
|
58
|
+
stopTextureAnimation(animationId: string): void | Promise<void>;
|
|
59
|
+
}
|
|
60
|
+
export interface FlowMaterialAnimationPort {
|
|
61
|
+
playMaterialAnimation(materialId: string, animationId: string, options?: {
|
|
62
|
+
signal?: AbortSignal;
|
|
63
|
+
}): void | Promise<void>;
|
|
64
|
+
pauseMaterialAnimation(materialId: string, animationId: string): void | Promise<void>;
|
|
65
|
+
resumeMaterialAnimation(materialId: string, animationId: string): void | Promise<void>;
|
|
66
|
+
stopMaterialAnimation(materialId: string, animationId: string): void | Promise<void>;
|
|
67
|
+
resetMaterialAnimation(materialId: string, animationId: string): void | Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Capability-oriented Flow host. Core execution depends on ports rather than a
|
|
71
|
+
* concrete runtime, renderer, or event hub.
|
|
72
|
+
*/
|
|
73
|
+
export interface FlowHost {
|
|
74
|
+
readonly events: FlowEventPort;
|
|
75
|
+
readonly variables: FlowVariablePort;
|
|
76
|
+
readonly entities: FlowEntityPort;
|
|
77
|
+
readonly materials: FlowMaterialPort;
|
|
78
|
+
/** Optional for existing custom hosts; an animation action fails if absent. */
|
|
79
|
+
readonly materialAnimations?: FlowMaterialAnimationPort;
|
|
80
|
+
readonly camera: FlowCameraPort;
|
|
81
|
+
readonly animations: FlowAnimationPort;
|
|
82
|
+
readonly particles: FlowParticlePort;
|
|
83
|
+
readonly textureAnimations: FlowTextureAnimationPort;
|
|
84
|
+
}
|
|
85
|
+
export interface FlowEntityState {
|
|
86
|
+
id: string;
|
|
87
|
+
enabled: boolean;
|
|
88
|
+
visible: boolean;
|
|
89
|
+
transform?: TransformUpdate;
|
|
90
|
+
}
|
|
91
|
+
export declare const FLOW_MATERIAL_PROPERTIES: readonly ["baseColor", "emissiveColor", "metallic", "roughness", "microSurface", "metallicF0Factor", "alpha", "emissiveIntensity", "indexOfRefraction", "alphaCutOff", "transparencyMode", "doubleSided", "clearCoatIntensity", "clearCoatRoughness", "sheenIntensity", "sheenRoughness", ...("gradientColorStart" | "gradientColorEnd" | "gradientStart" | "gradientEnd" | "gradientStrength" | "rimColor" | "rimIntensity" | "rimPower" | "dissolveProgress" | "dissolveScale" | "dissolveEdgeWidth" | "dissolveEdgeColor" | "dissolveEdgeIntensity" | "clipPlaneNormal" | "clipOffset" | "clipEdgeWidth" | "clipEdgeColor" | "clipEdgeIntensity" | "neonColor" | "neonIntensity" | "neonScale" | "neonWidth" | "neonPhase" | "neonPulseStrength")[]];
|
|
92
|
+
export type FlowMaterialProperty = MaterialRuntimeProperty;
|
|
93
|
+
export interface FlowRuntimeEventMap {
|
|
94
|
+
"flow.run.started": {
|
|
95
|
+
runId: string;
|
|
96
|
+
graphId: string;
|
|
97
|
+
triggerNodeId: string;
|
|
98
|
+
};
|
|
99
|
+
"flow.node.started": {
|
|
100
|
+
runId: string;
|
|
101
|
+
graphId: string;
|
|
102
|
+
nodeId: string;
|
|
103
|
+
};
|
|
104
|
+
"flow.node.completed": {
|
|
105
|
+
runId: string;
|
|
106
|
+
graphId: string;
|
|
107
|
+
nodeId: string;
|
|
108
|
+
};
|
|
109
|
+
"flow.node.failed": {
|
|
110
|
+
runId: string;
|
|
111
|
+
graphId: string;
|
|
112
|
+
nodeId: string;
|
|
113
|
+
error: unknown;
|
|
114
|
+
};
|
|
115
|
+
"flow.run.completed": {
|
|
116
|
+
runId: string;
|
|
117
|
+
graphId: string;
|
|
118
|
+
steps: number;
|
|
119
|
+
};
|
|
120
|
+
"flow.run.failed": {
|
|
121
|
+
runId: string;
|
|
122
|
+
graphId: string;
|
|
123
|
+
error: unknown;
|
|
124
|
+
};
|
|
125
|
+
"flow.run.cancelled": {
|
|
126
|
+
runId: string;
|
|
127
|
+
graphId: string;
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
export interface FlowNodeExecutionInput {
|
|
131
|
+
node: FlowNode;
|
|
132
|
+
values: Readonly<Record<string, unknown>>;
|
|
133
|
+
context: FlowExecutionContext;
|
|
134
|
+
host: FlowHost;
|
|
135
|
+
}
|
|
136
|
+
export interface FlowNodeExecutionResult {
|
|
137
|
+
/** Control output port names to continue through. Defaults to ["next"]. */
|
|
138
|
+
control?: readonly string[];
|
|
139
|
+
/** Values exposed by output port name. */
|
|
140
|
+
values?: Readonly<Record<string, unknown>>;
|
|
141
|
+
}
|
|
142
|
+
export type FlowNodeExecutor = (input: FlowNodeExecutionInput) => FlowNodeExecutionResult | Promise<FlowNodeExecutionResult>;
|
|
143
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAoMjE,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { FlowGraph } from "./types.js";
|
|
2
|
+
import { type FlowNodeRegistry } from "./node-registry.js";
|
|
3
|
+
export interface FlowValidationIssue {
|
|
4
|
+
code: "duplicate-node" | "duplicate-edge" | "missing-node" | "invalid-edge" | "missing-trigger" | "unknown-node" | "unknown-port" | "port-kind-mismatch" | "port-type-mismatch" | "multiple-input" | "missing-input" | "invalid-config";
|
|
5
|
+
message: string;
|
|
6
|
+
nodeId?: string;
|
|
7
|
+
edgeId?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface FlowValidationResult {
|
|
10
|
+
valid: boolean;
|
|
11
|
+
issues: readonly FlowValidationIssue[];
|
|
12
|
+
}
|
|
13
|
+
export declare class FlowValidationError extends Error {
|
|
14
|
+
readonly issues: readonly FlowValidationIssue[];
|
|
15
|
+
constructor(issues: readonly FlowValidationIssue[]);
|
|
16
|
+
}
|
|
17
|
+
export declare function validateFlowGraph(graph: FlowGraph, registry?: FlowNodeRegistry): FlowValidationResult;
|
|
18
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/model/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,mBAAmB;IAClC,IAAI,EACA,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,iBAAiB,GACjB,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,oBAAoB,GACpB,gBAAgB,GAChB,eAAe,GACf,gBAAgB,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACxC;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;gBAEpC,MAAM,EAAE,SAAS,mBAAmB,EAAE;CAMnD;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,SAAS,EAChB,QAAQ,GAAE,gBAAkD,GAC3D,oBAAoB,CA8FtB"}
|