agents / Exports / BaseLayoutEngine
Class: BaseLayoutEngine
Base Layout Engine Abstract Class
Provides common functionality for all layout engines:
- Statistics tracking
- Logging with dependency injection
- Error handling and validation
- Performance monitoring
- Enable/disable functionality
- Common layout utilities
Hierarchy
BaseLayoutEngine
Implements
Table of contents
Constructors
Properties
Methods
Constructors
constructor
• new BaseLayoutEngine(options?): BaseLayoutEngine
Constructor following BaseModule pattern
Parameters
| Name | Type | Description |
|---|---|---|
options | BaseLayoutEngineOptions | Layout engine configuration options |
Returns
Defined in
packages/agents/src/abstracts/base-layout-engine.ts:89
Properties
name
• Readonly Abstract name: string
Layout engine name for identification
Implementation of
Defined in
packages/agents/src/abstracts/base-layout-engine.ts:61
version
• Readonly Abstract version: string
Layout engine version
Implementation of
Defined in
packages/agents/src/abstracts/base-layout-engine.ts:62
algorithm
• Readonly Abstract algorithm: string
Layout algorithm type
Implementation of
LayoutEngineInterface.algorithm
Defined in
packages/agents/src/abstracts/base-layout-engine.ts:63
supportedDirections
• Readonly Abstract supportedDirections: ("TB" | "BT" | "LR" | "RL")[]
Supported layout directions
Implementation of
LayoutEngineInterface.supportedDirections
Defined in
packages/agents/src/abstracts/base-layout-engine.ts:64
enabled
• enabled: boolean
Enable/disable state following BaseModule pattern
Defined in
packages/agents/src/abstracts/base-layout-engine.ts:67
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
Implementation of
LayoutEngineInterface.calculateLayout
Defined in
packages/agents/src/abstracts/base-layout-engine.ts:108
validateConfig
▸ validateConfig(config): Object
Default configuration validation (can be overridden by subclasses)
Parameters
| Name | Type | Description |
|---|---|---|
config | UniversalLayoutConfig | Layout configuration to validate |
Returns
Object
Validation result
| Name | Type |
|---|---|
isValid | boolean |
errors | string[] |
warnings | string[] |
Implementation of
LayoutEngineInterface.validateConfig
Defined in
packages/agents/src/abstracts/base-layout-engine.ts:232
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
Implementation of
LayoutEngineInterface.supportsConfig
Defined in
packages/agents/src/abstracts/base-layout-engine.ts:285
getOptimalConfig
▸ getOptimalConfig(nodes, _edges): UniversalLayoutConfig
Default optimal configuration generator Can be overridden by subclasses for algorithm-specific optimization
Parameters
| Name | Type | Description |
|---|---|---|
nodes | UniversalWorkflowNode[] | Nodes to layout |
_edges | UniversalWorkflowEdge[] | - |
Returns
Recommended layout configuration
Implementation of
LayoutEngineInterface.getOptimalConfig
Defined in
packages/agents/src/abstracts/base-layout-engine.ts:298
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 |
Implementation of
LayoutEngineInterface.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 |
Implementation of
LayoutEngineInterface.getStats
Defined in
packages/agents/src/abstracts/base-layout-engine.ts:383
resetStats
▸ resetStats(): void
Reset layout engine statistics
Returns
void
Implementation of
LayoutEngineInterface.resetStats