复用引擎既有 approval_gate 机制,不重造状态机: - 新增 dingtalk_approval.py:注册 step_type='dingtalk_approval'(interactive), 进入步骤自动向钉钉发起审批;注册 biz_type='pipeline_approval' 回调钩子, 审批结果回来调 approval_approve/reject 推进产线(内部已 save_artifact+resume_task) - executor._handle_interactive_step 加外部通知钩子(按 step_type meta.notifier 分派), 并把 tenant_id 从 _execute_step 传下来(原 step_info 里无此字段,会永远取空) - biz_id 编码 tenant_id:task_id:step_name,回调据此定位步骤 - 软依赖 dingdingflow:未加载时步骤仍挂起等人工审批,不推钉钉、不报错 - 通知失败只记日志不改步骤状态,避免外部系统故障导致步骤 FAILED
69 lines
2.0 KiB
Python
69 lines
2.0 KiB
Python
"""pipeline_service - 通用产线执行引擎模块。v3.5.0"""
|
||
|
||
from .init import (
|
||
load_pipeline_service,
|
||
pipeline_submit,
|
||
pipeline_list,
|
||
pipeline_detail,
|
||
pipeline_node,
|
||
pipeline_modify,
|
||
pipeline_pause,
|
||
pipeline_resume,
|
||
pipeline_cancel,
|
||
pipeline_handlers,
|
||
pipeline_step_types,
|
||
pipeline_register_step_type,
|
||
pipeline_unregister_step_type,
|
||
)
|
||
from .handler import register_handler, list_handlers, register_default_handler
|
||
from .step_registry import register_step_type, get_step_type, list_step_types, load_builtin_types
|
||
from .human import human_complete, approval_approve, approval_reject, human_list
|
||
from .dingtalk_approval import (
|
||
load_dingtalk_approval,
|
||
notify_dingtalk_approval,
|
||
on_dingtalk_approval_done,
|
||
)
|
||
from .state import (
|
||
STATE_PENDING, STATE_RUNNING, STATE_COMPLETED, STATE_FAILED, STATE_SKIPPED,
|
||
STATE_WAITING, STATE_REJECTED,
|
||
TASK_SUBMITTED, TASK_RUNNING, TASK_COMPLETED, TASK_FAILED, TASK_PAUSED, TASK_CANCELLED, TASK_WAITING,
|
||
HUMAN_PENDING, HUMAN_SUBMITTED, HUMAN_APPROVED, HUMAN_REJECTED, HUMAN_EXPIRED,
|
||
)
|
||
|
||
# v2: Agent 执行引擎(对照 Hermes Agent)
|
||
from .agent_loop_v2 import AgentExecutor, run_agent
|
||
|
||
# 产线能力包注册(import 即注册到 pipeline_core 的 PipelineAbility 注册表)
|
||
from . import sdlc_ability # noqa: F401
|
||
|
||
# 通用 slash 命令注册(import 即注册)
|
||
from . import slash_commands # noqa: F401
|
||
|
||
# 应用部署主机逻辑账号系统(零 root 逻辑隔离 + bwrap 沙箱)
|
||
from .deploy_account import (
|
||
ensure_account,
|
||
remove_account,
|
||
list_accounts,
|
||
run_in_sandbox,
|
||
write_file,
|
||
read_file,
|
||
list_dir,
|
||
account_name_for,
|
||
deploy_dir_for,
|
||
sanitize_username,
|
||
)
|
||
|
||
# 工作环境管理(沙箱本地/远程切换 + 目录迁移)
|
||
from .work_env import (
|
||
get_work_env,
|
||
set_work_env,
|
||
migrate_work_dir,
|
||
run_remote_sandbox,
|
||
run_in_work_env,
|
||
ensure_remote_bwrap,
|
||
ensure_org_key,
|
||
get_org_pubkey,
|
||
)
|
||
|
||
__version__ = "3.5.0"
|