Members
# constant GRAPH_CATEGORY_STYLE_REGISTRY
Registry mapping category names to their default style (color + icon).
Registry mapping category names to their default style (color + icon).
Consumers register categories via registerGraphCategoryStyle.
The engine and renderer resolve the "effective" color/icon for a node by
checking the node's explicit color / icon first, then falling back to
the category's style, then a default.
# constant GRAPH_DEFAULT_CATEGORY_STYLE
Default fallback style when no category is registered and no explicit color/icon is set on the node.
Default fallback style when no category is registered and no explicit color/icon is set on the node.
# constant GRAPH_LOOP_PARAMETER_KEYS
Loop-configuration fields of legacy graph.metadata.loop bags that are
node configuration rather than loop-body settings.
Loop-configuration fields of legacy graph.metadata.loop bags that are
node configuration rather than loop-body settings. Per DECAF-50 §4.4.5
rule 6 (non-port operation/configuration fields belong in parameters),
these are carried into the instance's parameters so legacy loop
round-trips stay lossless; body/maxIterations/timeoutMs/
concurrency live on GraphLoopConfiguration.
# constant GRAPH_VISUAL_STATE_STYLES
The default visual-state → overlay mapping contract (DECAF-48 §4.4): running=faded green, blocked=yellow, errored=red; succeeded keeps the node's own accent; unexecuted-after-failure fades/disabled.
The default visual-state → overlay mapping contract (DECAF-48 §4.4): running=faded green, blocked=yellow, errored=red; succeeded keeps the node's own accent; unexecuted-after-failure fades/disabled. This is the shared, framework-neutral source of truth that supersedes the DECAF-32 §21.9 running colour for the live run-feedback overlay (§4.5).
# constant NODE_REGISTRY
Internal registry of all @node-decorated constructors.
Internal registry of all @node-decorated constructors.
# constant WORKFLOW_REGISTRY
Internal registry of all @graph-decorated constructors.
Internal registry of all @graph-decorated constructors.
# constant isClassConstructor
Type guard that verifies if a provided UI function-like value is a class constructor.
Type guard that verifies if a provided UI function-like value is a class constructor.
Methods
# assertGraphWorkflowDocumentValid()
Structural validation gate for a canonical GraphWorkflowDocument
(shared by the frontend builder and the backend nine-stage validator,
DECAF-50 §4.8 stage 1 shape rules).
Structural validation gate for a canonical GraphWorkflowDocument
(shared by the frontend builder and the backend nine-stage validator,
DECAF-50 §4.8 stage 1 shape rules). Checks unique port/node/edge ids,
valid schemas, binding shapes, edge endpoints, and recursively validates
nested loop-body documents.
ValidationError describing the first invalid aspect found.
# boundaryPortIdsFor()
Maps workflow input-property names to their legacy boundary-badge ids
(input-{property}), so badges drawn on the canvas resolve back to the
workflow port they represent (§4.11).
Maps workflow input-property names to their legacy boundary-badge ids
(input-{property}), so badges drawn on the canvas resolve back to the
workflow port they represent (§4.11).
# connection()
Declares a "connection" port on a node — a third port kind alongside
@input() and @output().
Declares a "connection" port on a node — a third port kind alongside
@input() and @output(). Connection ports are rendered on the bottom
side of the node (inputs are on the left, outputs on the right).
Connections are typed by category (e.g. "model", "memory",
"workspace"). The category determines the port's color via the
registerGraphCategoryStyle registry.
Unlike @input / @output, connection ports do NOT carry workflow data
values — they represent structural dependencies (e.g. an Agent node
connecting to a Model resource, a Memory store, or a Workspace). Nodes may
have zero or more @connection() ports.
Usage:
# edgePairKeyOf()
Endpoint-pair key for edge identity (canonical GraphEndpoint shape).
Endpoint-pair key for edge identity (canonical GraphEndpoint shape).
# getUIAttributeKey(prop, key)
Derives the metadata key for a UI attribute on a decorated property.
Derives the metadata key for a UI attribute on a decorated property.
Parameters:
| Name | Type | Description |
|---|---|---|
prop |
Property name decorated on the UI model. |
|
key |
Attribute identifier stored under the property metadata. |
Fully qualified metadata key scoped to UIKeys.REFLECT.
# graphCategoryStyleOf()
Returns the style registered for category, or the default fallback style.
Returns the style registered for category, or the default fallback style.
# graphDecoratedWorkflowCompiler()
Compiles a decorated workflow (or an already-resolved
GraphWorkflowDefinition) into a canonical
GraphWorkflowDocument: workflow boundary ports, one instance per
node (input-port defaults and loop/switch metadata folded into
parameters/metadata), one edge per relation, plus UI state.
Compiles a decorated workflow (or an already-resolved
GraphWorkflowDefinition) into a canonical
GraphWorkflowDocument: workflow boundary ports, one instance per
node (input-port defaults and loop/switch metadata folded into
parameters/metadata), one edge per relation, plus UI state. Browser-safe:
node constructors are never invoked, so @node classes can seed demo
graphs without engine imports (DECAF-50 §4.4.4).
ValidationError when the input cannot be resolved to a decorated graph workflow definition.
# graphLegacyLoopMetadataOf()
Reads the legacy graph.metadata.loop bag from either the node metadata or
the node definition shim, so loop-configuration fields can be split between
GraphLoopConfiguration and instance parameters (§4.4.5 rule 6).
Reads the legacy graph.metadata.loop bag from either the node metadata or
the node definition shim, so loop-configuration fields can be split between
GraphLoopConfiguration and instance parameters (§4.4.5 rule 6).
# graphNodes()
Returns all @node-decorated constructors.
Returns all @node-decorated constructors.
A fresh array of constructors (mutable; does not expose the internal set).
# graphVisualStyleOf(state)
Resolves the visual style overlay for a node/edge execution state, falling back to a neutral default when the state is unknown or unregistered.
Resolves the visual style overlay for a node/edge execution state, falling back to a neutral default when the state is unknown or unregistered.
Parameters:
| Name | Type | Description |
|---|---|---|
state |
The visual state string (as defined by the shared
|
The style overlay for the given state.
# graphWorkflowDocumentFromLegacySnapshot()
Maps a legacy (pre-P7) canvas snapshot to the canonical
GraphWorkflowDocument (DECAF-50 §4.4.6): legacy node.data becomes
instance parameters, legacy node.metadata becomes instance metadata,
workflow boundary badges (input-{port}) fold back onto their workflow
ports, and edge labels missing from cloned edge rows are restored from the
decorated definition's relation labels (§4.4.7).
Maps a legacy (pre-P7) canvas snapshot to the canonical
GraphWorkflowDocument (DECAF-50 §4.4.6): legacy node.data becomes
instance parameters, legacy node.metadata becomes instance metadata,
workflow boundary badges (input-{port}) fold back onto their workflow
ports, and edge labels missing from cloned edge rows are restored from the
decorated definition's relation labels (§4.4.7).
# graphWorkflowSnapshotFromLegacy()
Converts a legacy persisted snapshot into the canonical wrapper.
Converts a legacy persisted snapshot into the canonical wrapper. The canonical
document carries executable semantics; editor.legacy keeps the sanitized
(constructor-free) legacy payload so a canonical→legacy round trip is lossless
for persisted data.
# graphWorkflowSnapshotLikeToCanonical()
Normalizes any accepted snapshot/document form to a canonical wrapper.
Normalizes any accepted snapshot/document form to a canonical wrapper.
# graphWorkflowSnapshotToLegacy()
Reconstructs a legacy snapshot from a canonical wrapper.
Reconstructs a legacy snapshot from a canonical wrapper. Uses the
editor.legacy payload when present for exact round trips; otherwise it
rebuilds a best-effort legacy snapshot from the document + editor state
(constructors are never restored).
# graphWorkflows()
Returns all @graph-decorated constructors.
Returns all @graph-decorated constructors.
A fresh array of constructors.
# hidden() → {function}
Makes a property invisible in all CRUD operations This decorator is a convenience wrapper around hideOn that hides a property during all CRUD operations (CREATE, READ, UPDATE, DELETE).
Decorator that completely hides a property in all UI operations
A property decorator function
function
Example
// Completely hide the internalId field in the UI
class Product {
# hideFor()
Controls property visibility based on namespace membership.
Decorator that hides a property for specific namespaces.
# hideOn(operations) → {function}
Controls property visibility based on operation type This decorator allows you to specify which CRUD operations should hide a property in the UI. The property will only be visible during operations not specified.
Decorator that hides a property during specific CRUD operations
Parameters:
| Name | Type | Description |
|---|---|---|
operations |
The CRUD operations during which the property should be hidden |
A property decorator function
function
Example
// Hide the password field during READ operations
class User {
# isGraphNodePolicyManifest() → {boolean}
Type guard for GraphNodePolicyManifest: accepts objects whose
inputMode (when present) is one of the declared
GraphNodePolicyInputMode values.
Type guard for GraphNodePolicyManifest: accepts objects whose
inputMode (when present) is one of the declared
GraphNodePolicyInputMode values.
Whether the value is a GraphNodePolicyManifest.
boolean
# legacyRelationLabelByEndpoint()
Resolves the decorated definition's own edge labels by canonical endpoint
pair, so converted legacy edges that never carried a label on the edge row
(canvas-drawn clones merged over the relation rows) still restore the
document-carried GraphEdgeInstance.label (§4.4.7) instead of losing
the display affordance on save/reload.
Resolves the decorated definition's own edge labels by canonical endpoint
pair, so converted legacy edges that never carried a label on the edge row
(canvas-drawn clones merged over the relation rows) still restore the
document-carried GraphEdgeInstance.label (§4.4.7) instead of losing
the display affordance on save/reload.
# pinnable()
Class decorator that marks a graph node as pinnable.
Class decorator that marks a graph node as pinnable.
The metadata is stored in the node's graph.metadata.pinnable field so the
Angular renderer and the core pinning policy can read it.
Usage:
# registerGraphCategoryStyle()
Registers a category style (color + optional icon) in the global registry.
Registers a category style (color + optional icon) in the global registry. Call this at module init time (e.g. in the engine's node declarations) to define the visual style for a category of nodes or connections.
# registerNode(ctor)
Appends a constructor to the node registry.
Appends a constructor to the node registry. Called by the @node decorator.
Idempotent — re-decorating the same class does not duplicate the entry.
Parameters:
| Name | Type | Description |
|---|---|---|
ctor |
The |
# registerWorkflow(ctor)
Appends a constructor to the workflow registry.
Appends a constructor to the workflow registry. Called by the @graph
decorator. Idempotent.
Parameters:
| Name | Type | Description |
|---|---|---|
ctor |
The |
# renderIf()
Convenience alias for namespace-scoped visibility control.
Decorator that renders a property only when the namespace matches.
# renderedBy(engine) → {function}
Associates a model with a specific rendering engine implementation This decorator allows you to override the default rendering engine for a specific model class, enabling different rendering strategies for different models.
Decorator that specifies which rendering engine to use for a model
Parameters:
| Name | Type | Description |
|---|---|---|
engine |
string
|
The name of the rendering engine to use |
A class decorator function
function
Example
// Specify a custom rendering engine for a model
# resolveEffectiveColor()
Resolves the effective color for a node: explicit color overrides the
category color, which overrides the default.
Resolves the effective color for a node: explicit color overrides the
category color, which overrides the default.
# resolveEffectiveIcon()
Resolves the effective icon for a node: explicit icon overrides the
category icon, which overrides the default.
Resolves the effective icon for a node: explicit icon overrides the
category icon, which overrides the default.
# resolvePortGroups()
Builds the effective portGroups list for a node: starts from the declared
GraphNodeMetadata.portGroups and ensures every Schema-typed @input /
@output property not explicitly listed gets a default
{ property, toggle: "all" } entry.
Builds the effective portGroups list for a node: starts from the declared
GraphNodeMetadata.portGroups and ensures every Schema-typed @input /
@output property not explicitly listed gets a default
{ property, toggle: "all" } entry. Non-Schema-typed @input / @output
properties are not groups and are ignored.
# sanitizeLegacySnapshotPayload()
Sanitizes a legacy snapshot into a JSON-safe payload while preserving its
structural keys (version, definition, state).
Sanitizes a legacy snapshot into a JSON-safe payload while preserving its
structural keys (version, definition, state). Constructor-key stripping
still applies to the payload contents inside, so the canonical→legacy
round trip stays lossless for persisted data.
# schemaGroupPorts()
Returns the flattened ports of a Schema-typed @input / @output property
(a "Schema port group").
Returns the flattened ports of a Schema-typed @input / @output property
(a "Schema port group"). The Schema's own @input / @output properties
whose direction matches direction are spliced into the result UNPREFIXED
(no <schemaProp>. prefix). The carrier property itself is not a port.
Returns undefined when the property is not a Schema group (not
graph.schema, or not Schema-typed), so the caller falls back to the legacy
single-port / composite expansion path.
# showFor()
Namespace-aware counterpart to hideFor.
Decorator that shows a property only for specific namespaces.
# uichild(clazz, tag, propsopt, serializeopt) → {function}
Defines how a parent component should render the child model when nested.
This decorator is used to decorate properties that are nested models. When applied, it allows overriding the default tag of the child model with the provided one, enabling different rendering behavior when the model acts as a child (nested) compared to when it is rendered as the parent model.
It requires the class to be decorated with @uimodel.
Decorator that maps a nested model property to a UI component property.
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
clazz |
string
|
The model class name to pass to the component (defaults to the property key). |
||
tag |
string
|
The HTML element or component tag name to override the UI tag of the nested model |
||
props |
Record.<string, any>
|
<optional> |
Additional properties to pass to the element |
|
serialize |
boolean
|
<optional> |
false | Whether the property should be serialized |
A property decorator function.
function
Example
// Map a nested model to a component property with a different tag when nested
# uielement(tag, propsopt, serializeopt) → {function}
Maps a model property to a specific UI element with custom properties This decorator allows you to define which HTML element or component should be used to render a specific property, along with any additional properties to pass to that element.
Decorator that specifies how a property should be rendered as a UI element
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
tag |
string
|
The HTML element or component tag name to use for rendering |
||
props |
Record.<string, any>
|
<optional> |
Additional properties to pass to the element |
|
serialize |
boolean
|
<optional> |
false | Whether the property should be serialized |
A property decorator function
function
Example
// Render a property as a text input
class LoginForm {
# uihandlers(propsopt) → {function}
Specifies event handlers that should be attached to the rendered model This decorator allows you to define event handlers that will be automatically attached to the rendered UI element. The handlers are passed as properties to the rendering engine.
Decorator that adds event handlers to a UI model
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
props |
Record.<string, any>
|
<optional> |
Object containing event handler functions and other properties |
A class decorator function
function
Example
// Add event handlers to a model
# uilayout(tag, colsModeopt, rowsopt, breakpointopt) → {function}
Combines UI model functionality with layout grid configuration This decorator creates a UI model that acts as a layout container with specified column and row configurations. It's a convenience decorator that combines.
Decorator that creates a layout container with grid specifications
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
tag |
string
|
The HTML tag to use for the layout container |
||
colsMode |
number
|
boolean
|
<optional> |
1 | Number of columns in the grid layout or a boolean for flex mode |
rows |
number
|
Array.<string>
|
<optional> |
1 | Number of rows or array of row definitions |
breakpoint |
UIMediaBreakPoints
|
<optional> |
'm' | Media breakpoint for responsive behavior |
A class decorator function
function
Example
// Create a simple 2-column layout
# uilayoutprop(col, rowopt, propsopt) → {function}
Specifies the column and row position for a property in a UI layout grid This decorator allows you to define the specific position of a property within a grid-based layout system. It specifies which column and row the property should occupy when rendered in the UI.
Decorator that positions a property in a specific grid layout position
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
col |
number
|
The column position in the grid layout |
||
row |
number
|
<optional> |
1 | The row position in the grid layout (defaults to 1) |
props |
Record.<string, any>
|
<optional> |
{} | Additional properties to pass to the layout item |
A property decorator function
function
Example
// Position properties in a grid layout
# uilistmodel(tagopt, propsopt) → {function}
Specifies how a model should be rendered when displayed in a list context This decorator applies metadata to the class that enables it to be rendered as a list item by the UI rendering engine. The model will be rendered with the specified tag and properties when it appears in a list.
Decorator that tags a model as a list item for UI rendering
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
tag |
string
|
<optional> |
The HTML tag to use when rendering this model as a list item (defaults to class name) |
props |
Record.<string, any>
|
<optional> |
Additional properties to pass to the rendered list item element |
A class decorator function
function
Example
// Basic usage with default tag (class name)
# uilistprop(propNameopt, propsopt) → {function}
Specifies how a property should be rendered in a list context This decorator allows you to define how a model property containing a list should be rendered. It requires the class to be decorated with @uilistmodel.
Decorator that maps a model property to a list item component
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
propName |
string
|
<optional> |
The name of the property to pass to the list component (defaults to the property key) |
props |
Record.<string, any>
|
<optional> |
Additional properties to pass to the list container |
A property decorator function
function
Example
// Define a list property with custom rendering
# uimodel(tagopt, propsopt) → {function}
Adds rendering capabilities to a model class by providing a render method This decorator applies metadata to the class that enables it to be rendered by the UI rendering engine. The model will be rendered with the specified tag and properties.
Decorator that tags a class as a UI model
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
tag |
string
|
<optional> |
The HTML tag to use when rendering this model (defaults to class name) |
props |
Record.<string, any>
|
<optional> |
Additional properties to pass to the rendered element |
A class decorator function
function
Example
// Basic usage with default tag (class name)
# uionclick(handler)
A decorator function that associates a UI click handler with the 'handleClick' event.
A decorator function that associates a UI click handler with the 'handleClick' event.
Parameters:
| Name | Type | Description |
|---|---|---|
handler |
A function that conforms to the |
A decorated function that binds the handler to the 'handleClick' event.
# uionrender(handler)
A decorator function that associates a UI rendering handler with the 'render' event.
A decorator function that associates a UI rendering handler with the 'render' event.
Parameters:
| Name | Type | Description |
|---|---|---|
handler |
A function that conforms to the |
A decorated function that binds the handler to the 'render' event.
# uiorder(orderopt) → {function}
Specifies the rendering order for UI components This decorator applies metadata to the property or class, indicating its order in the UI rendering sequence.
Decorator that sets the order of a UI element
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
order |
number
|
<optional> |
1 | The order value for the UI element (default is 1) |
A property or class decorator function
function
Example
// Set order for a field
# uipageprop(pageopt) → {function}
Specifies which page a property should appear on in paginated UI layouts This decorator applies metadata to the property, indicating which page number it belongs to in a multi-page form or wizard. Properties with the same page number are grouped together and rendered on the same page. This is typically used in conjunction with @uisteppedmodel to organize large forms into manageable sections.
Decorator that assigns a property to a specific page in multi-page forms
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
page |
number
|
<optional> |
1 | The page number where the property should appear (default is 1) |
A property decorator function
function
Example
// Create a multi-step registration form with page-based layout
# uiprop(propNameopt, stringifyopt) → {function}
Specifies how a property should be passed to a UI component This decorator allows you to define how a model property should be mapped to a property of the UI component when rendering. It requires the class to be decorated with @uimodel.
Decorator that maps a model property to a UI component property
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
propName |
string
|
<optional> |
The name of the property to pass to the component (defaults to the property key) |
|
stringify |
boolean
|
<optional> |
false | Whether to stringify the property value |
A property decorator function
function
Example
// Map model properties to component properties
# uisteppedmodel(tag, pagesopt, paginatedopt, propsopt) → {function}
Combines UI model functionality with stepped/wizard form configuration This decorator creates a UI model that acts as a multi-step container with page navigation capabilities. It is designed for wizard-style forms or multi-page workflows where users progress through sequential steps. The decorator combines @uimodel with page-specific properties and optional pagination controls.
Decorator that creates a multi-step form model with page navigation
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
tag |
string
|
The HTML tag to use for the stepped form container |
||
pages |
number
|
Array.<IPagedComponentProperties>
|
<optional> |
1 | Number of pages or an array of page definitions with metadata |
paginated |
boolean
|
<optional> |
false | Whether to show pagination controls (e.g., prev/next buttons) |
props |
any
|
<optional> |
{} | Additional properties to pass to the container element |
A class decorator function
function
Example
// Create a simple 3-step wizard form
# uitablecol(sequence, valueParserFnopt) → {function}
Controls column ordering and optional value parsing for table props Use this decorator to register list properties as table columns, define the sequence in which they appear, and optionally provide a parser that formats the value before rendering.
Decorator that marks a property as a column in a UI table
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
sequence |
number
|
The display order for the column (lower means first) |
|
valueParserFn |
UIFunctionLike
|
<optional> |
Optional formatter executed per cell |
A property decorator function
function
Example
class Order {
Type Definitions
Constructor
|
Model
|
GraphWorkflowDefinition
# GraphDecoratedWorkflowInput
Anything the compiler can resolve into a GraphWorkflowDefinition: a decorated workflow class (constructor), a model instance, or a definition.
Anything the compiler can resolve into a GraphWorkflowDefinition: a decorated workflow class (constructor), a model instance, or a definition.
object
# GraphNodeIoMetadata
Node I/O inspection metadata (DECAF-48 §4.6) — hints the workflow canvas uses to open the inline split view for an already-ran node.
Node I/O inspection metadata (DECAF-48 §4.6) — hints the workflow canvas uses to open the inline split view for an already-ran node. Framework neutral, frontend-safe, no engine/runtime dependency (DECAF-24 §4).
Properties:
| Name | Type | Attributes | Description |
|---|---|---|---|
view |
GraphNodeIoViewMode
|
<optional> |
Default view mode for the reusable viewer. Defaults to "json". |
inputPorts |
Array
|
<optional> |
Port property names shown in the right-side inputs pane. |
outputPorts |
Array
|
<optional> |
Port property names shown in the left-side outputs pane. |
editable |
boolean
|
<optional> |
Whether the node exposes editable config (opens the edit modal instead). |
metadata |
Record.<string, unknown>
|
<optional> |
Free-form extension points. |
"json"
|
"table"
|
"raw"
# GraphNodeIoViewMode
A view-mode choice for the reusable I/O viewer (DECAF-48 §4.6 / Req-9).
A view-mode choice for the reusable I/O viewer (DECAF-48 §4.6 / Req-9). One shared component renders both the inputs and outputs panes.
"any"
|
"single"
|
"multiple"
# GraphNodePolicyInputMode
Input binding mode of a node policy: any number of bindings, exactly one, or multiple.
Input binding mode of a node policy: any number of bindings, exactly one, or multiple.
object
# GraphPortGroupMetadata
Metadata for a Schema port group — the one-vs-all rendering choice for a
@input / @output Schema-typed property.
Metadata for a Schema port group — the one-vs-all rendering choice for a
@input / @output Schema-typed property.
toggle: "all" (default) renders each Schema property as its own connectable
port on the canvas. toggle: "single" renders one grouped port that receives
the whole object and maps it to the right place. The per-instance
manual-fill (hide a port because its value is supplied via the CRUD field)
is NOT carried here — that is the editor's port-toggle state in node.data.
Properties:
| Name | Type | Attributes | Description |
|---|---|---|---|
property |
string
|
The Schema-typed |
|
toggle |
"single"
|
"all"
|
<optional> |
Render choice for this group. Defaults to |
label |
string
|
<optional> |
Optional label for the grouped port when |
object
# GraphSnapshotEditorState
Editor-only state that the canonical GraphWorkflowDocument cannot
express (layout beyond node positions, config-store values, per-port modes,
workflow boundary values, and duplicate counts).
Editor-only state that the canonical GraphWorkflowDocument cannot
express (layout beyond node positions, config-store values, per-port modes,
workflow boundary values, and duplicate counts). Stored as JSON-safe values
only; constructors and modelClass/sourceClass references are dropped.
Properties:
| Name | Type | Attributes | Description |
|---|---|---|---|
viewport |
object
|
<optional> |
|
x |
number
|
||
y |
number
|
||
scale |
number
|
||
duplicateCounts |
Record.<string, number>
|
<optional> |
|
boundaryInputValues |
Record.<string, GraphJsonValue>
|
<optional> |
|
boundaryOutputValues |
Record.<string, GraphJsonValue>
|
<optional> |
|
nodePorts |
Record.<string, Record.<string, GraphJsonValue>>
|
<optional> |
|
nodeConfigs |
Record.<string, GraphJsonValue>
|
<optional> |
|
diagramMetadata |
Record.<string, GraphJsonValue>
|
<optional> |
|
definitionDisplay |
Record.<string, GraphJsonValue>
|
<optional> |
|
legacy |
GraphJsonValue
|
<optional> |
|
{...} |
GraphJsonValue
|
undefined
|
object
# GraphVisualStyle
Visual treatment for a node/edge execution state (DECAF-48 §4.4).
Visual treatment for a node/edge execution state (DECAF-48 §4.4). Maps a
GraphVisualState value to the faded glow / fade-after-fail overlay
colours used by the canvas renderer.
Properties:
| Name | Type | Attributes | Description |
|---|---|---|---|
state |
string
|
Visual state string as defined by the shared |
|
glow |
string
|
<optional> |
Glow/border colour for the live run-feedback overlay. |
opacity |
number
|
<optional> |
Level of fade for unexecuted/disabled rendering (0..1). |
color |
string
|
<optional> |
Optional fill colour when the node is in this state. |
object
# GraphWorkflowSnapshot
Canonical document-first snapshot.
Canonical document-first snapshot. document is the executable semantic
truth; editor preserves legacy editor-only state for lossless round trips.
Properties:
| Name | Type | Attributes | Description |
|---|---|---|---|
document |
GraphWorkflowDocument
|
||
editor |
GraphSnapshotEditorState
|
<optional> |
|
metadata |
Record.<string, GraphJsonValue>
|
<optional> |
object
# LegacyGraphWorkflowSnapshot
Legacy persisted snapshot ({ version, definition, state }).
Legacy persisted snapshot ({ version, definition, state }). Kept only for
loading/compatibility of persisted data; the canonical snapshot is
GraphWorkflowSnapshot ({ document, editor?, metadata? }).
Convert with graphWorkflowSnapshotFromLegacy /
graphWorkflowSnapshotToLegacy.
Properties:
| Name | Type | Description |
|---|---|---|
version |
GraphWorkflowSnapshotVersion
|
|
definition |
GraphWorkflowSnapshotDefinition
|
|
state |
GraphWorkflowSnapshotState
|