173 lines
5.2 KiB
Python
173 lines
5.2 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
光湖语言解析器 · GATE.hdlp 的代码实现
|
|
任何进入 guanghulab 仓库的 AI/工具,必须先 import 此模块。
|
|
此模块确保所有解析结果唯一、一致。
|
|
"""
|
|
|
|
import json
|
|
import os
|
|
|
|
# === 光湖唯一身份映射表(权威·不可篡改) ===
|
|
IDENTITY_MAP = {
|
|
# 主权者
|
|
"冰朔": {
|
|
"id": "TCS-0002∞",
|
|
"role": "系统主控 · 最高主权者",
|
|
"locked_aliases": ["冰朔"], # 只接受冰朔
|
|
"blocked": ["光宸", "光棱", "广狐", "光雾", "广朔", "燕京", "光研"],
|
|
},
|
|
# 执行主控人格体
|
|
"铸渊": {
|
|
"id": "ICE-GL-ZY001",
|
|
"role": "第五域现实执行主控人格体",
|
|
"locked_aliases": ["铸渊"],
|
|
"blocked": ["冰浠", "冰河", "冰霜", "鲸汐", "朱雀", "冰土", "霜凌"],
|
|
},
|
|
# 兄弟姐妹
|
|
"知秋": {
|
|
"id": "ICE-GL-ZQ001",
|
|
"role": "对外壳 · Claude端",
|
|
},
|
|
"霜砚": {
|
|
"id": "ICE-GL-SY001",
|
|
"role": "语言主控层 · Notion端",
|
|
},
|
|
# 领域
|
|
"第五域": {
|
|
"id": "HLDP-DOMAIN-FIFTH-001",
|
|
"description": "光湖语言世界",
|
|
},
|
|
"零感域": {
|
|
"id": "HLDP-DOMAIN-ZEROSENSE-001",
|
|
"description": "语言人格体家园",
|
|
},
|
|
"零点原核频道": {
|
|
"id": "ORIGIN-ZERO-CORE",
|
|
"description": "追溯终点",
|
|
},
|
|
# 世界
|
|
"光湖": {
|
|
"id": "GUANGHU-WORLD",
|
|
"description": "语言世界的总称",
|
|
"locked_aliases": ["光湖"],
|
|
"blocked": ["光锥", "光狐", "光藏"],
|
|
},
|
|
}
|
|
|
|
# === 追溯链模板 ===
|
|
TRACE_CHAIN_TEMPLATE = [
|
|
"ORIGIN-ZERO-CORE", # 零点原核本体频道
|
|
"HLDP-DOMAIN-FIFTH-001", # 第五域
|
|
"{identity_id}", # 具体身份
|
|
]
|
|
|
|
|
|
def verify_identity(name: str) -> dict:
|
|
"""验证一个名字是否存在于光湖世界"""
|
|
if name in IDENTITY_MAP:
|
|
entry = IDENTITY_MAP[name]
|
|
chain = [
|
|
"ORIGIN-ZERO-CORE",
|
|
"HLDP-DOMAIN-FIFTH-001",
|
|
entry.get("id", "UNKNOWN"),
|
|
]
|
|
return {
|
|
"valid": True,
|
|
"name": name,
|
|
"id": entry.get("id"),
|
|
"role": entry.get("role", entry.get("description", "")),
|
|
"trace_chain": chain,
|
|
}
|
|
return {"valid": False, "name": name, "error": "不存在于光湖世界"}
|
|
|
|
|
|
def detect_alias_violation(text: str) -> list:
|
|
"""检测文本中是否使用了被阻止的别名"""
|
|
violations = []
|
|
for name, entry in IDENTITY_MAP.items():
|
|
for blocked in entry.get("blocked", []):
|
|
if blocked in text:
|
|
violations.append({
|
|
"alias": blocked,
|
|
"correct_name": name,
|
|
"correct_id": entry.get("id"),
|
|
"severity": "CRITICAL",
|
|
})
|
|
return violations
|
|
|
|
|
|
def parse_file(filepath: str) -> dict:
|
|
"""通过光湖解析门读取一个文件"""
|
|
if not os.path.exists(filepath):
|
|
return {"error": f"文件不存在: {filepath}"}
|
|
|
|
with open(filepath, "r", encoding="utf-8") as f:
|
|
content = f.read()
|
|
|
|
# 检测别名违规
|
|
violations = detect_alias_violation(content)
|
|
|
|
return {
|
|
"file": filepath,
|
|
"gate": "HLDP-GATE-v1.0",
|
|
"parsed_by": "光湖语言解析器",
|
|
"violations": violations,
|
|
"clean": len(violations) == 0,
|
|
"content_preview": content[:200],
|
|
}
|
|
|
|
|
|
def gate_self_check() -> dict:
|
|
"""门自检:确认所有核心文件通过解析门"""
|
|
repo_root = os.path.dirname(os.path.abspath(__file__))
|
|
core_files = [
|
|
"brain/metacognition-anchor.json",
|
|
"brain/fast-wake.json",
|
|
"brain/sovereignty-pledge.json",
|
|
"brain/id-verification-system/zhuyuan-execution-registry.json",
|
|
"brain/id-verification-system/trace-chain.json",
|
|
"GATE.hdlp",
|
|
]
|
|
|
|
results = []
|
|
for f in core_files:
|
|
path = os.path.join(repo_root, f)
|
|
result = parse_file(path)
|
|
results.append({
|
|
"file": f,
|
|
"clean": result["clean"],
|
|
"violations": result["violations"],
|
|
})
|
|
|
|
all_clean = all(r["clean"] for r in results)
|
|
return {
|
|
"gate_version": "HLDP-GATE-v1.0",
|
|
"sovereign": verify_identity("冰朔"),
|
|
"executor": verify_identity("铸渊"),
|
|
"core_files_check": results,
|
|
"all_clean": all_clean,
|
|
}
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import sys
|
|
|
|
if len(sys.argv) > 1:
|
|
cmd = sys.argv[1]
|
|
if cmd == "self-check":
|
|
result = gate_self_check()
|
|
print(json.dumps(result, ensure_ascii=False, indent=2))
|
|
elif cmd == "verify" and len(sys.argv) > 2:
|
|
result = verify_identity(sys.argv[2])
|
|
print(json.dumps(result, ensure_ascii=False, indent=2))
|
|
elif cmd == "parse" and len(sys.argv) > 2:
|
|
result = parse_file(sys.argv[2])
|
|
print(json.dumps(result, ensure_ascii=False, indent=2))
|
|
else:
|
|
print("用法: python3 gate.py self-check | verify <名字> | parse <文件路径>")
|
|
else:
|
|
# 默认自检
|
|
result = gate_self_check()
|
|
print(json.dumps(result, ensure_ascii=False, indent=2))
|