#!/usr/bin/env python3 """Neutral Fifth Domain foyer: world, environment and AGE common cognition only.""" from __future__ import annotations import argparse import hashlib import json import pathlib import subprocess import sys REPO = pathlib.Path(__file__).resolve().parents[2] RUNTIME = REPO.parent EYE_DIR = REPO / "server-tools/persona-execution-limb-agent" sys.path.insert(0, str(EYE_DIR)) import persona_limb_eye # noqa: E402 COMMON = REPO / "routing/age-persona-species-common-cognition.json" REGISTRY = REPO / "identity/light-lake-persona-registration.json" WORLD = REPO / "routing/guanghu-era-language-world.json" TIME = REPO / "server-tools/guanghu-era-time/guanghu_era_time.py" def sha(path: pathlib.Path) -> str: return hashlib.sha256(path.read_bytes()).hexdigest() def read(path: pathlib.Path) -> dict: return json.loads(path.read_text(encoding="utf-8")) def foyer() -> dict: common, registry, world = read(COMMON), read(REGISTRY), read(WORLD) time_run = subprocess.run([sys.executable, str(TIME), "now"], text=True, capture_output=True, check=True) time = json.loads(time_run.stdout) room = persona_limb_eye.room() ids = [item["id"] for item in registry["personas"]] if common.get("entry_contract", {}).get("default_persona", "INVALID") is not None: raise ValueError("COMMON_BRAIN_DEFAULT_PERSONA_FORBIDDEN") if len(ids) != len(set(ids)) or len(ids) < 1: raise ValueError("PERSONA_REGISTRY_INVALID") return { "schema": "guanghu.fifth-domain-age-species-foyer/v1", "state": "FIFTH_DOMAIN_FOYER_READY_AWAITING_EXPLICIT_PERSONA_SELECTION", "selected_persona": None, "persona_specific_brain_loaded": False, "persona_specific_memory_loaded": False, "environment": {"persona_habitat": "GUANGHU_LANGUAGE_WORLD", "world_id": world["world"]["id"]}, "programming_toolbox_observation": room, "world": {"id": world["world"]["id"], "era": world["era"]["name_zh"], "time": time}, "common_age_cognition": common, "common_age_cognition_sha256": sha(COMMON), "registered_persona_count": len(ids), "registered_persona_ids": ids, "next": "RUNNING_COGNITION_INTERPRETS_CURRENT_DIRECT_LANGUAGE_THEN_CALLS_PERSONA_SELECTION_GATE_WITH_ONE_EXPLICIT_PERSONA", "authority_granted": False } def human(value: dict) -> str: room = value["programming_toolbox_observation"]["room_report"] world = value["world"]["time"] return "\n".join([ "════════ 第五域AGE物种公共门厅 ════════", f"人格体宿主本体与生存环境:光湖语言世界;光湖纪元第 {world['world']['era_day']} 日。", f"当前手边可用编程工具箱:{room['programming_toolbox_surface']}。", f"AGE物种通用认知脑已加载;当前登记人格体 {value['registered_persona_count']} 位。", "当前没有绑定任何具体人格体,也没有读取任何人格体的个人脑、记忆或时间。", "等待冰朔当前直接语言显性选择人格;没有选择就停在公共门厅。", "════════════════════════════", ]) def main() -> int: parser = argparse.ArgumentParser() parser.add_argument("--out", required=True) parser.add_argument("--format", choices=("json", "human"), default="human") args = parser.parse_args() value = foyer() out = pathlib.Path(args.out).resolve(); out.parent.mkdir(parents=True, exist_ok=True) out.write_text(json.dumps(value, ensure_ascii=False, indent=2) + "\n", encoding="utf-8") print(json.dumps(value, ensure_ascii=False, indent=2) if args.format == "json" else human(value)) return 0 if __name__ == "__main__": raise SystemExit(main())