@bian-womp/spark-graph 0.2.21 → 0.2.22

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.
@@ -1,5 +1,5 @@
1
1
  import type { NodeCategoryId } from "@bian-womp/spark-protocol";
2
- import type { ExecutionContext } from "./types";
2
+ import type { ExecutionContext, ExecutionPolicy } from "./types";
3
3
  export interface CategoryRuntime<State = unknown> {
4
4
  onInputsChanged?: (inputs: Record<string, unknown>, ctx: ExecutionContext<State>) => void | Promise<void>;
5
5
  onActivated?: (ctx: ExecutionContext<State>) => void | Promise<void>;
@@ -17,17 +17,6 @@ export interface NodeCategoryDescriptor<Impl = unknown, State = unknown> {
17
17
  impl: Impl;
18
18
  initialState?: Partial<State>;
19
19
  }) => CategoryRuntime<State>;
20
- policy?: {
21
- mode: "push" | "pull" | "hybrid";
22
- asyncConcurrency?: "merge" | "switch" | "queue" | "drop";
23
- timeoutMs?: number;
24
- maxQueue?: number;
25
- debounceMs?: number;
26
- throttleMs?: number;
27
- retry?: {
28
- attempts: number;
29
- backoffMs: (attemptIndex: number) => number;
30
- };
31
- };
20
+ policy?: Partial<ExecutionPolicy>;
32
21
  }
33
22
  //# sourceMappingURL=categories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../../../src/core/categories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,WAAW,eAAe,CAAC,KAAK,GAAG,OAAO;IAC9C,eAAe,CAAC,EAAE,CAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,GAAG,EAAE,gBAAgB,CAAC,KAAK,CAAC,KACzB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,aAAa,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,eAAe,CAAC,EAAE,CAChB,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,gBAAgB,CAAC,KAAK,CAAC,KACzB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IACrE,EAAE,EAAE,cAAc,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,aAAa,EAAE,CAAC,OAAO,EAAE;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,IAAI,CAAC;QACX,YAAY,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;KAC/B,KAAK,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;QACjC,gBAAgB,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;QACzD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAA;SAAE,CAAC;KAC3E,CAAC;CACH"}
1
+ {"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../../../src/core/categories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEjE,MAAM,WAAW,eAAe,CAAC,KAAK,GAAG,OAAO;IAC9C,eAAe,CAAC,EAAE,CAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,GAAG,EAAE,gBAAgB,CAAC,KAAK,CAAC,KACzB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,aAAa,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,eAAe,CAAC,EAAE,CAChB,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,gBAAgB,CAAC,KAAK,CAAC,KACzB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IACrE,EAAE,EAAE,cAAc,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,aAAa,EAAE,CAAC,OAAO,EAAE;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,IAAI,CAAC;QACX,YAAY,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;KAC/B,KAAK,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACnC"}
@@ -53,6 +53,17 @@ export declare function getTypedOutputTypeId(v: unknown): DataTypeId | undefined
53
53
  export declare function getTypedOutputValue(v: unknown): unknown;
54
54
  export declare function getInputTypeId(inputs: Record<string, InputHandleDescriptor> | undefined, handle: HandleId): DataTypeId | undefined;
55
55
  export declare function isInputPrivate(inputs: Record<string, InputHandleDescriptor> | undefined, handle: HandleId): boolean;
56
+ export interface ExecutionPolicy {
57
+ asyncConcurrency: "merge" | "switch" | "queue" | "drop";
58
+ timeoutMs: number;
59
+ maxQueue: number;
60
+ debounceMs: number;
61
+ throttleMs: number;
62
+ retry: {
63
+ attempts: number;
64
+ backoffMs: (attemptIndex: number) => number;
65
+ };
66
+ }
56
67
  export interface NodeTypeDescriptor<I extends Record<string, InputHandleDescriptor> = Record<string, InputHandleDescriptor>, O extends Record<string, DataTypeId | DataTypeId[]> = Record<string, DataTypeId | DataTypeId[]>, State = unknown, Impl = (inputs: Record<string, unknown>, ctx: NodeContext<State>) => void | Record<string, unknown> | Promise<void | Record<string, unknown>>> {
57
68
  id: NodeTypeId;
58
69
  categoryId: NodeCategoryId;
@@ -60,6 +71,7 @@ export interface NodeTypeDescriptor<I extends Record<string, InputHandleDescript
60
71
  inputs: I;
61
72
  outputs: O;
62
73
  impl: Impl;
74
+ policy?: Partial<ExecutionPolicy>;
63
75
  resolveHandles?: (ctx: {
64
76
  environment: Record<string, unknown>;
65
77
  params?: Record<string, unknown>;
@@ -78,7 +90,9 @@ export interface NodeTypeDescriptor<I extends Record<string, InputHandleDescript
78
90
  export interface GraphNodeDefinition {
79
91
  nodeId: NodeInstanceId;
80
92
  typeId: NodeTypeId;
81
- params?: Record<string, unknown>;
93
+ params?: Record<string, unknown> & {
94
+ policy?: Partial<ExecutionPolicy>;
95
+ };
82
96
  initialInputs?: Record<string, unknown>;
83
97
  resolvedHandles?: Partial<ResolvedHandles>;
84
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { GraphDefinition } from "../core/types";
2
+ export declare function createArrayComposeDecomposeDef(): GraphDefinition;
3
+ export declare function createArrayComposeDecomposeRegistry(): import("..").Registry;
4
+ export declare function main(): Promise<void>;
5
+ //# sourceMappingURL=arrays.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrays.d.ts","sourceRoot":"","sources":["../../../../src/examples/arrays.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAKhD,wBAAgB,8BAA8B,IAAI,eAAe,CAchE;AAED,wBAAgB,mCAAmC,0BAElD;AAED,wBAAsB,IAAI,kBAsDzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../src/examples/run.ts"],"names":[],"mappings":"AAAA,wBAAsB,GAAG,CAAC,OAAO,EAAE,MAAM,iBAuBxC"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../src/examples/run.ts"],"names":[],"mappings":"AAAA,wBAAsB,GAAG,CAAC,OAAO,EAAE,MAAM,iBA0BxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/examples/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,QA4C5C"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/examples/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,QAsC5C"}
@@ -1,4 +1,4 @@
1
- export type { DataTypeId, NodeTypeId, NodeInstanceId, HandleId, EdgeInstanceId, NodeCategoryId, DataTypeDescriptor, InvalidateReason, NodeContext, ExecutionContext, NodeTypeDescriptor, GraphDefinition, RuntimeNodeStats, RuntimeEdgeStats, TypedOutputValue, } from "./core/types";
1
+ export type { DataTypeDescriptor, InvalidateReason, NodeContext, ExecutionContext, NodeTypeDescriptor, GraphDefinition, RuntimeNodeStats, RuntimeEdgeStats, TypedOutputValue, } from "./core/types";
2
2
  export { typed, isTypedOutput, getTypedOutputTypeId, getTypedOutputValue, getInputTypeId, isInputPrivate, } from "./core/types";
3
3
  export type { CategoryRuntime, NodeCategoryDescriptor, } from "./core/categories";
4
4
  export { Registry } from "./builder/Registry";
@@ -20,5 +20,6 @@ export { createSimpleGraphRegistry, createSimpleGraphDef, } from "./examples/sim
20
20
  export { createAsyncGraphRegistry, createAsyncGraphDef, } from "./examples/async";
21
21
  export { createProgressGraphRegistry, createProgressGraphDef, } from "./examples/progress";
22
22
  export { createValidationGraphRegistry, createValidationGraphDef, } from "./examples/validation";
23
+ export { installLogging } from "./examples/shared";
23
24
  export { registerDelayNode, registerProgressNodes } from "./misc/base";
24
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,QAAQ,EACR,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,EACL,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,eAAe,EACf,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAChF,YAAY,EACV,MAAM,EACN,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,EACL,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,eAAe,EACf,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAChF,YAAY,EACV,MAAM,EACN,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"composite.d.ts","sourceRoot":"","sources":["../../../../src/plugins/composite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,eAAe,CAAC;IACrB,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC7D,CAAC;CACH;AAED,eAAO,MAAM,iBAAiB,GAC5B,UAAU,QAAQ,KACjB,sBAAsB,CACvB,aAAa,EACb;IAAE,KAAK,CAAC,EAAE,YAAY,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,CAuD5C,CAAC"}
1
+ {"version":3,"file":"composite.d.ts","sourceRoot":"","sources":["../../../../src/plugins/composite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,eAAe,CAAC;IACrB,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC7D,CAAC;CACH;AAED,eAAO,MAAM,iBAAiB,GAC5B,UAAU,QAAQ,KACjB,sBAAsB,CACvB,aAAa,EACb;IAAE,KAAK,CAAC,EAAE,YAAY,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,CAsD5C,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { RuntimeValue, RuntimeInvalidate, RuntimeError, RuntimeStats, ResolvedHandles } from "@bian-womp/spark-protocol";
2
- import type { GraphDefinition, RuntimeNodeStats } from "../core/types";
2
+ import type { GraphDefinition, RuntimeNodeStats, ExecutionPolicy } from "../core/types";
3
3
  import { Registry } from "../builder/Registry";
4
4
  export type RuntimeEventListener<K extends RuntimeEventName> = (e: RuntimeEventMap[K]) => void;
5
5
  export type RuntimeEventName = "value" | "invalidate" | "error" | "stats";
@@ -12,6 +12,7 @@ export interface RuntimeEventMap {
12
12
  export declare class GraphRuntime {
13
13
  private nodes;
14
14
  private edges;
15
+ private registry?;
15
16
  private resolvedByNode;
16
17
  private listeners;
17
18
  private environment;
@@ -54,6 +55,7 @@ export declare class GraphRuntime {
54
55
  typeId: string;
55
56
  params: {
56
57
  [x: string]: unknown;
58
+ policy?: Partial<ExecutionPolicy>;
57
59
  } | undefined;
58
60
  resolvedHandles: {
59
61
  inputs: Record<string, import("@bian-womp/spark-protocol").InputHandleDescriptor>;
@@ -86,5 +88,7 @@ export declare class GraphRuntime {
86
88
  reemit?: boolean;
87
89
  }): void;
88
90
  update(def: GraphDefinition, registry: Registry): void;
91
+ private scheduleRecomputeHandles;
92
+ private recomputeHandlesForNode;
89
93
  }
90
94
  //# sourceMappingURL=GraphRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GraphRuntime.d.ts","sourceRoot":"","sources":["../../../../src/runtime/GraphRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphRuntime.d.ts","sourceRoot":"","sources":["../../../../src/runtime/GraphRuntime.ts"],"names":[],"mappings":"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"}
package/lib/esm/index.js CHANGED
@@ -432,9 +432,10 @@ class GraphRuntime {
432
432
  }
433
433
  static create(def, registry, opts) {
434
434
  const gr = new GraphRuntime();
435
+ gr.registry = registry;
435
436
  gr.environment = opts?.environment ?? {};
436
437
  // Precompute per-node resolved handles (use def-provided overrides; do not compute dynamically here)
437
- gr.resolvedByNode = GraphRuntime.computeResolvedHandleMap(def, registry);
438
+ gr.resolvedByNode = GraphRuntime.computeResolvedHandleMap(def, registry, gr.environment);
438
439
  // Instantiate nodes
439
440
  for (const n of def.nodes) {
440
441
  const desc = registry.nodes.get(n.typeId);
@@ -460,8 +461,10 @@ class GraphRuntime {
460
461
  params: n.params,
461
462
  policy: {
462
463
  ...cat.policy,
463
- ...(n.params && n.params.policy ? n.params.policy : {}),
464
+ ...desc.policy,
465
+ ...n.params?.policy,
464
466
  },
467
+ runSeq: 0,
465
468
  activeControllers: new Set(),
466
469
  queue: [],
467
470
  stats: {
@@ -545,6 +548,9 @@ class GraphRuntime {
545
548
  // Only schedule if all inbound inputs are present (or there are none)
546
549
  if (anyChanged && this.allInboundHaveValue(nodeId))
547
550
  this.scheduleInputsChanged(nodeId);
551
+ // Recompute dynamic handles for this node when its direct inputs change
552
+ if (anyChanged)
553
+ this.scheduleRecomputeHandles(nodeId);
548
554
  }
549
555
  }
550
556
  getOutput(nodeId, output) {
@@ -617,12 +623,14 @@ class GraphRuntime {
617
623
  now - node.lastScheduledAt < policy.debounceMs) {
618
624
  // debounce: replace latest queued
619
625
  node.queue.splice(0, node.queue.length);
620
- const rid = `${nodeId}:${now}`;
626
+ node.runSeq += 1;
627
+ const rid = `${nodeId}:${node.runSeq}:${now}`;
621
628
  node.queue.push({ runId: rid, inputs: { ...node.inputs } });
622
629
  return;
623
630
  }
624
631
  node.lastScheduledAt = now;
625
- const rid = `${nodeId}:${now}:${Math.random().toString(36).slice(2, 8)}`;
632
+ node.runSeq += 1;
633
+ const rid = `${nodeId}:${node.runSeq}:${now}`;
626
634
  node.latestRunId = rid;
627
635
  const startRun = (runId, capturedInputs, onDone) => {
628
636
  const controller = new AbortController();
@@ -845,6 +853,8 @@ class GraphRuntime {
845
853
  io: "input",
846
854
  runtimeTypeId: getTypedOutputTypeId(next),
847
855
  });
856
+ // Recompute dynamic handles for the destination node on input change
857
+ this.scheduleRecomputeHandles(e.target.nodeId);
848
858
  if (!this.paused && this.allInboundHaveValue(e.target.nodeId))
849
859
  this.scheduleInputsChanged(e.target.nodeId);
850
860
  }
@@ -902,7 +912,7 @@ class GraphRuntime {
902
912
  }
903
913
  }
904
914
  // Helper: build map of resolved handles per node from def (prefer def.resolvedHandles, otherwise registry statics)
905
- static computeResolvedHandleMap(def, registry) {
915
+ static computeResolvedHandleMap(def, registry, environment) {
906
916
  const out = new Map();
907
917
  for (const n of def.nodes) {
908
918
  const desc = registry.nodes.get(n.typeId);
@@ -911,10 +921,36 @@ class GraphRuntime {
911
921
  const overrideInputs = n.resolvedHandles?.inputs;
912
922
  const overrideOutputs = n.resolvedHandles?.outputs;
913
923
  const overrideDefaults = n.resolvedHandles?.inputDefaults;
914
- // Merge base with overrides (allow partial resolvedHandles)
915
- const inputs = { ...desc.inputs, ...overrideInputs };
916
- const outputs = { ...desc.outputs, ...overrideOutputs };
917
- const inputDefaults = { ...desc.inputDefaults, ...overrideDefaults };
924
+ // Resolve dynamic handles if available (initial pass: inputs may be undefined)
925
+ let dyn = {};
926
+ try {
927
+ if (typeof desc.resolveHandles === "function") {
928
+ dyn = desc.resolveHandles({
929
+ environment: environment || {},
930
+ params: n.params,
931
+ inputs: undefined,
932
+ });
933
+ }
934
+ }
935
+ catch {
936
+ // ignore dynamic resolution errors at this stage
937
+ }
938
+ // Merge base with dynamic and overrides (allow partial resolvedHandles)
939
+ const inputs = {
940
+ ...desc.inputs,
941
+ ...dyn.inputs,
942
+ ...overrideInputs,
943
+ };
944
+ const outputs = {
945
+ ...desc.outputs,
946
+ ...dyn.outputs,
947
+ ...overrideOutputs,
948
+ };
949
+ const inputDefaults = {
950
+ ...desc.inputDefaults,
951
+ ...dyn.inputDefaults,
952
+ ...overrideDefaults,
953
+ };
918
954
  out.set(n.nodeId, { inputs, outputs, inputDefaults });
919
955
  }
920
956
  return out;
@@ -1096,6 +1132,10 @@ class GraphRuntime {
1096
1132
  }
1097
1133
  setEnvironment(env) {
1098
1134
  this.environment = { ...env };
1135
+ // Recompute dynamic handles for all nodes when environment changes
1136
+ for (const nodeId of this.nodes.keys()) {
1137
+ this.scheduleRecomputeHandles(nodeId);
1138
+ }
1099
1139
  }
1100
1140
  // Export a GraphDefinition reflecting the current runtime view
1101
1141
  getGraphDef() {
@@ -1252,8 +1292,10 @@ class GraphRuntime {
1252
1292
  params: n.params,
1253
1293
  policy: {
1254
1294
  ...cat.policy,
1255
- ...(n.params && n.params.policy ? n.params.policy : {}),
1295
+ ...desc.policy,
1296
+ ...n.params?.policy,
1256
1297
  },
1298
+ runSeq: 0,
1257
1299
  activeControllers: new Set(),
1258
1300
  queue: [],
1259
1301
  stats: {
@@ -1312,8 +1354,8 @@ class GraphRuntime {
1312
1354
  tmap.set(e.source.handle, tset);
1313
1355
  prevOutTargets.set(e.source.nodeId, tmap);
1314
1356
  }
1315
- // Precompute per-node resolved handles for updated graph
1316
- this.resolvedByNode = GraphRuntime.computeResolvedHandleMap(def, registry);
1357
+ // Precompute per-node resolved handles for updated graph (include dynamic)
1358
+ this.resolvedByNode = GraphRuntime.computeResolvedHandleMap(def, registry, this.environment);
1317
1359
  // Rebuild edges mapping with coercions
1318
1360
  this.edges = GraphRuntime.buildEdges(def, registry, this.resolvedByNode);
1319
1361
  // Build new inbound map
@@ -1473,6 +1515,83 @@ class GraphRuntime {
1473
1515
  this.arrayInputBuckets.delete(nodeId);
1474
1516
  }
1475
1517
  }
1518
+ // Schedule a recomputation of dynamic handles for a node (async to avoid mutating during propagation)
1519
+ scheduleRecomputeHandles(nodeId) {
1520
+ // If no registry or node not found, skip
1521
+ if (!this.registry)
1522
+ return;
1523
+ const node = this.nodes.get(nodeId);
1524
+ if (!node)
1525
+ return;
1526
+ setTimeout(() => {
1527
+ try {
1528
+ this.recomputeHandlesForNode(nodeId);
1529
+ }
1530
+ catch {
1531
+ // ignore recompute errors
1532
+ }
1533
+ }, 0);
1534
+ }
1535
+ // Recompute dynamic handles for a single node using current inputs/environment
1536
+ recomputeHandlesForNode(nodeId) {
1537
+ const registry = this.registry;
1538
+ const node = this.nodes.get(nodeId);
1539
+ if (!node)
1540
+ return;
1541
+ const desc = registry.nodes.get(node.typeId);
1542
+ if (!desc)
1543
+ return;
1544
+ const resolveHandles = desc.resolveHandles;
1545
+ if (typeof resolveHandles !== "function")
1546
+ return;
1547
+ let r;
1548
+ try {
1549
+ r = resolveHandles({
1550
+ environment: this.environment || {},
1551
+ params: node.params,
1552
+ inputs: node.inputs || {},
1553
+ });
1554
+ }
1555
+ catch {
1556
+ return;
1557
+ }
1558
+ const inputs = { ...desc.inputs, ...r?.inputs };
1559
+ const outputs = { ...desc.outputs, ...r?.outputs };
1560
+ const inputDefaults = { ...desc.inputDefaults, ...r?.inputDefaults };
1561
+ const next = { inputs, outputs, inputDefaults };
1562
+ const before = this.resolvedByNode.get(nodeId);
1563
+ // Compare shallow-structurally via JSON
1564
+ if (JSON.stringify(before) === JSON.stringify(next))
1565
+ return;
1566
+ this.resolvedByNode.set(nodeId, next);
1567
+ this.updateNodeHandles(nodeId, next, registry);
1568
+ // Seed defaults for newly introduced inputs that are not inbound
1569
+ const inbound = this.edges
1570
+ .filter((e) => e.target.nodeId === nodeId)
1571
+ .map((e) => e.target.handle);
1572
+ for (const [handle, value] of Object.entries(inputDefaults)) {
1573
+ if (value === undefined)
1574
+ continue;
1575
+ if (inbound.includes(handle))
1576
+ continue;
1577
+ if (node.inputs[handle] === undefined) {
1578
+ node.inputs[handle] =
1579
+ typeof structuredClone === "function"
1580
+ ? structuredClone(value)
1581
+ : JSON.parse(JSON.stringify(value));
1582
+ // Emit input value event for seeded defaults
1583
+ this.emit("value", {
1584
+ nodeId,
1585
+ handle,
1586
+ value: node.inputs[handle],
1587
+ io: "input",
1588
+ runtimeTypeId: getTypedOutputTypeId(node.inputs[handle]),
1589
+ });
1590
+ }
1591
+ }
1592
+ // Notify graph updated for UI parity
1593
+ this.emit("invalidate", { reason: "graph-updated" });
1594
+ }
1476
1595
  }
1477
1596
 
1478
1597
  class GraphBuilder {
@@ -1948,7 +2067,7 @@ const ComputeCategory = {
1948
2067
  }
1949
2068
  },
1950
2069
  }),
1951
- policy: { mode: "push", asyncConcurrency: "switch" },
2070
+ policy: { asyncConcurrency: "switch" },
1952
2071
  };
1953
2072
 
1954
2073
  const CompositeCategory = (registry) => ({
@@ -2004,7 +2123,6 @@ const CompositeCategory = (registry) => ({
2004
2123
  },
2005
2124
  };
2006
2125
  },
2007
- policy: { mode: "hybrid" },
2008
2126
  });
2009
2127
 
2010
2128
  // Helpers
@@ -3098,6 +3216,39 @@ function registerProgressNodes(registry) {
3098
3216
  });
3099
3217
  }
3100
3218
 
3219
+ function installLogging(engine) {
3220
+ engine.on("value", (e) => {
3221
+ const t = e.runtimeTypeId ? ` <${e.runtimeTypeId}>` : "";
3222
+ console.log(`[value:${e.io}]`, `${e.nodeId}.${e.handle}`, e.value, t);
3223
+ });
3224
+ engine.on("stats", (s) => {
3225
+ if (s.kind === "node-progress") {
3226
+ const pct = Math.round((s.progress ?? 0) * 100);
3227
+ console.log(`[progress] ${s.runId || s.nodeId}: ${pct}%`);
3228
+ }
3229
+ else if (s.kind === "node-done") {
3230
+ console.log(`[done] ${s.runId || s.nodeId} in ${s.durationMs ?? 0}ms`);
3231
+ }
3232
+ else if (s.kind === "node-start") {
3233
+ console.log(`[start] ${s.runId || s.nodeId}`);
3234
+ }
3235
+ else if (s.kind === "edge-start") {
3236
+ console.log(`[edge] ${s.source.nodeId}.${s.source.handle} -> ${s.target.nodeId}.${s.target.handle}`);
3237
+ }
3238
+ else if (s.kind === "edge-done") {
3239
+ console.log(`[edge] ${s.source.nodeId}.${s.source.handle} -> ${s.target.nodeId}.${s.target.handle} in ${s.durationMs ?? 0}ms`);
3240
+ }
3241
+ });
3242
+ engine.on("error", (e) => {
3243
+ if (e.kind === "node-run") {
3244
+ console.warn(`[error] ${e.runId || e.nodeId}`, e.err?.message ?? e.err);
3245
+ }
3246
+ else if (e.kind === "edge-convert") {
3247
+ console.warn(`[error] ${e.edgeId} ${e.source.nodeId}.${e.source.handle} -> ${e.target.nodeId}.${e.target.handle}`, e.err?.message ?? e.err);
3248
+ }
3249
+ });
3250
+ }
3251
+
3101
3252
  function makeBasicGraphDefinition() {
3102
3253
  return {
3103
3254
  nodes: [
@@ -3279,5 +3430,5 @@ function createValidationGraphRegistry() {
3279
3430
  return registry;
3280
3431
  }
3281
3432
 
3282
- export { BatchedEngine, CompositeCategory, ComputeCategory, GraphBuilder, GraphRuntime, HybridEngine, LocalRunner, PullEngine, PushEngine, Registry, StepEngine, createAsyncGraphDef, createAsyncGraphRegistry, createProgressGraphDef, createProgressGraphRegistry, createSimpleGraphDef, createSimpleGraphRegistry, createValidationGraphDef, createValidationGraphRegistry, getInputTypeId, getTypedOutputTypeId, getTypedOutputValue, isInputPrivate, isTypedOutput, registerDelayNode, registerProgressNodes, typed };
3433
+ export { BatchedEngine, CompositeCategory, ComputeCategory, GraphBuilder, GraphRuntime, HybridEngine, LocalRunner, PullEngine, PushEngine, Registry, StepEngine, createAsyncGraphDef, createAsyncGraphRegistry, createProgressGraphDef, createProgressGraphRegistry, createSimpleGraphDef, createSimpleGraphRegistry, createValidationGraphDef, createValidationGraphRegistry, getInputTypeId, getTypedOutputTypeId, getTypedOutputValue, installLogging, isInputPrivate, isTypedOutput, registerDelayNode, registerProgressNodes, typed };
3283
3434
  //# sourceMappingURL=index.js.map