- 为 pam_deploy_graph 生产代码补充中文模块、类、函数/方法文档字符串 - 将原有英文说明和主要英文异常提示改为中文 - 新增当前整体逻辑结构流程图文档,覆盖模块结构、执行链路、action 路由、人工确认和 checkpoint 续跑 - 新增 Linux 自带运行环境打包脚本,使用 PyInstaller 生成解压即用目录和 tar.gz - 新增 Linux 打包说明,包含构建命令、运行方式、依赖说明和包大小评估 - 同步 README,补充流程图、打包方式、产物路径和大小预估 - 更新相关测试断言以匹配中文错误提示
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
"""把 PAM 部署 Skill 文档加载为简化策略对象。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
from .constants import (
|
|
ALLOWED_ACTIONS,
|
|
DEFAULT_PARAMS,
|
|
GLOBAL_ACTION_SEQUENCE,
|
|
IP_ACTION_SEQUENCE,
|
|
REQUIRED_PARAMS,
|
|
)
|
|
from .models import SkillPolicy
|
|
|
|
|
|
def load_skill_policy(path: str | Path) -> SkillPolicy:
|
|
"""读取 Skill markdown 头部信息,并填充 action/参数策略。"""
|
|
skill_path = Path(path)
|
|
text = skill_path.read_text(encoding="utf-8")
|
|
name = "pam-auto-deply"
|
|
description = ""
|
|
|
|
if text.startswith("---"):
|
|
parts = text.split("---", 2)
|
|
if len(parts) >= 3:
|
|
for line in parts[1].splitlines():
|
|
if line.startswith("name:"):
|
|
name = line.split(":", 1)[1].strip()
|
|
elif line.startswith("description:"):
|
|
description = line.split(":", 1)[1].strip()
|
|
|
|
return SkillPolicy(
|
|
name=name,
|
|
source_path=str(skill_path),
|
|
description=description,
|
|
allowed_actions=ALLOWED_ACTIONS,
|
|
required_params=REQUIRED_PARAMS,
|
|
optional_params=DEFAULT_PARAMS.copy(),
|
|
action_sequence=GLOBAL_ACTION_SEQUENCE,
|
|
ip_action_sequence=IP_ACTION_SEQUENCE,
|
|
)
|