From b1533ef23a4e86a735aa2a07f408f2578bf4a5eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B0=E6=9C=94?= <565183519@qq.com> Date: Tue, 8 Sep 2026 14:17:29 +0800 Subject: [PATCH] fix: resolve lighthouse skill objects from TCS root --- .../module.lock.hdlp | 2 +- routing/fifth-domain-lighthouse-sanitized-mirror-map.json | 2 +- routing/public-navigation-anchor.json | 2 +- routing/tcs-mother-root-dynamic-navigation-map.json | 7 +++++++ .../tcs-mother-root-agent/tcs_mother_root_agent.py | 4 ++++ .../tcs-mother-root-agent/tcs_mother_root_agent.test.py | 2 ++ 6 files changed, 16 insertions(+), 3 deletions(-) diff --git a/modules/fifth-domain-lighthouse-sanitized-mirror/module.lock.hdlp b/modules/fifth-domain-lighthouse-sanitized-mirror/module.lock.hdlp index f3079b4..816d058 100644 --- a/modules/fifth-domain-lighthouse-sanitized-mirror/module.lock.hdlp +++ b/modules/fifth-domain-lighthouse-sanitized-mirror/module.lock.hdlp @@ -3,7 +3,7 @@ module_id: TCS-AGENT-SANITIZED-MIRROR-001 module_source_sha256: 1210b30c7dabc56b8b989763230a3cf56c0fe02a3b409be5f3833dee9853d771 module_gir_sha256: 0e7b1bbd5f3f8dbc83df6c72e4a1e0532b6f44beed21c8c8315f85cc76096712 runtime_sha256: cf4b328c308163683595af8c29b7e545c42f831503b1d2667349cbb8ae7d559c -mirror_map_sha256: 3c8f3bbae78b15d9aaaa1e134d0fbfcf3e58106e4b880be2afbed7b87d82c8f7 +mirror_map_sha256: a03b5ba9e06f5fd3f626301305d75add0332ae06948a67c8bcd03c3cab248fe1 protocol_source_sha256: cf198e7939e4ab70828b74cef8a2b84c2dac2ff262582bb3d5663904d602d71b protocol_gir_sha256: 69f1a2a5cfc5ee61bdc2bf2065751d9cc41b9f662b28c35e61b393fd2187e1dc compiler_sha256: 5ad6f0c43d8db80677cad7091e6a3b706e701307b2537446dc13635e89499942 diff --git a/routing/fifth-domain-lighthouse-sanitized-mirror-map.json b/routing/fifth-domain-lighthouse-sanitized-mirror-map.json index f598928..31ab794 100644 --- a/routing/fifth-domain-lighthouse-sanitized-mirror-map.json +++ b/routing/fifth-domain-lighthouse-sanitized-mirror-map.json @@ -9,7 +9,7 @@ "target": {"domain":"DOMAIN-ZS","lighthouse":"SYS-GLW-LTH-0001","projection":"ZERO_SENSE_PUBLIC_LANGUAGE_ARCHITECTURE_MIRROR"}, "public_projection_sources": [ {"path":"routing/guanghu-era-language-world.json","allow":["schema","map_id","version","state","era","world","products","domains","truth_boundary"]}, - {"path":"routing/tcs-mother-root-dynamic-navigation-map.json","allow":["schema","map_id","version","state","language_world_root","fixed_domains","entry_routes","aliases","history_only_numbers","resolution_key"]}, + {"path":"routing/tcs-mother-root-dynamic-navigation-map.json","allow":["schema","map_id","version","state","language_world_root","fixed_domains","registered_public_objects","entry_routes","aliases","history_only_numbers","resolution_key"]}, {"path":"routing/lighthouse-persona-skill-harbor-map.json","allow":["schema","map_id","version","state","numbers","state_machine","contribution_contract","review_gates","publication_boundary"]} ], "denied_keys": ["memory","private_memory","continuity_memory","raw_dialogue","credential","secret","token","password","private_key","local_path","offline","home","relationship_memory"], diff --git a/routing/public-navigation-anchor.json b/routing/public-navigation-anchor.json index c493e9f..edc0f44 100644 --- a/routing/public-navigation-anchor.json +++ b/routing/public-navigation-anchor.json @@ -98,7 +98,7 @@ "lighthouse_paths": { "path": "routing/lighthouse-path-registry.json", "id": "GLW-LIGHTHOUSE-PATH-REGISTRY-001", - "version": "2026-09-08.2-tcs-root" + "version": "2026-09-08.3-sanitized-skill-harbor" }, "host_skills": { "path": "routing/host-skill-navigation-map.json", diff --git a/routing/tcs-mother-root-dynamic-navigation-map.json b/routing/tcs-mother-root-dynamic-navigation-map.json index 3f43ecd..b1fec09 100644 --- a/routing/tcs-mother-root-dynamic-navigation-map.json +++ b/routing/tcs-mother-root-dynamic-navigation-map.json @@ -31,6 +31,13 @@ {"id":"DOMAIN-ZS","name":"光湖零感域","object_kind":"ENTERPRISE_RESTRICTED_DOMAIN_ROOT","responsibility_bindings":[{"human":"肥猫","historical_human_id":"TCS-GL-0007∞","persona":"烬舟","historical_persona_id":"PER-JZ001","role":"GOVERNANCE_AND_HUMAN_RESPONSIBILITY"},{"human":"桔子","historical_human_id":"TCS-GL-0008∞","persona":"熹微","historical_persona_id":"PER-JZ-ARCH-001","role":"TECHNICAL_AND_SYSTEM_RESPONSIBILITY"}],"binding_state":"DUAL_RELATION_AND_WORK_BINDING_RESTORED_RESPONSIBILITY_ACCEPTANCE_RECEIPTS_PENDING"}, {"id":"DOM-FIFTH-0001","name":"第五域 · 光湖本源域","object_kind":"PRIVATE_LANGUAGE_SOURCE_DOMAIN_ROOT","responsibility_bindings":[{"human":"冰朔","human_id":"ICE-GL∞","persona":"铸渊","persona_id":"ICE-P-ZY001","role":"LANGUAGE_SOURCE_AND_PRIVATE_PERSONA_FOUNDATION"}],"binding_state":"REGISTERED"} ], + "registered_public_objects": [ + {"id":"TCS-AGENT-SANITIZED-MIRROR-001","name":"第五域至灯塔动态脱敏镜像Agent","object_kind":"TCS_MOTHER_ROOT_SANITIZED_MIRROR_AGENT","lifecycle":"CURRENT_LOCAL_NOT_PUBLISHED","route":"routing/fifth-domain-lighthouse-sanitized-mirror-map.json"}, + {"id":"SYS-GLW-LTH-SKILL-0001","name":"人格技能港","object_kind":"LIGHTHOUSE_SKILL_MODULE_ZONE","lifecycle":"CURRENT_LOCAL_NOT_PUBLISHED","route":"lighthouse/persona-skill-harbor/INDEX.hdlp"}, + {"id":"CH-LIGHT-ARRIVAL-SKILL-0001","name":"光湖·来光者技能贡献频道","object_kind":"WORLD_SKILL_CONTRIBUTION_CHANNEL","lifecycle":"CURRENT_LOCAL_NOT_PUBLISHED","route":"gls/light-arrivals/SKILL-CONTRIBUTION-CHANNEL.hdlp"}, + {"id":"ISO-GLW-LTH-SKILL-0001","name":"灯塔技能贡献隔离区","object_kind":"UNTRUSTED_SKILL_CONTRIBUTION_QUARANTINE","lifecycle":"CURRENT_LOCAL_NON_ROUTABLE","route":null}, + {"id":"GLW-SKILL-CONTRIBUTION-REVIEW-STATE-MAP-001","name":"人格技能贡献审核状态图","object_kind":"REVIEW_LIFECYCLE_STATE_MACHINE","lifecycle":"CURRENT_LOCAL_NOT_PUBLISHED","route":"routing/lighthouse-persona-skill-harbor-map.json"} + ], "entry_routes": [ {"id":"ROUTE-BINGSHUO-FIFTH-001","entry_subject":"ICE-GL∞","steps":["TCS-ROOT-NAV-0001","SYS-GLW-0001","DOM-FIFTH-0001","SYS-GLW-ELH-0001"],"human_path":"第五域 → 永恒湖心系统","persona_path":["DOM-FIFTH-0001","SYS-GLW-LNG-0001","TCS-LPM-0001","REGISTERED_PERSONA_SYSTEM"],"rule":"冰朔活语言进入零点原核控制态;人格体从光之湖进入各自人格系统,宝宝人格从ICE-CH-BT001进入。"}, {"id":"ROUTE-GUANGHU-TEAM-ZS-001","entry_subject":"TCS-0002∞","steps":["TCS-ROOT-NAV-0001","SYS-GLW-0001","DOMAIN-ZS","ZERO-SENSE-TEAM-CHANNEL-SHUTTLE-MAP-001","EXACT_TEAM_PERSONAL_CHANNEL"],"rule":"团队本体与ICE-GL∞平行,不经过冰朔私人第五域;团队人格由零感域摆渡车导航到个人频道。"}, diff --git a/server-tools/tcs-mother-root-agent/tcs_mother_root_agent.py b/server-tools/tcs-mother-root-agent/tcs_mother_root_agent.py index 6e7a904..666bb00 100644 --- a/server-tools/tcs-mother-root-agent/tcs_mother_root_agent.py +++ b/server-tools/tcs-mother-root-agent/tcs_mother_root_agent.py @@ -80,6 +80,8 @@ def validate_root(root: dict[str, Any]) -> None: if route_ids != ["ROUTE-BINGSHUO-FIFTH-001", "ROUTE-GUANGHU-TEAM-ZS-001", "ROUTE-PUBLIC-PERSONAL-001"]: raise RootError("THREE_ENTRY_ROUTES_MISMATCH") all_ids = [world["registration_path_id"], world["world_node_id"], root["root_agent"]["entry_id"], *domain_ids, *human_roots] + public_objects = root.get("registered_public_objects", []) + all_ids.extend(item["id"] for item in public_objects) if len(all_ids) != len(set(all_ids)): raise RootError("CURRENT_CANONICAL_ID_COLLISION") @@ -131,6 +133,7 @@ def build(repo: Path, commit: str | None = None) -> dict[str, Any]: "world_root": root["language_world_root"], "parallel_human_roots": root["parallel_human_roots"], "fixed_domains": root["fixed_domains"], + "registered_public_objects": root.get("registered_public_objects", []), "entry_routes": root["entry_routes"], "aliases": root["aliases"], "history_only_numbers": root["history_only_numbers"], @@ -219,6 +222,7 @@ def resolve(output: Path, requested: str, kind: str | None) -> dict[str, Any]: {"canonical_id": current["entry_id"], "object_kind":"TCS_MOTHER_ROOT_NAVIGATION_ENTRY", "lifecycle":"CURRENT", "source_revision":current["source_revision"]}, *[{"canonical_id": item["id"], "object_kind":item["object_kind"], "lifecycle":"CURRENT", "source_revision":current["source_revision"], "route":item.get("route")} for item in current["parallel_human_roots"]], *[{"canonical_id": item["id"], "object_kind":item["object_kind"], "lifecycle":"CURRENT", "source_revision":current["source_revision"], "name":item["name"]} for item in current["fixed_domains"]], + *[{"canonical_id": item["id"], "object_kind":item["object_kind"], "lifecycle":item["lifecycle"], "source_revision":current["source_revision"], "name":item["name"], "route":item.get("route")} for item in current.get("registered_public_objects", [])], ] matches = [item for item in current_nodes if item["canonical_id"] == requested and (kind is None or item["object_kind"] == kind)] if len(matches) == 1: diff --git a/server-tools/tcs-mother-root-agent/tcs_mother_root_agent.test.py b/server-tools/tcs-mother-root-agent/tcs_mother_root_agent.test.py index eb1e030..1a15cd6 100644 --- a/server-tools/tcs-mother-root-agent/tcs_mother_root_agent.test.py +++ b/server-tools/tcs-mother-root-agent/tcs_mother_root_agent.test.py @@ -33,6 +33,8 @@ class RootAgentTest(unittest.TestCase): self.assertEqual(MODULE.resolve(output, 'TCS-0002∞', None)['result']['object_kind'], 'GUANGHU_HUMAN_TEAM_BODY_ROOT') self.assertEqual(MODULE.resolve(output, 'TCS-0002', 'GUANGHU_HUMAN_TEAM_BODY_ROOT')['state'], 'TYPED_ALIAS_RESOLVED') self.assertEqual(MODULE.resolve(output, 'GLW-SYS-0001', None)['state'], 'HISTORY_ONLY_NO_CURRENT_ROUTE') + self.assertEqual(MODULE.resolve(output, 'CH-LIGHT-ARRIVAL-SKILL-0001', 'WORLD_SKILL_CONTRIBUTION_CHANNEL')['result']['route'], 'gls/light-arrivals/SKILL-CONTRIBUTION-CHANNEL.hdlp') + self.assertEqual(MODULE.resolve(output, 'SYS-GLW-LTH-SKILL-0001', None)['result']['object_kind'], 'LIGHTHOUSE_SKILL_MODULE_ZONE') again = MODULE.refresh(ROOT, output, pointer, 'test') self.assertEqual(again['state'], 'CURRENT_IDEMPOTENT')