Skip to content

agents / Exports / HierarchicalLayoutEngine

Class: HierarchicalLayoutEngine

Hierarchical Layout Engine

Implements a hierarchical layout algorithm that:

  • Organizes nodes by their level property
  • Distributes nodes evenly within each level
  • Supports multiple layout directions (TB, BT, LR, RL)
  • Handles node sizing and spacing automatically
  • Prevents overlaps and optimizes readability

Hierarchy

Table of contents

Constructors

Properties

Methods

Constructors

constructor

new HierarchicalLayoutEngine(logger?, options?): HierarchicalLayoutEngine

Constructor with dependency injection

Parameters

NameTypeDescription
logger?SimpleLoggerLogger instance (optional, defaults to SilentLogger)
optionsHierarchicalLayoutOptionsLayout-specific options

Returns

HierarchicalLayoutEngine

Overrides

BaseLayoutEngine.constructor

Defined in

packages/agents/src/services/layout/hierarchical-layout-engine.ts:75

Properties

enabled

enabled: boolean

Enable/disable state following BaseModule pattern

Inherited from

BaseLayoutEngine.enabled

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:67


name

Readonly name: "HierarchicalLayoutEngine"

Layout engine name for identification

Overrides

BaseLayoutEngine.name

Defined in

packages/agents/src/services/layout/hierarchical-layout-engine.ts:61


version

Readonly version: "1.0.0"

Layout engine version

Overrides

BaseLayoutEngine.version

Defined in

packages/agents/src/services/layout/hierarchical-layout-engine.ts:62


algorithm

Readonly algorithm: "hierarchical"

Layout algorithm type

Overrides

BaseLayoutEngine.algorithm

Defined in

packages/agents/src/services/layout/hierarchical-layout-engine.ts:63


supportedDirections

Readonly supportedDirections: ("TB" | "BT" | "LR" | "RL")[]

Supported layout directions

Overrides

BaseLayoutEngine.supportedDirections

Defined in

packages/agents/src/services/layout/hierarchical-layout-engine.ts:64

Methods

calculateLayout

calculateLayout(nodes, edges, config, options?): Promise<LayoutCalculationResult>

Main layout calculation method with comprehensive error handling and metrics

Parameters

NameTypeDescription
nodesUniversalWorkflowNode[]Nodes to position
edgesUniversalWorkflowEdge[]Edges to consider for positioning
configUniversalLayoutConfigLayout configuration
optionsLayoutCalculationOptionsAdditional layout options

Returns

Promise<LayoutCalculationResult>

Promise resolving to layout result

Inherited from

BaseLayoutEngine.calculateLayout

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:108


supportsConfig

supportsConfig(config): boolean

Default implementation for checking if engine supports configuration Can be overridden by subclasses for specific requirements

Parameters

NameTypeDescription
configUniversalLayoutConfigLayout configuration to check

Returns

boolean

True if engine can handle this configuration

Inherited from

BaseLayoutEngine.supportsConfig

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:285


calculateBounds

calculateBounds(nodes): Object

Calculate bounds for a set of positioned nodes

Parameters

NameTypeDescription
nodesUniversalWorkflowNode[]Positioned nodes

Returns

Object

Calculated bounds

NameType
minXnumber
maxXnumber
minYnumber
maxYnumber
widthnumber
heightnumber

Inherited from

BaseLayoutEngine.calculateBounds

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:332


getStats

getStats(): Object

Get layout engine statistics

Returns

Object

Engine performance metrics

NameType
totalCalculationsnumber
successfulCalculationsnumber
failedCalculationsnumber
averageProcessingTimenumber
averageNodeCountnumber
lastCalculationAtundefined | Date

Inherited from

BaseLayoutEngine.getStats

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:383


resetStats

resetStats(): void

Reset layout engine statistics

Returns

void

Inherited from

BaseLayoutEngine.resetStats

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:401


validateConfig

validateConfig(config): Object

Enhanced configuration validation for hierarchical layout

Parameters

NameType
configUniversalLayoutConfig

Returns

Object

NameType
isValidboolean
errorsstring[]
warningsstring[]

Overrides

BaseLayoutEngine.validateConfig

Defined in

packages/agents/src/services/layout/hierarchical-layout-engine.ts:467


getOptimalConfig

getOptimalConfig(nodes, edges): UniversalLayoutConfig

Get optimal configuration for hierarchical layout

Parameters

NameType
nodesUniversalWorkflowNode[]
edgesUniversalWorkflowEdge[]

Returns

UniversalLayoutConfig

Overrides

BaseLayoutEngine.getOptimalConfig

Defined in

packages/agents/src/services/layout/hierarchical-layout-engine.ts:497

Released under the MIT License.