yaml-flow 3.1.1 → 4.0.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 (148) hide show
  1. package/README.md +81 -20
  2. package/board-live-cards-cli.js +37 -0
  3. package/browser/card-compute.js +132 -431
  4. package/browser/live-cards.js +41 -27
  5. package/browser/live-cards.schema.json +59 -77
  6. package/dist/card-compute/index.cjs +135 -415
  7. package/dist/card-compute/index.cjs.map +1 -1
  8. package/dist/card-compute/index.d.cts +52 -49
  9. package/dist/card-compute/index.d.ts +52 -49
  10. package/dist/card-compute/index.js +134 -415
  11. package/dist/card-compute/index.js.map +1 -1
  12. package/dist/cli/board-live-cards-cli.cjs +2379 -0
  13. package/dist/cli/board-live-cards-cli.cjs.map +1 -0
  14. package/dist/cli/board-live-cards-cli.d.cts +213 -0
  15. package/dist/cli/board-live-cards-cli.d.ts +213 -0
  16. package/dist/cli/board-live-cards-cli.js +2332 -0
  17. package/dist/cli/board-live-cards-cli.js.map +1 -0
  18. package/dist/{constants-B2zqu10b.d.ts → constants-DuzE5n03.d.ts} +2 -2
  19. package/dist/{constants-DJZU1pwJ.d.cts → constants-ozjf1Ejw.d.cts} +2 -2
  20. package/dist/continuous-event-graph/index.cjs +201 -448
  21. package/dist/continuous-event-graph/index.cjs.map +1 -1
  22. package/dist/continuous-event-graph/index.d.cts +16 -340
  23. package/dist/continuous-event-graph/index.d.ts +16 -340
  24. package/dist/continuous-event-graph/index.js +198 -448
  25. package/dist/continuous-event-graph/index.js.map +1 -1
  26. package/dist/event-graph/index.cjs +4 -4
  27. package/dist/event-graph/index.cjs.map +1 -1
  28. package/dist/event-graph/index.d.cts +5 -5
  29. package/dist/event-graph/index.d.ts +5 -5
  30. package/dist/event-graph/index.js +4 -4
  31. package/dist/event-graph/index.js.map +1 -1
  32. package/dist/index.cjs +278 -533
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.d.cts +8 -7
  35. package/dist/index.d.ts +8 -7
  36. package/dist/index.js +278 -533
  37. package/dist/index.js.map +1 -1
  38. package/dist/inference/index.cjs +138 -19
  39. package/dist/inference/index.cjs.map +1 -1
  40. package/dist/inference/index.d.cts +2 -2
  41. package/dist/inference/index.d.ts +2 -2
  42. package/dist/inference/index.js +138 -19
  43. package/dist/inference/index.js.map +1 -1
  44. package/dist/journal-BJDjWb5Q.d.cts +343 -0
  45. package/dist/journal-B_2JnBMF.d.ts +343 -0
  46. package/dist/step-machine/index.cjs +18 -1
  47. package/dist/step-machine/index.cjs.map +1 -1
  48. package/dist/step-machine/index.d.cts +2 -2
  49. package/dist/step-machine/index.d.ts +2 -2
  50. package/dist/step-machine/index.js +18 -1
  51. package/dist/step-machine/index.js.map +1 -1
  52. package/dist/stores/file.d.cts +1 -1
  53. package/dist/stores/file.d.ts +1 -1
  54. package/dist/stores/index.d.cts +1 -1
  55. package/dist/stores/index.d.ts +1 -1
  56. package/dist/stores/localStorage.d.cts +1 -1
  57. package/dist/stores/localStorage.d.ts +1 -1
  58. package/dist/stores/memory.d.cts +1 -1
  59. package/dist/stores/memory.d.ts +1 -1
  60. package/dist/{types-BwvgvlOO.d.cts → types-BzLD8bjb.d.cts} +1 -1
  61. package/dist/{types-ClRA8hzC.d.ts → types-C2eJ7DAV.d.ts} +1 -1
  62. package/dist/{types-DEj7OakX.d.cts → types-CMFSIjpc.d.cts} +39 -4
  63. package/dist/{types-DEj7OakX.d.ts → types-CMFSIjpc.d.ts} +39 -4
  64. package/dist/{types-FZ_eyErS.d.cts → types-ycun84cq.d.cts} +1 -0
  65. package/dist/{types-FZ_eyErS.d.ts → types-ycun84cq.d.ts} +1 -0
  66. package/dist/{validate-DEZ2Ymdb.d.ts → validate-DJQTQ6bP.d.ts} +1 -1
  67. package/dist/{validate-DqKTZg_o.d.cts → validate-ke92Cleg.d.cts} +1 -1
  68. package/examples/browser/boards/portfolio-tracker/cards/holdings-table.json +22 -0
  69. package/examples/browser/boards/portfolio-tracker/cards/portfolio-form.json +16 -0
  70. package/examples/browser/boards/portfolio-tracker/cards/portfolio-value.json +15 -0
  71. package/examples/browser/boards/portfolio-tracker/cards/price-fetch.json +15 -0
  72. package/examples/browser/boards/portfolio-tracker/fetch-prices.js +43 -0
  73. package/examples/browser/boards/portfolio-tracker/portfolio-tracker.bat +7 -0
  74. package/examples/browser/boards/portfolio-tracker/portfolio-tracker.js +189 -0
  75. package/examples/browser/livecards-browser/index.html +688 -0
  76. package/examples/browser/{index.html → step-machine-browser/index.html} +53 -53
  77. package/examples/cli/step-machine-cli/portfolio-tracker/cards/holdings-table.json +22 -0
  78. package/examples/cli/step-machine-cli/portfolio-tracker/cards/portfolio-form.json +43 -0
  79. package/examples/cli/step-machine-cli/portfolio-tracker/cards/portfolio-value.json +15 -0
  80. package/examples/cli/step-machine-cli/portfolio-tracker/cards/price-fetch.json +15 -0
  81. package/examples/cli/step-machine-cli/portfolio-tracker/fetch-prices.js +48 -0
  82. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +58 -0
  83. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/add-cards-cli.js +27 -0
  84. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/init-board-cli.js +25 -0
  85. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/reset-board-dir-cli.js +29 -0
  86. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/retrigger-cli.js +27 -0
  87. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/status-cli.js +25 -0
  88. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/update-holdings-cli.js +37 -0
  89. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/wait-completed-cli.js +53 -0
  90. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/write-prices-cli.js +35 -0
  91. package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.flow.yaml +227 -0
  92. package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.input.json +38 -0
  93. package/examples/cli/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +29 -0
  94. package/examples/cli/step-machine-demo/jsonata-init-board-cli.js +36 -0
  95. package/examples/cli/step-machine-demo/jsonata-init-board.flow.yaml +30 -0
  96. package/examples/cli/step-machine-demo/one-step-cli-only.flow.yaml +19 -0
  97. package/examples/cli/step-machine-demo/step-cli-echo-y.js +15 -0
  98. package/examples/cli/step-machine-demo/step2-double-cli.js +39 -0
  99. package/examples/cli/step-machine-demo/two-step-math-handlers.js +32 -0
  100. package/examples/cli/step-machine-demo/two-step-math.flow.yaml +31 -0
  101. package/examples/cli/step-machine-demo/two-step-mixed-handlers.js +24 -0
  102. package/examples/cli/step-machine-demo/two-step-mixed.flow.yaml +35 -0
  103. package/examples/index.html +792 -0
  104. package/examples/{batch → npm-libs/batch}/batch-step-machine.ts +1 -1
  105. package/examples/{continuous-event-graph → npm-libs/continuous-event-graph}/live-cards-board.ts +1 -1
  106. package/examples/{continuous-event-graph → npm-libs/continuous-event-graph}/live-portfolio-dashboard.ts +1 -1
  107. package/examples/{continuous-event-graph → npm-libs/continuous-event-graph}/portfolio-tracker.ts +1 -1
  108. package/examples/{continuous-event-graph → npm-libs/continuous-event-graph}/reactive-monitoring.ts +1 -1
  109. package/examples/{continuous-event-graph → npm-libs/continuous-event-graph}/reactive-pipeline.ts +1 -1
  110. package/examples/{continuous-event-graph → npm-libs/continuous-event-graph}/soc-incident-board.ts +1 -1
  111. package/examples/{continuous-event-graph → npm-libs/continuous-event-graph}/stock-dashboard.ts +1 -1
  112. package/examples/{event-graph → npm-libs/event-graph}/ci-cd-pipeline.ts +1 -1
  113. package/examples/{event-graph → npm-libs/event-graph}/executor-diamond.ts +1 -1
  114. package/examples/{event-graph → npm-libs/event-graph}/executor-pipeline.ts +1 -1
  115. package/examples/{event-graph → npm-libs/event-graph}/research-pipeline.ts +1 -1
  116. package/examples/{graph-of-graphs → npm-libs/graph-of-graphs}/multi-stage-etl.ts +1 -1
  117. package/examples/{graph-of-graphs → npm-libs/graph-of-graphs}/url-processing-pipeline.ts +1 -1
  118. package/examples/{inference → npm-libs/inference}/azure-deployment.ts +1 -1
  119. package/examples/{inference → npm-libs/inference}/copilot-cli.ts +1 -1
  120. package/examples/{inference → npm-libs/inference}/data-pipeline.ts +1 -1
  121. package/examples/{inference → npm-libs/inference}/pluggable-adapters.ts +1 -1
  122. package/examples/{node → npm-libs/node}/ai-conversation.ts +1 -1
  123. package/examples/{node → npm-libs/node}/simple-greeting.ts +2 -2
  124. package/examples/step-machine-cli/portfolio-tracker/cards/holdings-table.json +22 -0
  125. package/examples/step-machine-cli/portfolio-tracker/cards/portfolio-form.json +43 -0
  126. package/examples/step-machine-cli/portfolio-tracker/cards/portfolio-value.json +15 -0
  127. package/examples/step-machine-cli/portfolio-tracker/cards/price-fetch.json +15 -0
  128. package/examples/step-machine-cli/portfolio-tracker/fetch-prices.js +48 -0
  129. package/examples/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +58 -0
  130. package/examples/step-machine-cli/portfolio-tracker/handlers/add-cards-cli.js +27 -0
  131. package/examples/step-machine-cli/portfolio-tracker/handlers/init-board-cli.js +25 -0
  132. package/examples/step-machine-cli/portfolio-tracker/handlers/reset-board-dir-cli.js +29 -0
  133. package/examples/step-machine-cli/portfolio-tracker/handlers/retrigger-cli.js +27 -0
  134. package/examples/step-machine-cli/portfolio-tracker/handlers/status-cli.js +25 -0
  135. package/examples/step-machine-cli/portfolio-tracker/handlers/update-holdings-cli.js +37 -0
  136. package/examples/step-machine-cli/portfolio-tracker/handlers/wait-completed-cli.js +53 -0
  137. package/examples/step-machine-cli/portfolio-tracker/handlers/write-prices-cli.js +35 -0
  138. package/examples/step-machine-cli/portfolio-tracker/portfolio-tracker.flow.yaml +227 -0
  139. package/examples/step-machine-cli/portfolio-tracker/portfolio-tracker.input.json +38 -0
  140. package/examples/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +29 -0
  141. package/package.json +12 -1
  142. package/schema/board-status.schema.json +118 -0
  143. package/schema/flow.schema.json +5 -0
  144. package/schema/live-cards.schema.json +59 -77
  145. package/step-machine-cli.js +674 -0
  146. /package/examples/{flows → npm-libs/flows}/ai-conversation.yaml +0 -0
  147. /package/examples/{flows → npm-libs/flows}/order-processing.yaml +0 -0
  148. /package/examples/{flows → npm-libs/flows}/simple-greeting.yaml +0 -0
@@ -22,10 +22,10 @@
22
22
  declare function validateLiveCardSchema(node: unknown): ValidationResult;
23
23
 
24
24
  /**
25
- * card-compute — Pure JSON expression evaluator for node-based cards.
25
+ * card-compute — JSONata-powered compute engine for LiveCards nodes.
26
26
  *
27
27
  * Isomorphic: works in browser, Node.js, and bundlers.
28
- * No DOM dependency. No eval(). Pure declarative JSON expressions.
28
+ * No DOM dependency. Compute expressions are JSONata strings.
29
29
  *
30
30
  * @example
31
31
  * ```typescript
@@ -34,75 +34,78 @@ declare function validateLiveCardSchema(node: unknown): ValidationResult;
34
34
  * const node = {
35
35
  * id: 'sales',
36
36
  * state: { data: [{ revenue: 100 }, { revenue: 200 }] },
37
- * compute: {
38
- * total: { fn: 'sum', input: 'state.data', field: 'revenue' },
39
- * avg: { fn: 'avg', input: 'state.data', field: 'revenue' },
40
- * },
37
+ * compute: [
38
+ * { bindTo: 'total', expr: '$sum(state.data.revenue)' },
39
+ * { bindTo: 'avg', expr: '$average(state.data.revenue)' },
40
+ * ],
41
41
  * };
42
- * CardCompute.run(node);
43
- * // node.state.total === 300
44
- * // node.state.avg === 150
42
+ * await CardCompute.run(node);
43
+ * // node.computed_values.total === 300
44
+ * // node.computed_values.avg === 150
45
45
  * ```
46
+ *
47
+ * Expressions are evaluated against { state, requires, computed_values }.
48
+ * computed_values is ephemeral — never persisted to disk.
46
49
  */
47
- /** A compute expression pure JSON, arbitrarily nestable. */
48
- interface ComputeExpr {
49
- fn: string;
50
- input?: string | number | boolean | ComputeExpr | (string | number | boolean | ComputeExpr)[];
51
- field?: string;
52
- where?: ComputeExpr;
53
- apply?: ComputeExpr;
54
- cond?: ComputeExpr;
55
- then?: unknown;
56
- else?: unknown;
57
- format?: string;
58
- decimals?: number;
59
- separator?: string;
60
- direction?: 'asc' | 'desc';
61
- start?: number;
62
- end?: number;
63
- depth?: number;
64
- path?: string;
65
- value?: unknown;
50
+ /** A source definition: cli writes to outputFile; bindTo names the sources.* key in compute context. */
51
+ interface ComputeSource {
52
+ bindTo: string;
53
+ outputFile?: string;
54
+ cli?: string;
55
+ script?: string;
56
+ optionalForCompletionGating?: boolean;
66
57
  [key: string]: unknown;
67
58
  }
59
+ /** Options for CardCompute.run() */
60
+ interface RunOptions {
61
+ /** Pre-loaded sources data map (keyed by bindTo). Use in browser or when caller loads files. */
62
+ sourcesData?: Record<string, unknown>;
63
+ }
64
+ /** A single compute step: bindTo names the computed_values key; expr is a JSONata expression. */
65
+ interface ComputeStep {
66
+ bindTo: string;
67
+ expr: string;
68
+ }
68
69
  /** Minimal node shape expected by CardCompute. */
69
70
  interface ComputeNode {
70
71
  id?: string;
71
72
  state?: Record<string, unknown>;
72
- compute?: Record<string, ComputeExpr>;
73
+ requires?: Record<string, unknown>;
74
+ sources?: ComputeSource[];
75
+ compute?: ComputeStep[];
76
+ computed_values?: Record<string, unknown>;
77
+ /** Ephemeral: populated by run() from sourcesData option. Never persisted. */
78
+ _sourcesData?: Record<string, unknown>;
73
79
  [key: string]: unknown;
74
80
  }
75
- /** Internal evaluator signature passed to compute functions. */
76
- type EvalFn = (expr: unknown, node: ComputeNode) => unknown;
77
- /** A compute function implementation. */
78
- type ComputeFn = (input: unknown, evalFn: EvalFn, opts: ComputeExpr) => unknown;
79
- declare function evalExpr(expr: unknown, node: ComputeNode): unknown;
80
- declare function run(node: ComputeNode): ComputeNode;
81
+ /**
82
+ * Run all compute steps on a node.
83
+ * Each step's expr is evaluated against { state, requires, sources, computed_values }.
84
+ * Results are written to node.computed_values[bindTo].
85
+ * computed_values and _sourcesData are reset on each call — ephemeral, never persisted.
86
+ *
87
+ * @param options.sourcesData Pre-loaded map of { [bindTo]: data } for sources namespace.
88
+ * In Node/CLI: loaded from outputFiles by the caller (card-handler).
89
+ * In browser: passed in by the caller (e.g. from fetch results).
90
+ */
91
+ declare function run(node: ComputeNode, options?: RunOptions): Promise<ComputeNode>;
92
+ /**
93
+ * Evaluate a single JSONata expression against a node's context.
94
+ * Context is { state, requires, sources, computed_values }.
95
+ */
96
+ declare function evalExpr(expr: string, node: ComputeNode): Promise<unknown>;
81
97
  declare function resolve(node: ComputeNode, path: string): unknown;
82
- declare function registerFunction(name: string, fn: ComputeFn): void;
83
98
  /** Result of validateNode — ok: true means valid, ok: false has errors[]. */
84
99
  interface ValidationResult {
85
100
  ok: boolean;
86
101
  errors: string[];
87
102
  }
88
- /**
89
- * Validate a node against the LiveCards schema.
90
- * Lightweight structural check — no external dependencies.
91
- *
92
- * @example
93
- * ```typescript
94
- * const result = CardCompute.validate(node);
95
- * if (!result.ok) console.error(result.errors);
96
- * ```
97
- */
98
103
  declare function validateNode(node: unknown): ValidationResult;
99
104
  declare const CardCompute: {
100
105
  run: typeof run;
101
106
  eval: typeof evalExpr;
102
107
  resolve: typeof resolve;
103
108
  validate: typeof validateNode;
104
- registerFunction: typeof registerFunction;
105
- readonly functions: Record<string, ComputeFn>;
106
109
  };
107
110
 
108
- export { CardCompute, type ComputeExpr, type ComputeFn, type ComputeNode, type EvalFn, type ValidationResult, CardCompute as default, validateLiveCardSchema };
111
+ export { CardCompute, type ComputeNode, type ComputeSource, type ComputeStep, type RunOptions, type ValidationResult, CardCompute as default, validateLiveCardSchema };
@@ -22,10 +22,10 @@
22
22
  declare function validateLiveCardSchema(node: unknown): ValidationResult;
23
23
 
24
24
  /**
25
- * card-compute — Pure JSON expression evaluator for node-based cards.
25
+ * card-compute — JSONata-powered compute engine for LiveCards nodes.
26
26
  *
27
27
  * Isomorphic: works in browser, Node.js, and bundlers.
28
- * No DOM dependency. No eval(). Pure declarative JSON expressions.
28
+ * No DOM dependency. Compute expressions are JSONata strings.
29
29
  *
30
30
  * @example
31
31
  * ```typescript
@@ -34,75 +34,78 @@ declare function validateLiveCardSchema(node: unknown): ValidationResult;
34
34
  * const node = {
35
35
  * id: 'sales',
36
36
  * state: { data: [{ revenue: 100 }, { revenue: 200 }] },
37
- * compute: {
38
- * total: { fn: 'sum', input: 'state.data', field: 'revenue' },
39
- * avg: { fn: 'avg', input: 'state.data', field: 'revenue' },
40
- * },
37
+ * compute: [
38
+ * { bindTo: 'total', expr: '$sum(state.data.revenue)' },
39
+ * { bindTo: 'avg', expr: '$average(state.data.revenue)' },
40
+ * ],
41
41
  * };
42
- * CardCompute.run(node);
43
- * // node.state.total === 300
44
- * // node.state.avg === 150
42
+ * await CardCompute.run(node);
43
+ * // node.computed_values.total === 300
44
+ * // node.computed_values.avg === 150
45
45
  * ```
46
+ *
47
+ * Expressions are evaluated against { state, requires, computed_values }.
48
+ * computed_values is ephemeral — never persisted to disk.
46
49
  */
47
- /** A compute expression pure JSON, arbitrarily nestable. */
48
- interface ComputeExpr {
49
- fn: string;
50
- input?: string | number | boolean | ComputeExpr | (string | number | boolean | ComputeExpr)[];
51
- field?: string;
52
- where?: ComputeExpr;
53
- apply?: ComputeExpr;
54
- cond?: ComputeExpr;
55
- then?: unknown;
56
- else?: unknown;
57
- format?: string;
58
- decimals?: number;
59
- separator?: string;
60
- direction?: 'asc' | 'desc';
61
- start?: number;
62
- end?: number;
63
- depth?: number;
64
- path?: string;
65
- value?: unknown;
50
+ /** A source definition: cli writes to outputFile; bindTo names the sources.* key in compute context. */
51
+ interface ComputeSource {
52
+ bindTo: string;
53
+ outputFile?: string;
54
+ cli?: string;
55
+ script?: string;
56
+ optionalForCompletionGating?: boolean;
66
57
  [key: string]: unknown;
67
58
  }
59
+ /** Options for CardCompute.run() */
60
+ interface RunOptions {
61
+ /** Pre-loaded sources data map (keyed by bindTo). Use in browser or when caller loads files. */
62
+ sourcesData?: Record<string, unknown>;
63
+ }
64
+ /** A single compute step: bindTo names the computed_values key; expr is a JSONata expression. */
65
+ interface ComputeStep {
66
+ bindTo: string;
67
+ expr: string;
68
+ }
68
69
  /** Minimal node shape expected by CardCompute. */
69
70
  interface ComputeNode {
70
71
  id?: string;
71
72
  state?: Record<string, unknown>;
72
- compute?: Record<string, ComputeExpr>;
73
+ requires?: Record<string, unknown>;
74
+ sources?: ComputeSource[];
75
+ compute?: ComputeStep[];
76
+ computed_values?: Record<string, unknown>;
77
+ /** Ephemeral: populated by run() from sourcesData option. Never persisted. */
78
+ _sourcesData?: Record<string, unknown>;
73
79
  [key: string]: unknown;
74
80
  }
75
- /** Internal evaluator signature passed to compute functions. */
76
- type EvalFn = (expr: unknown, node: ComputeNode) => unknown;
77
- /** A compute function implementation. */
78
- type ComputeFn = (input: unknown, evalFn: EvalFn, opts: ComputeExpr) => unknown;
79
- declare function evalExpr(expr: unknown, node: ComputeNode): unknown;
80
- declare function run(node: ComputeNode): ComputeNode;
81
+ /**
82
+ * Run all compute steps on a node.
83
+ * Each step's expr is evaluated against { state, requires, sources, computed_values }.
84
+ * Results are written to node.computed_values[bindTo].
85
+ * computed_values and _sourcesData are reset on each call — ephemeral, never persisted.
86
+ *
87
+ * @param options.sourcesData Pre-loaded map of { [bindTo]: data } for sources namespace.
88
+ * In Node/CLI: loaded from outputFiles by the caller (card-handler).
89
+ * In browser: passed in by the caller (e.g. from fetch results).
90
+ */
91
+ declare function run(node: ComputeNode, options?: RunOptions): Promise<ComputeNode>;
92
+ /**
93
+ * Evaluate a single JSONata expression against a node's context.
94
+ * Context is { state, requires, sources, computed_values }.
95
+ */
96
+ declare function evalExpr(expr: string, node: ComputeNode): Promise<unknown>;
81
97
  declare function resolve(node: ComputeNode, path: string): unknown;
82
- declare function registerFunction(name: string, fn: ComputeFn): void;
83
98
  /** Result of validateNode — ok: true means valid, ok: false has errors[]. */
84
99
  interface ValidationResult {
85
100
  ok: boolean;
86
101
  errors: string[];
87
102
  }
88
- /**
89
- * Validate a node against the LiveCards schema.
90
- * Lightweight structural check — no external dependencies.
91
- *
92
- * @example
93
- * ```typescript
94
- * const result = CardCompute.validate(node);
95
- * if (!result.ok) console.error(result.errors);
96
- * ```
97
- */
98
103
  declare function validateNode(node: unknown): ValidationResult;
99
104
  declare const CardCompute: {
100
105
  run: typeof run;
101
106
  eval: typeof evalExpr;
102
107
  resolve: typeof resolve;
103
108
  validate: typeof validateNode;
104
- registerFunction: typeof registerFunction;
105
- readonly functions: Record<string, ComputeFn>;
106
109
  };
107
110
 
108
- export { CardCompute, type ComputeExpr, type ComputeFn, type ComputeNode, type EvalFn, type ValidationResult, CardCompute as default, validateLiveCardSchema };
111
+ export { CardCompute, type ComputeNode, type ComputeSource, type ComputeStep, type RunOptions, type ValidationResult, CardCompute as default, validateLiveCardSchema };