@xenolithengine/graph-core 0.7.0-beta.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.
Files changed (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +55 -0
  3. package/dist/command-bus.d.ts +56 -0
  4. package/dist/command-bus.d.ts.map +1 -0
  5. package/dist/command-bus.js +180 -0
  6. package/dist/command-bus.js.map +1 -0
  7. package/dist/commands-comment.d.ts +52 -0
  8. package/dist/commands-comment.d.ts.map +1 -0
  9. package/dist/commands-comment.js +92 -0
  10. package/dist/commands-comment.js.map +1 -0
  11. package/dist/commands-mut.d.ts +58 -0
  12. package/dist/commands-mut.d.ts.map +1 -0
  13. package/dist/commands-mut.js +119 -0
  14. package/dist/commands-mut.js.map +1 -0
  15. package/dist/commands.d.ts +36 -0
  16. package/dist/commands.d.ts.map +1 -0
  17. package/dist/commands.js +72 -0
  18. package/dist/commands.js.map +1 -0
  19. package/dist/comment-spatial.d.ts +20 -0
  20. package/dist/comment-spatial.d.ts.map +1 -0
  21. package/dist/comment-spatial.js +21 -0
  22. package/dist/comment-spatial.js.map +1 -0
  23. package/dist/event-emitter.d.ts +15 -0
  24. package/dist/event-emitter.d.ts.map +1 -0
  25. package/dist/event-emitter.js +55 -0
  26. package/dist/event-emitter.js.map +1 -0
  27. package/dist/fuzzy.d.ts +17 -0
  28. package/dist/fuzzy.d.ts.map +1 -0
  29. package/dist/fuzzy.js +55 -0
  30. package/dist/fuzzy.js.map +1 -0
  31. package/dist/graph.d.ts +108 -0
  32. package/dist/graph.d.ts.map +1 -0
  33. package/dist/graph.js +141 -0
  34. package/dist/graph.js.map +1 -0
  35. package/dist/ids.d.ts +28 -0
  36. package/dist/ids.d.ts.map +1 -0
  37. package/dist/ids.js +31 -0
  38. package/dist/ids.js.map +1 -0
  39. package/dist/index.d.ts +35 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +20 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/macro.d.ts +120 -0
  44. package/dist/macro.d.ts.map +1 -0
  45. package/dist/macro.js +226 -0
  46. package/dist/macro.js.map +1 -0
  47. package/dist/node-registry.d.ts +101 -0
  48. package/dist/node-registry.d.ts.map +1 -0
  49. package/dist/node-registry.js +96 -0
  50. package/dist/node-registry.js.map +1 -0
  51. package/dist/reroute.d.ts +21 -0
  52. package/dist/reroute.d.ts.map +1 -0
  53. package/dist/reroute.js +40 -0
  54. package/dist/reroute.js.map +1 -0
  55. package/dist/selection.d.ts +17 -0
  56. package/dist/selection.d.ts.map +1 -0
  57. package/dist/selection.js +56 -0
  58. package/dist/selection.js.map +1 -0
  59. package/dist/template-def.d.ts +113 -0
  60. package/dist/template-def.d.ts.map +1 -0
  61. package/dist/template-def.js +0 -0
  62. package/dist/template-def.js.map +1 -0
  63. package/dist/template-flatten.d.ts +38 -0
  64. package/dist/template-flatten.d.ts.map +1 -0
  65. package/dist/template-flatten.js +157 -0
  66. package/dist/template-flatten.js.map +1 -0
  67. package/dist/traversal.d.ts +27 -0
  68. package/dist/traversal.d.ts.map +1 -0
  69. package/dist/traversal.js +119 -0
  70. package/dist/traversal.js.map +1 -0
  71. package/dist/types-registry.d.ts +41 -0
  72. package/dist/types-registry.d.ts.map +1 -0
  73. package/dist/types-registry.js +60 -0
  74. package/dist/types-registry.js.map +1 -0
  75. package/dist/widget.d.ts +141 -0
  76. package/dist/widget.d.ts.map +1 -0
  77. package/dist/widget.js +112 -0
  78. package/dist/widget.js.map +1 -0
  79. package/package.json +55 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"macro.js","sourceRoot":"","sources":["../src/macro.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ import type { Node, NodeGlyph, PinDirection, PinKind, Vec2 } from './graph.js';
2
+ import { type WidgetSpec } from './widget.js';
3
+ /** Declarative pin template — instantiated into a concrete {@link Pin} (fresh id) per node. */
4
+ export interface PinSchema {
5
+ kind: PinKind;
6
+ direction: PinDirection;
7
+ type: string;
8
+ label?: string;
9
+ multiple?: boolean;
10
+ default?: unknown;
11
+ }
12
+ /** Declarative description of a node *type*. Hosts register these; the insert palette searches
13
+ * them and {@link NodeRegistry.instantiate} turns one into a concrete {@link Node}. */
14
+ export interface NodeSchema {
15
+ type: string;
16
+ title: string;
17
+ category?: string;
18
+ /** One-line summary shown under the title in the insert palette. */
19
+ description?: string;
20
+ /** Extra search terms beyond the title (synonyms, abbreviations). */
21
+ keywords?: string[];
22
+ pins: PinSchema[];
23
+ /** In-node UI controls copied onto each instantiated node; defaults seed `node.state`. */
24
+ widgets?: WidgetSpec[];
25
+ /** Blueprint "pure" node (no exec flow). Copied onto each instance. */
26
+ pure?: boolean;
27
+ /** Arbitrary host/plugin metadata, copied onto each instance and passed through serialization. */
28
+ meta?: Record<string, unknown>;
29
+ /** Header glyph icon copied onto each instantiated node (auto-drawn in the header). */
30
+ glyph?: NodeGlyph;
31
+ /** Optional custom serializer for this node type (Baklava `node.save()` parity). Returns the
32
+ * JSON-serializable payload to write under the node's `state` slot in the xenolith.v1 graph.
33
+ * Use when a node owns runtime / non-serializable state (Maps, class instances, RAF handles)
34
+ * that the default `state` → JSON shape can't round-trip. The caller is responsible for any
35
+ * pin/widget translation if those are dynamic too — most cases only need to convert `state`. */
36
+ serialize?: (node: Node) => Record<string, unknown>;
37
+ /** Optional custom deserializer — the inverse of `serialize`. Called by `loadJSON` with the
38
+ * JSON payload that came out of `serialize`. Must return the runtime `state` object that
39
+ * goes onto the live Node. If omitted, the JSON payload is used as-is. */
40
+ deserialize?: (json: Record<string, unknown>, node: Node) => Record<string, unknown>;
41
+ /** Variadic interfaces (Baklava `defineDynamicNode` parity). When set, the editor calls this
42
+ * callback whenever the node's state changes (widget edited, programmatic setWidgetValue) and
43
+ * applies any returned `pins` / `widgets` via `setNodePins` / `setNodeWidgets` — so a Sequence
44
+ * node can grow a fresh exec-out per click, a Struct can mint a pin per Schema field, a Math
45
+ * node can switch from binary to N-ary by reading state.arity. Returning `undefined` for a
46
+ * field means "leave it alone"; returning a new array replaces. The fn is pure — never mutate
47
+ * the node directly. */
48
+ dynamic?: (node: Node) => {
49
+ pins?: PinSchema[];
50
+ widgets?: WidgetSpec[];
51
+ } | undefined;
52
+ /** Current schema version. Bump when the on-disk shape of state/pins changes incompatibly so old
53
+ * graphs need migration. Stored on every instance (`node.version`); `loadJSON` reads it back and
54
+ * routes upgrades through `migrate`. Default 1 (omitted = 1). */
55
+ version?: number;
56
+ /** Upgrade an old on-disk node payload to the current shape. Called by `loadJSON` when the
57
+ * serialized `node.version` is below `schema.version`. The host returns a new payload (typed
58
+ * as the partial node — usually `{ state, widgets, pins, meta }`) that the loader merges into
59
+ * the live node. Single migrate function handles every version below current — branch on the
60
+ * `oldVersion` argument. Pure: must not mutate `oldNode`. */
61
+ migrate?: (oldNode: Partial<Node> & {
62
+ version?: number;
63
+ }, oldVersion: number) => Partial<Node>;
64
+ }
65
+ export interface NodeSearchResult {
66
+ schema: NodeSchema;
67
+ score: number;
68
+ /** Matched character indices into `schema.title` for highlighting (empty if the match came
69
+ * from a keyword or category rather than the title). */
70
+ indices: number[];
71
+ }
72
+ export declare class NodeRegistry {
73
+ #private;
74
+ get size(): number;
75
+ register(schema: NodeSchema): void;
76
+ unregister(type: string): boolean;
77
+ clear(): void;
78
+ has(type: string): boolean;
79
+ get(type: string): NodeSchema | undefined;
80
+ all(): NodeSchema[];
81
+ /** Turn a registered schema into a concrete Node with freshly minted node/pin ids. Throws if
82
+ * the type isn't registered. */
83
+ instantiate(type: string, position: Vec2): Node;
84
+ /** Fuzzy search across title, keywords and category. Returns results sorted by descending
85
+ * score (ties broken by title). An empty query returns every schema in title order. */
86
+ search(query: string): NodeSearchResult[];
87
+ }
88
+ /** Run a schema's `migrate` hook against an on-disk node payload when the payload's `version` is
89
+ * below the schema's current `version`. Returns the (possibly merged) payload + the resolved
90
+ * current version to stamp onto the live node. Pure — `oldNode` is not mutated. */
91
+ export declare function migrateNodePayload(schema: NodeSchema | undefined, oldNode: Partial<Node> & {
92
+ version?: number;
93
+ type?: string;
94
+ }): {
95
+ node: Partial<Node> & {
96
+ version?: number;
97
+ type?: string;
98
+ };
99
+ version: number;
100
+ };
101
+ //# sourceMappingURL=node-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-registry.d.ts","sourceRoot":"","sources":["../src/node-registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAO,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACnF,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AAEjE,+FAA+F;AAC/F,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,EAAE,YAAY,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;wFACwF;AACxF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,IAAI,EAAE,SAAS,EAAE,CAAA;IACjB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;IACtB,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,kGAAkG;IAClG,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,uFAAuF;IACvF,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB;;;;qGAIiG;IACjG,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnD;;+EAE2E;IAC3E,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpF;;;;;;6BAMyB;IACzB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK;QAAE,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;KAAE,GAAG,SAAS,CAAA;IACpF;;sEAEkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;kEAI8D;IAC9D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/F;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb;6DACyD;IACzD,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,qBAAa,YAAY;;IAGvB,IAAI,IAAI,IAAI,MAAM,CAA8B;IAEhD,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAClC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IACjC,KAAK,IAAI,IAAI;IACb,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAC1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IACzC,GAAG,IAAI,UAAU,EAAE;IAEnB;qCACiC;IACjC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI;IA6B/C;4FACwF;IACxF,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE;CAyB1C;AAED;;oFAEoF;AACpF,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAQhF"}
@@ -0,0 +1,96 @@
1
+ import { fuzzyMatch } from './fuzzy.js';
2
+ import { createNodeId, createPinId } from './ids.js';
3
+ import { defaultWidgetValue } from './widget.js';
4
+ export class NodeRegistry {
5
+ #schemas = new Map();
6
+ get size() { return this.#schemas.size; }
7
+ register(schema) { this.#schemas.set(schema.type, schema); }
8
+ unregister(type) { return this.#schemas.delete(type); }
9
+ clear() { this.#schemas.clear(); }
10
+ has(type) { return this.#schemas.has(type); }
11
+ get(type) { return this.#schemas.get(type); }
12
+ all() { return [...this.#schemas.values()]; }
13
+ /** Turn a registered schema into a concrete Node with freshly minted node/pin ids. Throws if
14
+ * the type isn't registered. */
15
+ instantiate(type, position) {
16
+ const schema = this.#schemas.get(type);
17
+ if (!schema)
18
+ throw new Error(`NodeRegistry.instantiate: unknown node type "${type}"`);
19
+ const pins = schema.pins.map((p) => {
20
+ const pin = {
21
+ id: createPinId(),
22
+ kind: p.kind,
23
+ direction: p.direction,
24
+ type: p.type,
25
+ multiple: p.multiple ?? false,
26
+ };
27
+ if (p.label !== undefined)
28
+ pin.label = p.label;
29
+ if (p.default !== undefined)
30
+ pin.default = p.default;
31
+ return pin;
32
+ });
33
+ const node = { id: createNodeId(), type: schema.type, position: { ...position }, state: {}, pins };
34
+ if (schema.version !== undefined)
35
+ node.version = schema.version;
36
+ if (schema.pure !== undefined)
37
+ node.pure = schema.pure;
38
+ if (schema.meta !== undefined)
39
+ node.meta = { ...schema.meta };
40
+ if (schema.glyph !== undefined)
41
+ node.glyph = { ...schema.glyph };
42
+ if (schema.widgets && schema.widgets.length > 0) {
43
+ node.widgets = schema.widgets.map((w) => ({ ...w }));
44
+ for (const w of node.widgets) {
45
+ if (w.key !== undefined)
46
+ node.state[w.key] = defaultWidgetValue(w);
47
+ }
48
+ }
49
+ return node;
50
+ }
51
+ /** Fuzzy search across title, keywords and category. Returns results sorted by descending
52
+ * score (ties broken by title). An empty query returns every schema in title order. */
53
+ search(query) {
54
+ if (query.trim() === '') {
55
+ return this.all()
56
+ .sort((a, b) => a.title.localeCompare(b.title))
57
+ .map((schema) => ({ schema, score: 0, indices: [] }));
58
+ }
59
+ const results = [];
60
+ for (const schema of this.#schemas.values()) {
61
+ const titleMatch = fuzzyMatch(query, schema.title);
62
+ let best = titleMatch.matched ? titleMatch.score : -1;
63
+ let indices = titleMatch.matched ? titleMatch.indices : [];
64
+ for (const kw of schema.keywords ?? []) {
65
+ const m = fuzzyMatch(query, kw);
66
+ if (m.matched && m.score > best) {
67
+ best = m.score;
68
+ indices = [];
69
+ }
70
+ }
71
+ if (schema.category) {
72
+ const m = fuzzyMatch(query, schema.category);
73
+ if (m.matched && m.score > best) {
74
+ best = m.score;
75
+ indices = [];
76
+ }
77
+ }
78
+ if (best >= 0)
79
+ results.push({ schema, score: best, indices });
80
+ }
81
+ return results.sort((a, b) => b.score - a.score || a.schema.title.localeCompare(b.schema.title));
82
+ }
83
+ }
84
+ /** Run a schema's `migrate` hook against an on-disk node payload when the payload's `version` is
85
+ * below the schema's current `version`. Returns the (possibly merged) payload + the resolved
86
+ * current version to stamp onto the live node. Pure — `oldNode` is not mutated. */
87
+ export function migrateNodePayload(schema, oldNode) {
88
+ const currentVersion = schema?.version ?? 1;
89
+ const oldVersion = oldNode.version ?? 1;
90
+ if (!schema?.migrate || oldVersion >= currentVersion) {
91
+ return { node: oldNode, version: currentVersion };
92
+ }
93
+ const patched = schema.migrate(oldNode, oldVersion);
94
+ return { node: { ...oldNode, ...patched, version: currentVersion }, version: currentVersion };
95
+ }
96
+ //# sourceMappingURL=node-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-registry.js","sourceRoot":"","sources":["../src/node-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Node, Vec2 } from './graph.js';
2
+ import type { NodeSchema } from './node-registry.js';
3
+ /** Reserved node type for reroute knots — a first-class passthrough that carries a wire across the
4
+ * canvas without a header or body. Themes render it as a small dot/circle. ComfyUI's `Reroute`
5
+ * maps onto this. */
6
+ export declare const REROUTE_TYPE = "$reroute";
7
+ export declare function isReroute(node: {
8
+ type: string;
9
+ }): boolean;
10
+ /** Mint a reroute node: one `in` pin and one `out` pin of the same passthrough type. The type only
11
+ * drives wire colouring — reroutes accept anything. */
12
+ export declare function createReroute(position: Vec2, opts?: {
13
+ type?: string;
14
+ }): Node;
15
+ /** Palette-facing reroute: a normal rectangular node (standard renderer, visible In/Out pins) that
16
+ * users can wire freely and pull new connections from — distinct from the inline `$reroute` dot,
17
+ * which is created by splitting an edge and cannot be pulled from. Auto-registered by the editor
18
+ * so it appears in every insert palette. */
19
+ export declare const REROUTE_NODE_TYPE = "Reroute";
20
+ export declare const rerouteNodeSchema: NodeSchema;
21
+ //# sourceMappingURL=reroute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reroute.d.ts","sourceRoot":"","sources":["../src/reroute.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEpD;;sBAEsB;AACtB,eAAO,MAAM,YAAY,aAAa,CAAA;AAEtC,wBAAgB,SAAS,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAEzD;AAED;wDACwD;AACxD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,IAAI,CAYhF;AAED;;;6CAG6C;AAC7C,eAAO,MAAM,iBAAiB,YAAY,CAAA;AAE1C,eAAO,MAAM,iBAAiB,EAAE,UAU/B,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { createNodeId, createPinId } from './ids.js';
2
+ /** Reserved node type for reroute knots — a first-class passthrough that carries a wire across the
3
+ * canvas without a header or body. Themes render it as a small dot/circle. ComfyUI's `Reroute`
4
+ * maps onto this. */
5
+ export const REROUTE_TYPE = '$reroute';
6
+ export function isReroute(node) {
7
+ return node.type === REROUTE_TYPE;
8
+ }
9
+ /** Mint a reroute node: one `in` pin and one `out` pin of the same passthrough type. The type only
10
+ * drives wire colouring — reroutes accept anything. */
11
+ export function createReroute(position, opts = {}) {
12
+ const type = opts.type ?? 'any';
13
+ return {
14
+ id: createNodeId(),
15
+ type: REROUTE_TYPE,
16
+ position,
17
+ state: {},
18
+ pins: [
19
+ { id: createPinId(), kind: 'data', direction: 'in', type, multiple: false },
20
+ { id: createPinId(), kind: 'data', direction: 'out', type, multiple: true },
21
+ ],
22
+ };
23
+ }
24
+ /** Palette-facing reroute: a normal rectangular node (standard renderer, visible In/Out pins) that
25
+ * users can wire freely and pull new connections from — distinct from the inline `$reroute` dot,
26
+ * which is created by splitting an edge and cannot be pulled from. Auto-registered by the editor
27
+ * so it appears in every insert palette. */
28
+ export const REROUTE_NODE_TYPE = 'Reroute';
29
+ export const rerouteNodeSchema = {
30
+ type: REROUTE_NODE_TYPE,
31
+ title: 'Reroute',
32
+ category: 'utility',
33
+ description: 'Relay a wire through a movable node',
34
+ keywords: ['reroute', 'relay', 'pass', 'through', 'knot', 'pipe'],
35
+ pins: [
36
+ { kind: 'data', direction: 'in', type: 'any' },
37
+ { kind: 'data', direction: 'out', type: 'any', multiple: true },
38
+ ],
39
+ };
40
+ //# sourceMappingURL=reroute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reroute.js","sourceRoot":"","sources":["../src/reroute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAIpD;;sBAEsB;AACtB,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAA;AAEtC,MAAM,UAAU,SAAS,CAAC,IAAsB;IAC9C,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAA;AACnC,CAAC;AAED;wDACwD;AACxD,MAAM,UAAU,aAAa,CAAC,QAAc,EAAE,OAA0B,EAAE;IACxE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAA;IAC/B,OAAO;QACL,EAAE,EAAE,YAAY,EAAE;QAClB,IAAI,EAAE,YAAY;QAClB,QAAQ;QACR,KAAK,EAAE,EAAE;QACT,IAAI,EAAE;YACJ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC5E,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5E;KACF,CAAA;AACH,CAAC;AAED;;;6CAG6C;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAA;AAE1C,MAAM,CAAC,MAAM,iBAAiB,GAAe;IAC3C,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,qCAAqC;IAClD,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;IACjE,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAG,IAAI,EAAE,KAAK,EAAE;QAC/C,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;KAChE;CACF,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { type Unsubscribe } from './event-emitter.js';
2
+ import type { NodeId } from './ids.js';
3
+ export type SelectionMode = 'replace' | 'toggle';
4
+ export interface SelectionChange {
5
+ ids: readonly NodeId[];
6
+ }
7
+ export declare class Selection {
8
+ #private;
9
+ get size(): number;
10
+ contains(id: NodeId): boolean;
11
+ ids(): readonly NodeId[];
12
+ select(id: NodeId, mode: SelectionMode): void;
13
+ clear(): void;
14
+ replaceWith(ids: readonly NodeId[]): void;
15
+ on(handler: (e: SelectionChange) => void): Unsubscribe;
16
+ }
17
+ //# sourceMappingURL=selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../src/selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEtC,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAA;AAEhD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,SAAS,MAAM,EAAE,CAAA;CACvB;AAMD,qBAAa,SAAS;;IAIpB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI7B,GAAG,IAAI,SAAS,MAAM,EAAE;IAIxB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAkB7C,KAAK,IAAI,IAAI;IAMb,WAAW,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAOzC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,IAAI,GAAG,WAAW;CAOvD"}
@@ -0,0 +1,56 @@
1
+ import { EventEmitter } from './event-emitter.js';
2
+ export class Selection {
3
+ #set = new Set();
4
+ #events = new EventEmitter();
5
+ get size() {
6
+ return this.#set.size;
7
+ }
8
+ contains(id) {
9
+ return this.#set.has(id);
10
+ }
11
+ ids() {
12
+ return [...this.#set];
13
+ }
14
+ select(id, mode) {
15
+ let changed = false;
16
+ if (mode === 'replace') {
17
+ if (this.#set.size === 1 && this.#set.has(id))
18
+ return;
19
+ this.#set.clear();
20
+ this.#set.add(id);
21
+ changed = true;
22
+ }
23
+ else {
24
+ if (this.#set.has(id)) {
25
+ this.#set.delete(id);
26
+ }
27
+ else {
28
+ this.#set.add(id);
29
+ }
30
+ changed = true;
31
+ }
32
+ if (changed)
33
+ this.#emit();
34
+ }
35
+ clear() {
36
+ if (this.#set.size === 0)
37
+ return;
38
+ this.#set.clear();
39
+ this.#emit();
40
+ }
41
+ replaceWith(ids) {
42
+ if (this.#set.size === ids.length && ids.every((id) => this.#set.has(id)))
43
+ return;
44
+ this.#set.clear();
45
+ for (const id of ids)
46
+ this.#set.add(id);
47
+ this.#emit();
48
+ }
49
+ on(handler) {
50
+ return this.#events.on('selection:changed', handler);
51
+ }
52
+ #emit() {
53
+ this.#events.emit('selection:changed', { ids: this.ids() });
54
+ }
55
+ }
56
+ //# sourceMappingURL=selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.js","sourceRoot":"","sources":["../src/selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,oBAAoB,CAAA;AAanE,MAAM,OAAO,SAAS;IACX,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IACxB,OAAO,GAAG,IAAI,YAAY,EAAmB,CAAA;IAEtD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;IACvB,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;IAED,GAAG;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,IAAmB;QACpC,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,OAAM;YACrD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;YACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACjB,OAAO,GAAG,IAAI,CAAA;QAChB,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACnB,CAAC;YACD,OAAO,GAAG,IAAI,CAAA;QAChB,CAAC;QACD,IAAI,OAAO;YAAE,IAAI,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;YAAE,OAAM;QAChC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;QACjB,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAED,WAAW,CAAC,GAAsB;QAChC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAAE,OAAM;QACjF,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;QACjB,KAAK,MAAM,EAAE,IAAI,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACvC,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAED,EAAE,CAAC,OAAqC;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC7D,CAAC;CACF"}
@@ -0,0 +1,113 @@
1
+ import type { Edge, Node, Pin, PinDirection } from './graph.js';
2
+ import type { NodeId, PinId, EdgeId } from './ids.js';
3
+ /** Reserved node types for the live-template feature (distinct from the in-place `Macro` collapse).
4
+ * A `$templateInstance` is a node in any graph that references a shared `TemplateDefinition` by id;
5
+ * its pins are derived from the definition's interface. The definition's I/O interface is declared
6
+ * by explicit boundary nodes INSIDE the definition: `$templateInput` (one out pin, feeds members)
7
+ * and `$templateOutput` (one in pin, drained by members). Editing the shared definition propagates
8
+ * to every instance — there are no per-instance values. */
9
+ export declare const TEMPLATE_INPUT_TYPE: "$templateInput";
10
+ export declare const TEMPLATE_OUTPUT_TYPE: "$templateOutput";
11
+ export declare const TEMPLATE_INSTANCE_TYPE: "$templateInstance";
12
+ declare const TemplateDefIdBrand: unique symbol;
13
+ export type TemplateDefId = string & {
14
+ readonly [TemplateDefIdBrand]: true;
15
+ };
16
+ export declare function isTemplateBoundary(node: {
17
+ type: string;
18
+ }): boolean;
19
+ export declare function isTemplateInstance(node: {
20
+ type: string;
21
+ }): boolean;
22
+ /** A reusable subgraph stored once and referenced by many `$templateInstance` nodes. Its `nodes`
23
+ * include the member nodes plus the `$templateInput`/`$templateOutput` boundary nodes that declare
24
+ * the interface; its `edges` include the members' internal edges plus the boundary wires. */
25
+ export interface TemplateDefinition {
26
+ id: TemplateDefId;
27
+ title: string;
28
+ nodes: Node[];
29
+ edges: Edge[];
30
+ }
31
+ /** One interface slot of a definition — mirrors a boundary node. Pure descriptor (no minted pin id);
32
+ * `materializeInterface` turns these into per-instance `Pin`s. */
33
+ export interface TemplateInterfacePin {
34
+ /** The boundary node ($templateInput/$templateOutput) this slot mirrors — the stable re-sync key. */
35
+ boundary: NodeId;
36
+ direction: PinDirection;
37
+ type: string;
38
+ label?: string;
39
+ }
40
+ export interface TemplateMinters {
41
+ node: () => NodeId;
42
+ pin: () => PinId;
43
+ edge: () => EdgeId;
44
+ def: () => TemplateDefId;
45
+ }
46
+ export interface TemplateExtraction {
47
+ definition: TemplateDefinition;
48
+ /** Pins to put on the instance node (per-instance fresh ids), one per boundary node. */
49
+ instancePins: Pin[];
50
+ /** instance pinId → boundary node id, so re-sync can preserve pin ids across definition edits. */
51
+ pinBoundary: Record<string, string>;
52
+ /** Outer-graph boundary edges to remove (they get rewired onto the instance). */
53
+ outerDisconnect: EdgeId[];
54
+ /** New external↔instance edges. */
55
+ outerConnect: Edge[];
56
+ /** Member node ids removed from the outer graph (they now live in the definition). */
57
+ removeFromOuter: NodeId[];
58
+ }
59
+ /** One interface descriptor per boundary node, ordered by node appearance in `def.nodes` — which,
60
+ * for a definition built by `planTemplateExtraction`, is all inputs then all outputs. */
61
+ export declare function templateInterface(def: TemplateDefinition): TemplateInterfacePin[];
62
+ /** Mint a fresh per-instance pin for each interface slot, returning the pins plus a pinId→boundary
63
+ * map so an instance can be re-synced against an edited definition without losing pin ids. */
64
+ export declare function materializeInterface(iface: ReadonlyArray<TemplateInterfacePin>, mintPin: () => PinId): {
65
+ pins: Pin[];
66
+ pinBoundary: Record<string, string>;
67
+ };
68
+ /** Plan converting a selection into a reusable template. The interface is derived PER MEMBER PIN, not
69
+ * just from boundary-crossing edges: a member pin becomes an interface pin unless it's wired to
70
+ * another member (internal). So an input fed from outside, an output driving outside, AND a FREE
71
+ * (unconnected) pin all get promoted — which is what makes the instance usable (you can wire its In
72
+ * even if nothing fed the member yet). External connections are rewired onto the instance; free pins
73
+ * just get a boundary node + interface pin with nothing to rewire. Pure — the caller mints the
74
+ * instance node id and applies the result through the command bus. */
75
+ export declare function planTemplateExtraction(instanceId: NodeId, members: ReadonlyArray<Node>, edges: ReadonlyArray<Edge>, pinInfo: (node: NodeId, pin: PinId) => {
76
+ type: string;
77
+ label?: string;
78
+ }, mint: TemplateMinters, title?: string,
79
+ /** Nodes that go into the definition + are removed from the outer graph but DO NOT contribute pins
80
+ * to the template interface. Used for members of an included collapsed macro: their pins are
81
+ * hidden behind the macro's proxy (no real edges), so naive iteration would mint a phantom
82
+ * $templateInput/$templateOutput for every free-looking pin. Their connections still count as
83
+ * internal so `members`' pins wired through them stay internal too. */
84
+ hiddenMembers?: ReadonlyArray<Node>): TemplateExtraction;
85
+ export interface TemplateUnpackPlan {
86
+ /** Fresh-id copies of the definition's member nodes (boundary nodes are dropped). */
87
+ addNodes: Node[];
88
+ /** Internal member↔member edges (fresh ids) + the instance's outer edges rewired onto the members. */
89
+ addEdges: Edge[];
90
+ /** The instance node to remove. */
91
+ removeNode: NodeId;
92
+ /** The instance's outer edges to remove (they're replaced by the rewired ones in addEdges). */
93
+ removeEdges: EdgeId[];
94
+ /** Old member node id → new id, so the caller can carry render/edge opts onto the inlined copies. */
95
+ nodeRemap: Record<string, string>;
96
+ }
97
+ /** Plan "unpacking" a template instance: inline a fresh copy of its definition's members into the
98
+ * outer graph (new ids, so it's a one-off — the definition + other instances are untouched), drop
99
+ * the boundary nodes, and reconnect the instance's outer edges to the member pins the boundaries
100
+ * bridged. Pure — caller applies it through the command bus. */
101
+ export declare function planTemplateUnpack(instance: Node, definition: TemplateDefinition, outerEdges: ReadonlyArray<Edge>, mint: {
102
+ node: () => NodeId;
103
+ pin: () => PinId;
104
+ edge: () => EdgeId;
105
+ }, at?: {
106
+ x: number;
107
+ y: number;
108
+ }): TemplateUnpackPlan;
109
+ /** True when `host`'s definition transitively contains a `$templateInstance` of `target` — used to
110
+ * refuse a collapse/insert/dive that would create a cycle. */
111
+ export declare function templateDefContains(registry: ReadonlyMap<TemplateDefId, TemplateDefinition>, host: TemplateDefId, target: TemplateDefId): boolean;
112
+ export {};
113
+ //# sourceMappingURL=template-def.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-def.d.ts","sourceRoot":"","sources":["../src/template-def.ts"],"names":[],"mappings":"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"}
Binary file
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-def.js","sourceRoot":"","sources":["../src/template-def.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { Edge, Node } from './graph.js';
2
+ import type { NodeId, PinId, EdgeId } from './ids.js';
3
+ import { type TemplateDefId, type TemplateDefinition } from './template-def.js';
4
+ export interface PinRef {
5
+ node: NodeId;
6
+ pin: PinId;
7
+ }
8
+ /** Read-only flattening of a `$templateInstance` into the plain primitive subgraph a host evaluator
9
+ * can execute. Boundary nodes dissolve into a pin remap: `boundary.inputs[instancePin]` are the
10
+ * internal IN-pins an instance input feeds (fan-out possible), `boundary.outputs[instancePin]` is the
11
+ * internal OUT-pin an instance output is produced by. Nested instances expand recursively. */
12
+ export interface FlattenedTemplate {
13
+ nodes: Node[];
14
+ edges: Edge[];
15
+ boundary: {
16
+ inputs: Record<string, PinRef[]>;
17
+ outputs: Record<string, PinRef>;
18
+ };
19
+ }
20
+ interface FlattenMint {
21
+ node: () => NodeId;
22
+ pin: () => PinId;
23
+ edge: () => EdgeId;
24
+ }
25
+ /** Flatten `instance` against the definitions reachable through `resolveDef`. Returns null if a
26
+ * definition is missing or a recursion cycle is detected (a definition transitively containing an
27
+ * instance of itself). Pure — never mutates the instance, definitions, or document. */
28
+ export declare function flattenTemplateInstance(instance: Node, resolveDef: (defId: TemplateDefId) => TemplateDefinition | undefined, mint: FlattenMint): FlattenedTemplate | null;
29
+ /** Snapshot-level helper: replace every `$templateInstance` in (`nodes`, `edges`) with its flattened
30
+ * primitive sub-graph and rewire the external edges that touched the instance's interface pins to
31
+ * the boundary-mapped internal pins. Mirrors `flattenMacroProxies` for templates. Pure — inputs are
32
+ * not mutated. An instance whose definition is missing or recursive is left in place. */
33
+ export declare function flattenAllTemplateInstances(nodes: Node[], edges: Edge[], resolveDef: (defId: TemplateDefId) => TemplateDefinition | undefined, mint: FlattenMint): {
34
+ nodes: Node[];
35
+ edges: Edge[];
36
+ };
37
+ export {};
38
+ //# sourceMappingURL=template-flatten.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-flatten.d.ts","sourceRoot":"","sources":["../src/template-flatten.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACrD,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,WAAW,MAAM;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,KAAK,CAAA;CAAE;AAEpD;;;+FAG+F;AAC/F,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,IAAI,EAAE,CAAA;IACb,KAAK,EAAE,IAAI,EAAE,CAAA;IACb,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAChC,CAAA;CACF;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,KAAK,CAAA;IAChB,IAAI,EAAE,MAAM,MAAM,CAAA;CACnB;AAED;;wFAEwF;AACxF,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,IAAI,EACd,UAAU,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,kBAAkB,GAAG,SAAS,EACpE,IAAI,EAAE,WAAW,GAChB,iBAAiB,GAAG,IAAI,CAE1B;AAyFD;;;0FAG0F;AAC1F,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,IAAI,EAAE,EACb,KAAK,EAAE,IAAI,EAAE,EACb,UAAU,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,kBAAkB,GAAG,SAAS,EACpE,IAAI,EAAE,WAAW,GAChB;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CA2BlC"}