This commit is contained in:
Typer_Body
2026-05-26 02:28:01 +08:00
parent b5c43cc113
commit 5d4e40459f
59 changed files with 795 additions and 329 deletions
-81
View File
@@ -1,81 +0,0 @@
"""Workflow package for LangBot
This package provides a visual workflow system for LangBot, including:
- Workflow definition models
- Execution engine
- Node types (trigger, process, control, action, integration)
- Trigger system for automation
"""
from .entities import (
WorkflowDefinition,
NodeDefinition,
EdgeDefinition,
Position,
PortDefinition,
TriggerDefinition,
WorkflowSettings,
ExecutionContext,
NodeState,
ExecutionStatus,
NodeStatus,
)
from importlib import import_module
from typing import Any
from .node import WorkflowNode, workflow_node
def __getattr__(name: str) -> Any:
"""Lazily expose heavier workflow modules.
Loading workflow metadata should not import the executor or node modules as a
side effect. Node implementations are imported explicitly during boot after
YAML metadata has been registered.
"""
if name == 'NodeTypeRegistry':
from .registry import NodeTypeRegistry
return NodeTypeRegistry
if name == 'WorkflowExecutor':
from .executor import WorkflowExecutor
return WorkflowExecutor
if name in ('DebugWorkflowExecutor', 'DebugExecutionState', 'ExecutionLog'):
from . import debug
return getattr(debug, name)
if name == 'nodes':
return import_module('.nodes', __name__)
raise AttributeError(f'module {__name__!r} has no attribute {name!r}')
__all__ = [
# Entities
'WorkflowDefinition',
'NodeDefinition',
'EdgeDefinition',
'Position',
'PortDefinition',
'TriggerDefinition',
'WorkflowSettings',
'ExecutionContext',
'NodeState',
'ExecutionStatus',
'NodeStatus',
# Node
'WorkflowNode',
'workflow_node',
# Registry
'NodeTypeRegistry',
# Executor
'WorkflowExecutor',
# Debug
'DebugWorkflowExecutor',
'DebugExecutionState',
'ExecutionLog',
]