feat: sap-cli skill v2.1.0 — self-contained distributable package

- assets/: sap-cli source (v2.1.0, 26 commands, 16 object types)
- references/: tool constraints + error handling (self-contained)
- scripts/setup.py: one-click install/config/verify
- SKILL.md: full command reference + dual-platform install guide
- VERSION: 2.1.0

Built from D:/Codespace/sap-cli via scripts/pack_skill.py
This commit is contained in:
2026-06-13 20:52:24 +08:00
commit 1e39b6da88
49 changed files with 7172 additions and 0 deletions
+77
View File
@@ -0,0 +1,77 @@
from __future__ import annotations
class SapCliError(Exception):
"""基础异常"""
class ConfigError(SapCliError):
"""配置错误(缺失参数、文件不存在等)"""
class LoginError(SapCliError):
"""登录失败"""
class ObjectNotFoundError(SapCliError):
"""对象不存在"""
def __init__(self, name: str, obj_type: str):
self.name = name
self.obj_type = obj_type
super().__init__(f"{obj_type} 对象不存在: {name}")
class ObjectAlreadyExistsError(SapCliError):
"""对象已存在"""
def __init__(self, name: str, obj_type: str):
self.name = name
self.obj_type = obj_type
super().__init__(f"{obj_type} 对象已存在: {name}")
class LockError(SapCliError):
"""锁定失败"""
def __init__(self, message: str, obj_uri: str = ""):
self.obj_uri = obj_uri
super().__init__(message)
class ActivationError(SapCliError):
"""激活失败"""
def __init__(self, message: str, errors: list[dict] | None = None):
self.errors = errors or []
super().__init__(message)
class SyntaxCheckError(SapCliError):
"""语法检查未通过"""
def __init__(self, message: str, errors: list[dict] | None = None, warnings: list[dict] | None = None):
self.errors = errors or []
self.warnings = warnings or []
super().__init__(message)
class DeleteError(SapCliError):
"""删除失败"""
class CreateError(SapCliError):
"""创建失败"""
class InvalidNameError(SapCliError):
"""对象名称格式错误"""
class CyclicDependencyError(SapCliError):
"""循环依赖(拓扑排序检测)"""
def __init__(self, cycle_members: list[str]):
self.cycle_members = cycle_members
members = "".join(cycle_members)
super().__init__(f"检测到循环依赖: {members}")