feat: restore source parity and harden agent runtime

This commit is contained in:
2026-06-22 11:17:26 +08:00
parent e33f08277b
commit 0793eb82d6
596 changed files with 168879 additions and 290 deletions
@@ -0,0 +1,100 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
工作流引擎基础模块
定义核心类型、枚举和数据类
"""
import logging
import uuid
from dataclasses import dataclass
from datetime import datetime
from enum import Enum
from typing import Dict, Any
logger = logging.getLogger(__name__)
class NodeType(Enum):
"""节点类型"""
START = 'start'
END = 'end'
APPROVAL = 'approval'
HANDLE = 'handle'
COPY = 'copy'
CONDITION = 'condition'
PARALLEL = 'parallel'
DELAY = 'delay'
NOTIFY = 'notify'
SERVICE = 'service'
SUBFLOW = 'subflow'
DATA_UPDATE = 'data_update'
class TaskAction(Enum):
"""任务操作"""
APPROVE = 'approve'
REJECT = 'reject'
TRANSFER = 'transfer'
RETURN = 'return'
DELEGATE = 'delegate'
ADD_SIGN = 'add_sign'
class MultiApprovalType(Enum):
"""多人审批类型"""
SEQUENTIAL = 'sequential'
PARALLEL = 'parallel'
ANY = 'any'
class InstanceStatus(Enum):
"""流程实例状态"""
PENDING = 'pending'
APPROVED = 'approved'
REJECTED = 'rejected'
CANCELED = 'canceled'
class TaskStatus(Enum):
"""任务状态"""
PENDING = 'pending'
WAITING = 'waiting'
APPROVED = 'approved'
REJECTED = 'rejected'
RETURNED = 'returned'
TRANSFERRED = 'transferred'
DELEGATED = 'delegated'
HANDLED = 'handled'
CANCELED = 'canceled'
READ = 'read'
@dataclass
class ExecutionContext:
"""
执行上下文
在流程执行过程中传递的上下文信息
"""
instance: Any
form_data: Dict
current_user_id: str
flow_definition: Dict
db: Any = None
def get_initiator_id(self) -> str:
"""获取发起人ID"""
return self.instance.initiator_id if self.instance else ''
def get_instance_id(self) -> str:
"""获取实例ID"""
return str(self.instance.id) if self.instance else ''
def get_current_node_id(self) -> str:
"""获取当前节点ID"""
return self.instance.current_node_id if self.instance else ''
def generate_instance_no() -> str:
"""生成流程实例编号"""
now = datetime.now()
return f"WF{now.strftime('%Y%m%d%H%M%S')}{str(uuid.uuid4())[:8].upper()}"