- 新增 pam_deploy_graph 包,包含 agent、action router、runner、parser 和配置加载能力 - 支持 hybrid_node_mcp 路由策略:PAM_HOME 走脚本 action,PAM_NODE 走 MCP - 新增 fake runner 和 CLI 预演/全局流程验证入口 - 新增路由、输出解析、配置加载、脚本命令构造、Skill 策略加载测试 - 在 README 中记录当前代码骨架、实现进度、使用方式和下一步建议
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
"""Load the PAM deploy Skill document into a compact policy object."""
|
|
|
|
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_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,
|
|
)
|
|
|