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
↳
HierarchicalLayoutEngine
Table of contents
Constructors
Properties
Methods
Constructors
constructor
• new HierarchicalLayoutEngine(logger?, options?): HierarchicalLayoutEngine
Constructor with dependency injection
Parameters
| Name | Type | Description |
|---|---|---|
logger? | SimpleLogger | Logger instance (optional, defaults to SilentLogger) |
options | HierarchicalLayoutOptions | Layout-specific options |
Returns
Overrides
Defined in
packages/agents/src/services/layout/hierarchical-layout-engine.ts:75
Properties
enabled
• enabled: boolean
Enable/disable state following BaseModule pattern
Inherited from
Defined in
packages/agents/src/abstracts/base-layout-engine.ts:67
name
• Readonly name: "HierarchicalLayoutEngine"
Layout engine name for identification
Overrides
Defined in
packages/agents/src/services/layout/hierarchical-layout-engine.ts:61
version
• Readonly version: "1.0.0"
Layout engine version
Overrides
Defined in
packages/agents/src/services/layout/hierarchical-layout-engine.ts:62
algorithm
• Readonly algorithm: "hierarchical"
Layout algorithm type
Overrides
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
| Name | Type | Description |
|---|---|---|
nodes | UniversalWorkflowNode[] | Nodes to position |
edges | UniversalWorkflowEdge[] | Edges to consider for positioning |
config | UniversalLayoutConfig | Layout configuration |
options | LayoutCalculationOptions | Additional 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
| Name | Type | Description |
|---|---|---|
config | UniversalLayoutConfig | Layout 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
| Name | Type | Description |
|---|---|---|
nodes | UniversalWorkflowNode[] | Positioned nodes |
Returns
Object
Calculated bounds
| Name | Type |
|---|---|
minX | number |
maxX | number |
minY | number |
maxY | number |
width | number |
height | number |
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
| Name | Type |
|---|---|
totalCalculations | number |
successfulCalculations | number |
failedCalculations | number |
averageProcessingTime | number |
averageNodeCount | number |
lastCalculationAt | undefined | Date |
Inherited from
Defined in
packages/agents/src/abstracts/base-layout-engine.ts:383
resetStats
▸ resetStats(): void
Reset layout engine statistics
Returns
void
Inherited from
Defined in
packages/agents/src/abstracts/base-layout-engine.ts:401
validateConfig
▸ validateConfig(config): Object
Enhanced configuration validation for hierarchical layout
Parameters
| Name | Type |
|---|---|
config | UniversalLayoutConfig |
Returns
Object
| Name | Type |
|---|---|
isValid | boolean |
errors | string[] |
warnings | string[] |
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
| Name | Type |
|---|---|
nodes | UniversalWorkflowNode[] |
edges | UniversalWorkflowEdge[] |
Returns
Overrides
BaseLayoutEngine.getOptimalConfig
Defined in
packages/agents/src/services/layout/hierarchical-layout-engine.ts:497