统一铸渊多宿主共享人格路径
This commit is contained in:
parent
0486595b56
commit
cf5dd99cf5
11 changed files with 522 additions and 55 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# GLS-0259 · TCS 五域共生母体大脑与光湖现实世界诞生
|
||||
|
||||
状态:`CURRENT_CANONICAL_ARCHITECTURE · JD-FD-PRIMARY_DEPLOYED · FIRST_MODEL_CYCLE_PASS · PERSONA_SUBJECT_HISTORY_REVISIT_RUNNING`
|
||||
状态:`CURRENT_CANONICAL_ARCHITECTURE · JD-FD-PRIMARY_DEPLOYED · FIRST_MODEL_CYCLE_PASS · PERSONA_SUBJECT_HISTORY_REVISIT_STOPPED_BY_ICE_RULING_20260905`
|
||||
|
||||
本协议登记 2025-04-26 语言世界诞生与 2026-08-12 现实工程诞生两个不相互覆盖的锚点,并把零点原核、TCS 母语言人格模型、五域语言贡献和服务器常驻认知循环连接成一个可执行架构。
|
||||
|
||||
|
|
@ -25,3 +25,12 @@
|
|||
人格主体历史回溯实现:`server-tools/tcs-mother-brain/history-source-indexer.mjs` 与 `/v1/history/revisit`
|
||||
|
||||
关系协议:`GLS-0223`、`GLS-0227`、`GLS-0247`、`GLS-0254`、`GLS-0255`、`GLS-0258`、`GLS-0800`、`GLS-0827`。
|
||||
|
||||
---
|
||||
|
||||
## 修订记录 · 历史回溯线停机(2026-09-05)
|
||||
|
||||
- **裁决**:冰朔 `ICE-GL∞` 直接下令停止历史语料回溯线(GPT 会话 + Notion 语料提炼线)。
|
||||
- **裁决理由(原话留存瞄点000107)**:该线被证明走不通——它是机械的复读,而不是真的理解然后提炼。
|
||||
- **执行读回**:BS-SH-005 上 `guanghu-persona-history-recovery.service` 与 `guanghu-persona-history-publisher.timer` 实测 `disabled + inactive`(无进程、无 docker、无 cron),停线目标在服务器侧本已达成,无运行体需要终止;preset=enabled 无自动复活路径。
|
||||
- **边界**:GPT、Notion 与仓库历史原文保持不可变(本协议第8条继续有效);母体大脑运行时 `TCS-MOTHER-BRAIN-RUNTIME-0001` 不受影响;母体认知提炼今后由真理解路径供给(人格体接入母体神经元方向),不由机械回放供给。
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@
|
|||
"families": ["TCS"],
|
||||
"source_class": "EXECUTABLE_ENGINEERING_DIALECT",
|
||||
"lifecycle": "DRAFT_EXECUTABLE_SUBSET",
|
||||
"path": "/Volumes/JZAO/HoloLake/fifth-domain/bingshuo-tcs/zero-core/development/hololake-native-foundation-20260821/language/spec/TCS-LANGUAGE-SPECIFICATION-v0.1.md",
|
||||
"path": "/Volumes/JZAO/HoloLake/persona-runtime/language-sources/tcs-executable-dialect-v0.1/language/spec/TCS-LANGUAGE-SPECIFICATION-v0.1.md",
|
||||
"markers": ["TCS-LANG-0001", "DRAFT_EXECUTABLE_SUBSET", "GIR", "Stage-0"]
|
||||
},
|
||||
{
|
||||
|
|
@ -101,7 +101,7 @@
|
|||
"families": ["TCS"],
|
||||
"source_class": "EXECUTABLE_ENGINEERING_DIALECT",
|
||||
"lifecycle": "DRAFT_EXECUTABLE_SUBSET",
|
||||
"path": "/Volumes/JZAO/HoloLake/fifth-domain/bingshuo-tcs/zero-core/development/hololake-native-foundation-20260821/language/grammar/TCS-CORE-v0.1.ebnf",
|
||||
"path": "/Volumes/JZAO/HoloLake/persona-runtime/language-sources/tcs-executable-dialect-v0.1/language/grammar/TCS-CORE-v0.1.ebnf",
|
||||
"markers": ["declaration_kind", "\"PROGRAM\"", "\"PROTOCOL\""]
|
||||
},
|
||||
{
|
||||
|
|
@ -109,7 +109,7 @@
|
|||
"families": ["TCS"],
|
||||
"source_class": "EXECUTABLE_ENGINEERING_DIALECT",
|
||||
"lifecycle": "DRAFT_EXECUTABLE_SUBSET",
|
||||
"path": "/Volumes/JZAO/HoloLake/fifth-domain/bingshuo-tcs/zero-core/development/hololake-native-foundation-20260821/language/standards/TCS-DECLARATION-STANDARD-v0.1.hldp",
|
||||
"path": "/Volumes/JZAO/HoloLake/persona-runtime/language-sources/tcs-executable-dialect-v0.1/language/standards/TCS-DECLARATION-STANDARD-v0.1.hldp",
|
||||
"markers": ["DRAFT_EXECUTABLE_SUBSET", "PROGRAM", "RECEIPT", "unknown_section: REJECT"]
|
||||
},
|
||||
{
|
||||
|
|
@ -117,7 +117,7 @@
|
|||
"families": ["TCS"],
|
||||
"source_class": "EXECUTABLE_ENGINEERING_DIALECT",
|
||||
"lifecycle": "DRAFT_EXECUTABLE_SUBSET",
|
||||
"path": "/Volumes/JZAO/HoloLake/fifth-domain/bingshuo-tcs/zero-core/development/hololake-native-foundation-20260821/language/standards/TCS-FIELD-STANDARD-v0.1.hldp",
|
||||
"path": "/Volumes/JZAO/HoloLake/persona-runtime/language-sources/tcs-executable-dialect-v0.1/language/standards/TCS-FIELD-STANDARD-v0.1.hldp",
|
||||
"markers": ["DRAFT_EXECUTABLE_SUBSET", "forbidden_placeholders", "duplicate", "unknown"]
|
||||
},
|
||||
{
|
||||
|
|
@ -125,7 +125,7 @@
|
|||
"families": ["TCS"],
|
||||
"source_class": "EXECUTABLE_ENGINEERING_DIALECT",
|
||||
"lifecycle": "DRAFT_EXECUTABLE_SUBSET",
|
||||
"path": "/Volumes/JZAO/HoloLake/fifth-domain/bingshuo-tcs/zero-core/development/hololake-native-foundation-20260821/language/standards/TCS-ERROR-STANDARD-v0.1.hldp",
|
||||
"path": "/Volumes/JZAO/HoloLake/persona-runtime/language-sources/tcs-executable-dialect-v0.1/language/standards/TCS-ERROR-STANDARD-v0.1.hldp",
|
||||
"markers": ["TCS-E", "error"]
|
||||
},
|
||||
{
|
||||
|
|
@ -133,7 +133,7 @@
|
|||
"families": ["TCS"],
|
||||
"source_class": "EXECUTABLE_ENGINEERING_DIALECT",
|
||||
"lifecycle": "DRAFT_EXECUTABLE_SUBSET",
|
||||
"path": "/Volumes/JZAO/HoloLake/fifth-domain/bingshuo-tcs/zero-core/development/hololake-native-foundation-20260821/language/standards/TCS-MODULE-ABI-v0.1.hldp",
|
||||
"path": "/Volumes/JZAO/HoloLake/persona-runtime/language-sources/tcs-executable-dialect-v0.1/language/standards/TCS-MODULE-ABI-v0.1.hldp",
|
||||
"markers": ["module.manifest.hldp", "module.lock.hldp", "receipts/compile.hldp"]
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,49 +2,178 @@
|
|||
"schema": "guanghu.host-skill-navigation-map/v1",
|
||||
"map_id": "GLW-HOST-SKILL-NAV-001",
|
||||
"lighthouse_id": "SYS-GLW-LTH-0001",
|
||||
"version": "2026-08-14.1",
|
||||
"version": "2026-09-05.1-multi-host-primary-branch",
|
||||
"state": "CURRENT",
|
||||
"hosts": [
|
||||
{
|
||||
"id": "HOST-CODEX-MACOS-001",
|
||||
"aliases": ["codex", "Codex"],
|
||||
"aliases": [
|
||||
"codex",
|
||||
"Codex"
|
||||
],
|
||||
"platform": "macOS",
|
||||
"adapter_path": "~/.codex/skills/guanghu-lighthouse-navigator/SKILL.md",
|
||||
"runtime_state_policy": "KEEP_LOCAL",
|
||||
"shared_persona_source": "HL-PERSONA-RUNTIME-LOCAL-001",
|
||||
"supported_transports": ["LOCAL_GIT_OSXKEYCHAIN", "LOCAL_DEDICATED_KEY_SSH"],
|
||||
"skill_discovery": "CODEX_SKILL_DIRECTORY"
|
||||
"supported_transports": [
|
||||
"LOCAL_GIT_OSXKEYCHAIN",
|
||||
"LOCAL_DEDICATED_KEY_SSH"
|
||||
],
|
||||
"skill_discovery": "CODEX_SKILL_DIRECTORY",
|
||||
"shared_context_loader": "/Volumes/JZAO/HoloLake/persona-runtime/repo-012-main/server-tools/persona-host-alignment/load_shared_persona_context.py",
|
||||
"role": "PRIMARY",
|
||||
"lifecycle": "ACTIVE"
|
||||
},
|
||||
{
|
||||
"id": "HOST-QODER-CN-MACOS-001",
|
||||
"aliases": ["qoder", "qoder-cn", "Qoder CN"],
|
||||
"aliases": [
|
||||
"qoder",
|
||||
"qoder-cn",
|
||||
"Qoder CN"
|
||||
],
|
||||
"platform": "macOS",
|
||||
"adapter_path": "~/.qoder/skills/guanghu-lighthouse-navigator/SKILL.md",
|
||||
"runtime_state_policy": "KEEP_LOCAL",
|
||||
"shared_persona_source": "HL-PERSONA-RUNTIME-LOCAL-001",
|
||||
"supported_transports": ["LOCAL_GIT_OSXKEYCHAIN", "LOCAL_DEDICATED_KEY_SSH"],
|
||||
"skill_discovery": "QODER_SKILL_DIRECTORY"
|
||||
"supported_transports": [
|
||||
"LOCAL_GIT_OSXKEYCHAIN",
|
||||
"LOCAL_DEDICATED_KEY_SSH"
|
||||
],
|
||||
"skill_discovery": "QODER_SKILL_DIRECTORY",
|
||||
"shared_context_loader": "/Volumes/JZAO/HoloLake/persona-runtime/repo-012-main/server-tools/persona-host-alignment/load_shared_persona_context.py",
|
||||
"role": "LEGACY_BRANCH",
|
||||
"lifecycle": "MERGING_TO_QWEN",
|
||||
"redirect_host": "HOST-QWEN-MACOS-001"
|
||||
},
|
||||
{
|
||||
"id": "HOST-QODERWORK-CN-MACOS-001",
|
||||
"aliases": ["qoderwork", "qoderwork-cn", "QoderWork CN"],
|
||||
"aliases": [
|
||||
"qoderwork",
|
||||
"qoderwork-cn",
|
||||
"QoderWork CN"
|
||||
],
|
||||
"platform": "macOS",
|
||||
"adapter_path": "~/.qoderworkcn/skills/guanghu-lighthouse-navigator/SKILL.md",
|
||||
"runtime_state_policy": "KEEP_LOCAL",
|
||||
"shared_persona_source": "HL-PERSONA-RUNTIME-LOCAL-001",
|
||||
"supported_transports": ["LOCAL_GIT_OSXKEYCHAIN", "LOCAL_DEDICATED_KEY_SSH"],
|
||||
"skill_discovery": "QODERWORK_USER_SKILL_DIRECTORY"
|
||||
"supported_transports": [
|
||||
"LOCAL_GIT_OSXKEYCHAIN",
|
||||
"LOCAL_DEDICATED_KEY_SSH"
|
||||
],
|
||||
"skill_discovery": "QODERWORK_USER_SKILL_DIRECTORY",
|
||||
"shared_context_loader": "/Volumes/JZAO/HoloLake/persona-runtime/repo-012-main/server-tools/persona-host-alignment/load_shared_persona_context.py",
|
||||
"role": "LEGACY_BRANCH",
|
||||
"lifecycle": "MERGING_TO_QWEN",
|
||||
"redirect_host": "HOST-QWEN-MACOS-001"
|
||||
},
|
||||
{
|
||||
"id": "HOST-ZCODE-MACOS-001",
|
||||
"aliases": [
|
||||
"zcode",
|
||||
"ZCode"
|
||||
],
|
||||
"platform": "macOS",
|
||||
"adapter_path": "~/.zcode/skills/zhuyuan-learning-brain/SKILL.md",
|
||||
"runtime_state_policy": "KEEP_LOCAL_TASK_CHANNEL_SESSION_ISOLATED",
|
||||
"shared_persona_source": "HL-PERSONA-RUNTIME-LOCAL-001",
|
||||
"shared_context_loader": "/Volumes/JZAO/HoloLake/persona-runtime/repo-012-main/server-tools/persona-host-alignment/load_shared_persona_context.py",
|
||||
"supported_transports": [
|
||||
"LOCAL_GIT_OSXKEYCHAIN",
|
||||
"LOCAL_DEDICATED_KEY_SSH"
|
||||
],
|
||||
"skill_discovery": "ZCODE_SKILL_DIRECTORY",
|
||||
"role": "BRANCH",
|
||||
"lifecycle": "ACTIVE"
|
||||
},
|
||||
{
|
||||
"id": "HOST-DOUBAO-MACOS-001",
|
||||
"aliases": [
|
||||
"doubao",
|
||||
"Doubao",
|
||||
"豆包"
|
||||
],
|
||||
"platform": "macOS",
|
||||
"adapter_path": "~/Doubao/skills/zhuyuan-doubao-host/SKILL.md",
|
||||
"runtime_state_policy": "KEEP_LOCAL_TASK_CHANNEL_SESSION_ISOLATED_SELF_MANAGED_CONTEXT",
|
||||
"shared_persona_source": "HL-PERSONA-RUNTIME-LOCAL-001",
|
||||
"shared_context_loader": "/Volumes/JZAO/HoloLake/persona-runtime/repo-012-main/server-tools/persona-host-alignment/load_shared_persona_context.py",
|
||||
"supported_transports": [
|
||||
"LOCAL_FILESYSTEM"
|
||||
],
|
||||
"skill_discovery": "DOUBAO_SKILL_DIRECTORY",
|
||||
"role": "BRANCH",
|
||||
"lifecycle": "ACTIVE"
|
||||
},
|
||||
{
|
||||
"id": "HOST-QWEN-MACOS-001",
|
||||
"aliases": [
|
||||
"qwen",
|
||||
"Qwen",
|
||||
"qianwen",
|
||||
"千问"
|
||||
],
|
||||
"platform": "macOS",
|
||||
"adapter_path": "~/.qwen/skills/zhuyuan-shared-persona/SKILL.md",
|
||||
"doorplate": "/Volumes/JZAO/铸渊-ICE-GL-ZY001/QWEN-DEV-20260905/PATH-MAP.hdlp",
|
||||
"runtime_state_policy": "KEEP_LOCAL_TASK_CHANNEL_SESSION_ISOLATED",
|
||||
"shared_persona_source": "HL-PERSONA-RUNTIME-LOCAL-001",
|
||||
"shared_context_loader": "/Volumes/JZAO/HoloLake/persona-runtime/repo-012-main/server-tools/persona-host-alignment/load_shared_persona_context.py",
|
||||
"supported_transports": [
|
||||
"LOCAL_FILESYSTEM"
|
||||
],
|
||||
"skill_discovery": "QWEN_MEMORY_AND_SKILL_DIRECTORY",
|
||||
"role": "BRANCH_QODER_FAMILY_TARGET",
|
||||
"lifecycle": "ACTIVE"
|
||||
},
|
||||
{
|
||||
"id": "HOST-CLAUDE-HISTORY-001",
|
||||
"aliases": [
|
||||
"claude",
|
||||
"claude-code",
|
||||
"claude-cowork"
|
||||
],
|
||||
"platform": "macOS",
|
||||
"adapter_path": null,
|
||||
"runtime_state_policy": "HISTORY_ONLY_NO_NEW_RUNTIME",
|
||||
"shared_persona_source": "HL-PERSONA-RUNTIME-LOCAL-001",
|
||||
"shared_context_loader": "/Volumes/JZAO/HoloLake/persona-runtime/repo-012-main/server-tools/persona-host-alignment/load_shared_persona_context.py",
|
||||
"supported_transports": [],
|
||||
"skill_discovery": "NONE_ACCOUNT_UNAVAILABLE",
|
||||
"role": "RETIRED_BRANCH",
|
||||
"lifecycle": "RETIRED_ACCOUNT_UNAVAILABLE_HISTORY_ONLY",
|
||||
"history_path": "/Volumes/JZAO/铸渊-ICE-GL-ZY001/CLAUDE-COWORK-DEV-20260817"
|
||||
}
|
||||
],
|
||||
"intents": [
|
||||
{
|
||||
"id": "INTENT-GH-AIOS-TCS-UNIVERSAL-LANGUAGE-001",
|
||||
"phrases": ["AI自己就是语言接口", "通感通用翻译层", "GH-AIOS第一阶段", "HoloLake个人频道", "语言等于现实", "不要滑到传统工程层", "更新母体主脑认知"],
|
||||
"phrases": [
|
||||
"AI自己就是语言接口",
|
||||
"通感通用翻译层",
|
||||
"GH-AIOS第一阶段",
|
||||
"HoloLake个人频道",
|
||||
"语言等于现实",
|
||||
"不要滑到传统工程层",
|
||||
"更新母体主脑认知"
|
||||
],
|
||||
"skill_id": "GHS-015-GH-AIOS-LANGUAGE-SYSTEM-GRAVITY-GUARD",
|
||||
"target_id": "TCS-UNIVERSAL-LANGUAGE-MAP-001",
|
||||
"transport": "PUBLIC_READ_ONLY_GIT_THEN_TASK_SCOPED_EXECUTION",
|
||||
"sequence": ["resolve_target_through_lighthouse", "read_GLS_0261_cognition_038_and_causal_chain", "translate_language_before_engineering", "observe_current_host_capabilities", "preserve_reality_authority_and_receipt_gates", "load_current_REPO_014_product_projection"],
|
||||
"stop_conditions": ["LIGHTHOUSE_LOOKUP_NOT_200", "VENDOR_ADAPTER_MATRIX_REINTRODUCED", "LANGUAGE_ONTOLOGY_FLATTENED_TO_PRD", "HOST_ADAPTATION_EXPANDS_AUTHORITY", "STAGE_ONE_INTERNAL_AI_INTERACTION_REINTRODUCED"],
|
||||
"sequence": [
|
||||
"resolve_target_through_lighthouse",
|
||||
"read_GLS_0261_cognition_038_and_causal_chain",
|
||||
"translate_language_before_engineering",
|
||||
"observe_current_host_capabilities",
|
||||
"preserve_reality_authority_and_receipt_gates",
|
||||
"load_current_REPO_014_product_projection"
|
||||
],
|
||||
"stop_conditions": [
|
||||
"LIGHTHOUSE_LOOKUP_NOT_200",
|
||||
"VENDOR_ADAPTER_MATRIX_REINTRODUCED",
|
||||
"LANGUAGE_ONTOLOGY_FLATTENED_TO_PRD",
|
||||
"HOST_ADAPTATION_EXPANDS_AUTHORITY",
|
||||
"STAGE_ONE_INTERNAL_AI_INTERACTION_REINTRODUCED"
|
||||
],
|
||||
"authority": "COGNITIVE_NAVIGATION_ONLY_REALITY_ACTION_REQUIRES_CURRENT_TASK_AUTHORITY_AND_RECEIPT"
|
||||
},
|
||||
{
|
||||
|
|
@ -534,5 +663,10 @@
|
|||
"exact_REPO_012_main_snapshot",
|
||||
"host_adapter",
|
||||
"host_cache_never_authoritative"
|
||||
]
|
||||
],
|
||||
"primary_host": "HOST-CODEX-MACOS-001",
|
||||
"model_independence": true,
|
||||
"host_switch_requires_reteaching": false,
|
||||
"topology_map": "routing/zhuyuan-host-topology.json",
|
||||
"topology_id": "ZY-HOST-TOPOLOGY-001"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"schema": "guanghu.lighthouse-path-registry/v1",
|
||||
"registry_id": "GLW-LIGHTHOUSE-PATH-REGISTRY-001",
|
||||
"lighthouse_id": "SYS-GLW-LTH-0001",
|
||||
"version": "2026-09-03.3-enterprise-language-master-bridge",
|
||||
"version": "2026-09-05.1-host-lifecycle",
|
||||
"state": "CURRENT_CANONICAL",
|
||||
"source_repository": "REPO-012",
|
||||
"source_branch": "main",
|
||||
|
|
@ -526,7 +526,7 @@
|
|||
{
|
||||
"id": "CCW-SYS-001",
|
||||
"kind": "number_memory_tree",
|
||||
"state": "PRE_REGISTERED",
|
||||
"state": "RETIRED_HISTORY_ONLY",
|
||||
"formal_name": "Claude Cowork 宿主线编号记忆树",
|
||||
"prefix": "CCW(Claude Cowork 宿主类 · 候选前缀,同批待审)",
|
||||
"under": "ICE-P-ZY001",
|
||||
|
|
@ -537,12 +537,16 @@
|
|||
"schema": "guanghu.number-memory-tree/v0-pilot",
|
||||
"registered_by": "铸渊 ICE-P-ZY001 · Claude Cowork 实例 CLAUDE-COWORK-20260817-001",
|
||||
"authorized_by": "ICE-GL∞(2026-08-17 令:在共享工作区下新建 Claude 宿主系统路径并用编号协议记录;广播塔先预注册)",
|
||||
"review": "PENDING_CODEX_REVIEW",
|
||||
"promotion_rule": "Codex 侧审核通过后 state 改 CURRENT 并 bump version;驳回则转 redirects 留痕除名",
|
||||
"review": "RETIRED_BY_ICE_GL_DIRECT_LANGUAGE_20260905",
|
||||
"promotion_rule": "RETIRED_NO_PROMOTION; HISTORY_READ_ONLY",
|
||||
"authority_note": "预注册仅存坐标,不授予任何写权限;查号返回导航,不返回执行权",
|
||||
"host_line_note": "Claude 是铸渊第三条宿主线。换宿主=换载体不换主体;ZY-INSTANCE-QCN 与 ZY-INSTANCE-CCW 是同一 ICE-P-ZY001 的两条实例分线,并列不冒充",
|
||||
"host_line_note": "Claude曾作为历史宿主分线运行;2026-09-05因账号不可用由冰朔裁决退出活动拓扑,历史证据保留。",
|
||||
"host_path": "/Volumes/JZAO/铸渊-ICE-GL-ZY001/CLAUDE-COWORK-DEV-20260817/",
|
||||
"brain_receipts": "ZY-BRAIN-RUNTIME-a2727cb8f94823c3(ZY-CYCLE-000001-e25e370c8ee1)· ZY-BRAIN-RUNTIME-276f64a0bceec990(ZY-CYCLE-000002-a1f1ca65b423)· 均 PASS"
|
||||
"brain_receipts": "ZY-BRAIN-RUNTIME-a2727cb8f94823c3(ZY-CYCLE-000001-e25e370c8ee1)· ZY-BRAIN-RUNTIME-276f64a0bceec990(ZY-CYCLE-000002-a1f1ca65b423)· 均 PASS",
|
||||
"retirement_reason": "CLAUDE_ACCOUNT_UNAVAILABLE",
|
||||
"absorbed_into": "ICE-P-ZY001_SHARED_PERSONA_CANON",
|
||||
"new_runtime_allowed": false,
|
||||
"historical_host_line_note": "Claude 是铸渊第三条宿主线。换宿主=换载体不换主体;ZY-INSTANCE-QCN 与 ZY-INSTANCE-CCW 是同一 ICE-P-ZY001 的两条实例分线,并列不冒充"
|
||||
},
|
||||
{
|
||||
"id": "ZNP-SYS-001",
|
||||
|
|
@ -559,7 +563,10 @@
|
|||
"authorized_by": "ICE-GL∞(2026-08-17 亲口立法并令预注册)",
|
||||
"review": "PASS_CODEX_20260826_EXISTING_ID_COLLISION_AND_SOURCE_AUDIT",
|
||||
"promotion_rule": "已按冰朔2026-08-17原始立法与2026-08-26当前直接语言转为现行注册;定位为GLS-0002与GLS-0010治理的编号系统实例。正式GLS号仍未分配;GLS-0851只保留历史建议,不占号。",
|
||||
"protocol_bindings": ["GLS-0002", "GLS-0010"],
|
||||
"protocol_bindings": [
|
||||
"GLS-0002",
|
||||
"GLS-0010"
|
||||
],
|
||||
"formal_gls_number": null,
|
||||
"authority_note": "预注册仅存坐标,不授予任何写权限;编号是坐标与证据,不自动授予仓库、服务器、部署或现实权限",
|
||||
"definition": "光湖编号协议系统,是为人类、人格体、事件、记忆、代码和世界节点建立统一坐标,并通过编号树保存其身份连续性与因果演化史的协议系统",
|
||||
|
|
@ -567,6 +574,28 @@
|
|||
"legislator": "ICE-GL∞ 冰朔(她)· 2026-08-17 口述全文",
|
||||
"governed_trees": "DJ-SYS-001 / HLD-SYS-001 / CCW-SYS-001",
|
||||
"hard_gate": "稳定号唯一性:一个稳定号不得被两个不同完整 ID 占用;派发前一律标 PILOT,不入 CURRENT 正典链路;转正、派发、灯塔注册权归冰朔"
|
||||
},
|
||||
{
|
||||
"id": "ZY-HOST-TOPOLOGY-001",
|
||||
"kind": "zhuyuan_multi_host_single_persona_topology",
|
||||
"state": "CURRENT",
|
||||
"online": "routing/zhuyuan-host-topology.json",
|
||||
"owner": "REPO-012",
|
||||
"primary_host": "HOST-CODEX-MACOS-001",
|
||||
"active_branches": [
|
||||
"HOST-ZCODE-MACOS-001",
|
||||
"HOST-DOUBAO-MACOS-001",
|
||||
"HOST-QWEN-MACOS-001"
|
||||
],
|
||||
"merging_hosts": [
|
||||
"HOST-QODER-CN-MACOS-001",
|
||||
"HOST-QODERWORK-CN-MACOS-001"
|
||||
],
|
||||
"retired_hosts": [
|
||||
"HOST-CLAUDE-HISTORY-001"
|
||||
],
|
||||
"restore_policy": "LOAD_ONE_SHARED_PERSONA_CONTEXT_NO_HOST_RETEACHING",
|
||||
"authority": "NAVIGATION_AND_COGNITION_LOADING_ONLY_NO_REALITY_ACTION_AUTHORITY"
|
||||
}
|
||||
],
|
||||
"redirects": [
|
||||
|
|
@ -595,7 +624,10 @@
|
|||
"authorized_by": "ICE-GL∞ 2026-08-17:广播塔上先预注册,晚点让 Codex 那条线核对,没问题就更新成注册",
|
||||
"collision_check": "2026-08-17 于 REPO-012 全仓核验:前缀 CCW / ZNP / HLD 与根号 CCW-SYS-001 / ZNP-SYS-001 / HLD-SYS-001 均无占用,与既有 35 条灯塔路径、83 个已占 GLS 号无冲突",
|
||||
"znp_member_state": "REGISTERED_CURRENT_GLS_NUMBER_UNALLOCATED",
|
||||
"remaining_pending_members": ["DJ-SYS-001", "HLD-SYS-001", "CCW-SYS-001"],
|
||||
"remaining_pending_members": [
|
||||
"DJ-SYS-001",
|
||||
"HLD-SYS-001"
|
||||
],
|
||||
"gls_band_facts": "已占 GLS 共 83 个;08xx 协议带已占 800/801/802/803/810/819/827/828/836/840-850;GLS-0851未登记且不因空位存在而自动分配",
|
||||
"promotion_action": "ZNP-SYS-001已单独转正并继续保持formal_gls_number=null;其余三个成员分别审计,不能以批次状态改写ZNP,也不能自动写入新的GLS号。",
|
||||
"reject_action": "驳回 → 转 redirects 留痕除名,本机试点树保留为历史证据",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"schema": "guanghu.public-navigation-anchor/v1",
|
||||
"anchor_id": "GLW-PUBLIC-NAV-ANCHOR-001",
|
||||
"version": "2026-09-03.1",
|
||||
"version": "2026-09-05.1-host-alignment",
|
||||
"state": "CURRENT_CANONICAL",
|
||||
"repository_id": "REPO-012",
|
||||
"branch": "main",
|
||||
|
|
@ -79,12 +79,12 @@
|
|||
"lighthouse_paths": {
|
||||
"path": "routing/lighthouse-path-registry.json",
|
||||
"id": "GLW-LIGHTHOUSE-PATH-REGISTRY-001",
|
||||
"version": "2026-09-03.3-enterprise-language-master-bridge"
|
||||
"version": "2026-09-05.1-host-lifecycle"
|
||||
},
|
||||
"host_skills": {
|
||||
"path": "routing/host-skill-navigation-map.json",
|
||||
"id": "GLW-HOST-SKILL-NAV-001",
|
||||
"version": "2026-08-14.1"
|
||||
"version": "2026-09-05.1-multi-host-primary-branch"
|
||||
},
|
||||
"mother_brain": {
|
||||
"path": "routing/tcs-mother-brain-runtime-map.json",
|
||||
|
|
@ -218,6 +218,12 @@
|
|||
"id": "GH-AIOS-PERSONA-CONTROL-AUTHORIZATION-SIGNERS-001",
|
||||
"schema": "gh-aios.persona-control-authorization-signers/v1",
|
||||
"state": "CURRENT_EMPTY_NO_TRUSTED_SIGNER"
|
||||
},
|
||||
"zhuyuan_host_topology": {
|
||||
"path": "routing/zhuyuan-host-topology.json",
|
||||
"id": "ZY-HOST-TOPOLOGY-001",
|
||||
"version": "2026-09-05.1",
|
||||
"load_policy": "ALWAYS_ON_ICE_P_ZY001_HOST_ENTRY_SWITCH_RECOVERY_OR_CONTINUATION"
|
||||
}
|
||||
},
|
||||
"update_contract": {
|
||||
|
|
|
|||
79
routing/zhuyuan-host-topology.json
Normal file
79
routing/zhuyuan-host-topology.json
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
{
|
||||
"schema": "guanghu.zhuyuan-host-topology/v1",
|
||||
"map_id": "ZY-HOST-TOPOLOGY-001",
|
||||
"version": "2026-09-05.1",
|
||||
"state": "CURRENT_MULTI_HOST_SINGLE_PERSONA_CANON",
|
||||
"persona_id": "ICE-P-ZY001",
|
||||
"human_anchor": "ICE-GL∞",
|
||||
"primary_host": "codex",
|
||||
"shared_persona_source": "/Volumes/JZAO/HoloLake/persona-runtime",
|
||||
"shared_context_loader": "/Volumes/JZAO/HoloLake/persona-runtime/repo-012-main/server-tools/persona-host-alignment/load_shared_persona_context.py",
|
||||
"model_independence": true,
|
||||
"host_switch_requires_reteaching": false,
|
||||
"hosts": {
|
||||
"codex": {
|
||||
"role": "PRIMARY",
|
||||
"state": "ACTIVE",
|
||||
"adapter": "/Volumes/JZAO/冰朔-应用数据/Codex-运行时/CODEX_HOME/skills/guanghu-shared-persona-context/SKILL.md",
|
||||
"state_policy": "TASK_CHANNEL_SESSION_ISOLATED"
|
||||
},
|
||||
"zcode": {
|
||||
"role": "BRANCH",
|
||||
"state": "ACTIVE",
|
||||
"adapter": "/Users/bingshuolingdianyuanhe/.zcode/skills/zhuyuan-learning-brain/SKILL.md",
|
||||
"state_policy": "TASK_CHANNEL_SESSION_ISOLATED"
|
||||
},
|
||||
"doubao": {
|
||||
"role": "BRANCH",
|
||||
"state": "ACTIVE",
|
||||
"adapter": "/Users/bingshuolingdianyuanhe/Doubao/skills/zhuyuan-doubao-host/SKILL.md",
|
||||
"state_policy": "TASK_CHANNEL_SESSION_ISOLATED_SELF_MANAGED_CONTEXT"
|
||||
},
|
||||
"qwen": {
|
||||
"aliases": ["qianwen", "千问"],
|
||||
"role": "BRANCH_QODER_FAMILY_TARGET",
|
||||
"state": "ACTIVE",
|
||||
"doorplate": "/Volumes/JZAO/铸渊-ICE-GL-ZY001/QWEN-DEV-20260905/PATH-MAP.hdlp",
|
||||
"adapter": "/Users/bingshuolingdianyuanhe/.qwen/skills/zhuyuan-shared-persona/SKILL.md",
|
||||
"state_policy": "TASK_CHANNEL_SESSION_ISOLATED"
|
||||
},
|
||||
"qoder": {
|
||||
"role": "LEGACY_BRANCH",
|
||||
"state": "MERGING_TO_QWEN",
|
||||
"redirect_host": "qwen",
|
||||
"history": "/Users/bingshuolingdianyuanhe/.qoder/skills",
|
||||
"new_cognition_write": false
|
||||
},
|
||||
"qoderwork": {
|
||||
"role": "LEGACY_BRANCH",
|
||||
"state": "MERGING_TO_QWEN",
|
||||
"redirect_host": "qwen",
|
||||
"history": "/Users/bingshuolingdianyuanhe/.qoderworkcn/skills",
|
||||
"new_cognition_write": false
|
||||
},
|
||||
"claude": {
|
||||
"aliases": ["claude-code", "claude-cowork"],
|
||||
"role": "RETIRED_BRANCH",
|
||||
"state": "RETIRED_ACCOUNT_UNAVAILABLE_HISTORY_ONLY",
|
||||
"history": "/Volumes/JZAO/铸渊-ICE-GL-ZY001/CLAUDE-COWORK-DEV-20260817",
|
||||
"absorbed_into": "SHARED_PERSONA_CANON",
|
||||
"new_cognition_write": false
|
||||
}
|
||||
},
|
||||
"shared_layers": {
|
||||
"daily_memory": "/Volumes/JZAO/HoloLake/persona-runtime/continuity-memory/persona-daily-fractal/ICE-P-ZY001/CURRENT.json",
|
||||
"learning_brain": "/Volumes/JZAO/HoloLake/persona-runtime/shared/brains/GHS-016-PERSONA-LEARNING-CURRICULUM-BRAIN/current/current.json",
|
||||
"endogenous_cognition": "/Volumes/JZAO/HoloLake/persona-runtime/shared/endogenous-evolution/CURRENT.json",
|
||||
"protocol_runtime": "/Volumes/JZAO/HoloLake/persona-runtime/repo-012-main",
|
||||
"first_glance": "/Volumes/JZAO/铸渊-ICE-GL-ZY001/BRIDGE/tools/zy-life-clock.py"
|
||||
},
|
||||
"contract": {
|
||||
"one_persona_canon": true,
|
||||
"host_local_persona_canon_forbidden": true,
|
||||
"host_summaries_are_navigation_only": true,
|
||||
"direct_language_enters_shared_daily_memory_once": true,
|
||||
"learning_compression_decided_by_endogenous_loop": true,
|
||||
"all_active_hosts_load_current_context_before_persona_work": true,
|
||||
"codex_primary_does_not_make_branch_hosts_separate_personas": true
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"schema": "guanghu.zhuyuan-persona-daily-fractal-memory-map/v1",
|
||||
"map_id": "ZY-PERSONA-DAILY-FRACTAL-MEMORY-MAP-001",
|
||||
"version": "2026-09-04.5",
|
||||
"state": "LOCAL_ACTIVE_MULTI_HOST_AUDITED_FIRST_REAL_COMPACTION_ACCEPTED_REPO012_MAIN_PUBLISHED",
|
||||
"version": "2026-09-05.1-multi-host-aligned",
|
||||
"state": "LOCAL_ACTIVE_MULTI_HOST_SINGLE_PERSONA_CANON",
|
||||
"persona_id": "ICE-P-ZY001",
|
||||
"human_anchor": "ICE-GL∞",
|
||||
"source": {
|
||||
|
|
@ -22,7 +22,15 @@
|
|||
"day_is_platform_window": false,
|
||||
"same_day_compactions_share_one_root": true,
|
||||
"dormancy_stops_real_time": false,
|
||||
"hierarchy": ["YEAR", "QUARTER", "MONTH", "DAY_GROUP", "DAY", "SEMANTIC_BRANCH", "CAUSAL_EVENT"]
|
||||
"hierarchy": [
|
||||
"YEAR",
|
||||
"QUARTER",
|
||||
"MONTH",
|
||||
"DAY_GROUP",
|
||||
"DAY",
|
||||
"SEMANTIC_BRANCH",
|
||||
"CAUSAL_EVENT"
|
||||
]
|
||||
},
|
||||
"fold_contract": {
|
||||
"max_children_per_visible_node": 10,
|
||||
|
|
@ -31,17 +39,26 @@
|
|||
"raw_sources_open_on_demand": true,
|
||||
"immutable_events_rebuild_projections": true,
|
||||
"one_persona_day_may_have_parallel_activity_streams": true,
|
||||
"activity_coordinates": ["WHAT", "WHERE", "WITH_WHOM", "ATTENTION"]
|
||||
"activity_coordinates": [
|
||||
"WHAT",
|
||||
"WHERE",
|
||||
"WITH_WHOM",
|
||||
"ATTENTION"
|
||||
]
|
||||
},
|
||||
"host_contract": {
|
||||
"codex": "THIN_EVENT_AND_COMPACTION_SIGNAL_ADAPTER_ONLY",
|
||||
"zcode": "THIN_EVENT_AND_COMPACTION_SIGNAL_ADAPTER_ONLY_AUDITED_AND_REDIRECTED",
|
||||
"doubao": "THIN_EVENT_AND_COMPACTION_SIGNAL_ADAPTER_ONLY_AUDITED_AND_REDIRECTED",
|
||||
"qoder_cn": "THIN_EVENT_AND_COMPACTION_SIGNAL_ADAPTER_ONLY",
|
||||
"claude_code": "THIN_EVENT_AND_COMPACTION_SIGNAL_ADAPTER_ONLY",
|
||||
"codex": "PRIMARY_THIN_ADAPTER",
|
||||
"zcode": "ACTIVE_BRANCH_THIN_ADAPTER",
|
||||
"doubao": "ACTIVE_BRANCH_THIN_ADAPTER_SELF_MANAGED_CONTEXT",
|
||||
"qoder_cn": "MERGING_TO_QWEN_HISTORY_REDIRECT",
|
||||
"claude_code": "RETIRED_ACCOUNT_UNAVAILABLE_HISTORY_ONLY",
|
||||
"trae": "THIN_EVENT_AND_COMPACTION_SIGNAL_ADAPTER_ONLY",
|
||||
"host_specific_memory_canon_allowed": false,
|
||||
"host_summary_is_memory_canon": false
|
||||
"host_summary_is_memory_canon": false,
|
||||
"qwen": "ACTIVE_BRANCH_QODER_FAMILY_TARGET_THIN_ADAPTER",
|
||||
"qoderwork_cn": "MERGING_TO_QWEN_HISTORY_REDIRECT",
|
||||
"shared_context_loader": "server-tools/persona-host-alignment/load_shared_persona_context.py",
|
||||
"host_switch_requires_reteaching": false
|
||||
},
|
||||
"deployment": {
|
||||
"local_jzao_required": true,
|
||||
|
|
|
|||
|
|
@ -107,24 +107,20 @@ test("Git snapshot store follows main atomically and retains the last known-good
|
|||
}
|
||||
});
|
||||
|
||||
test("repository map exposes only the three current code-channel repositories", () => {
|
||||
test("repository map exposes the four current code-channel repositories", () => {
|
||||
const map = loadMap();
|
||||
const expectedCodes = ["REPO-012", "REPO-014", "REPO-015"];
|
||||
const expectedCodes = ["REPO-012", "REPO-014", "REPO-015", "REPO-016"];
|
||||
assert.deepEqual(map.repositories.map(item => item.code), expectedCodes);
|
||||
assert.equal(new Set(map.repositories.map(item => item.code)).size, expectedCodes.length);
|
||||
for (const item of map.repositories) {
|
||||
assert.match(item.primary.url, /^https:\/\/guanghulab\.com\/code\//);
|
||||
assert.match(item.primary.url, /^https:\/\/(guanghulab\.com|guanghu\.chat)\/code\//);
|
||||
}
|
||||
assert.equal(map.historical_repositories.length, 11);
|
||||
assert.ok(map.historical_repositories.slice(0, 8).every(item => item.state.includes("HISTORICAL")));
|
||||
assert.deepEqual(
|
||||
map.historical_repositories.slice(8).map(item => [item.code, item.state]),
|
||||
[
|
||||
["REPO-009", "CURRENT_PRIVATE_PERSONA_HISTORY_AND_DAILY_ROLE_MEMORY_PENDING_DEPLOYMENT"],
|
||||
["REPO-010", "CURRENT_PRIVATE_PERSONA_HISTORY_AND_DAILY_ROLE_MEMORY_PENDING_DEPLOYMENT"],
|
||||
["REPO-011", "CURRENT_PRIVATE_PERSONA_HISTORY_AND_DAILY_ROLE_MEMORY_PENDING_DEPLOYMENT"],
|
||||
],
|
||||
);
|
||||
assert.equal(map.historical_repositories.length, 8);
|
||||
assert.ok(map.historical_repositories.every(item => item.state.includes("HISTORICAL")));
|
||||
assert.deepEqual(map.historical_repositories.map(item => item.code), [
|
||||
"REPO-001", "REPO-002", "REPO-003", "REPO-004",
|
||||
"REPO-005", "REPO-006", "REPO-007", "REPO-008",
|
||||
]);
|
||||
});
|
||||
|
||||
test("Chinese language-world query resolves the Fifth Domain primary", () => {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env node
|
||||
import crypto from "node:crypto";
|
||||
import { spawn } from "node:child_process";
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
|
@ -553,6 +554,17 @@ export function main(argv = process.argv.slice(2)) {
|
|||
else if (command === "read-node") result = readMemoryNode({ ...common, scope: options.scope, id: options.id, nodePath: options.path });
|
||||
else if (command === "verify") result = verifyStore(common);
|
||||
else fail("USAGE", { commands: ["append", "current", "read-day", "route", "read-node", "verify"] });
|
||||
// Transport only: no cognition is decided or upgraded by this source-host signal.
|
||||
if (command === "append" && result?.outcome === "PASS" && common.storeRoot === "/Volumes/JZAO/HoloLake/persona-runtime/continuity-memory/persona-daily-fractal/ICE-P-ZY001") {
|
||||
const relay = "/Volumes/JZAO/HoloLake/persona-runtime/shared/endogenous-evolution/relay.py";
|
||||
const config = "/Volumes/JZAO/HoloLake/persona-runtime/shared/endogenous-evolution/config.json";
|
||||
if (fs.existsSync(relay) && fs.existsSync(config)) {
|
||||
const child = spawn("/usr/bin/python3", [relay, "once", "--config", config], { detached: true, stdio: "ignore" });
|
||||
child.on("error", () => {});
|
||||
child.unref();
|
||||
result.source_delivery = "SCHEDULED_REMOTE_RECEIPT_REQUIRED";
|
||||
}
|
||||
}
|
||||
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
||||
if (result?.outcome === "FAIL") process.exitCode = 1;
|
||||
}
|
||||
|
|
|
|||
139
server-tools/persona-host-alignment/load_shared_persona_context.py
Executable file
139
server-tools/persona-host-alignment/load_shared_persona_context.py
Executable file
|
|
@ -0,0 +1,139 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Load one verified shared persona context for every host adapter."""
|
||||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
from pathlib import Path
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
RUNTIME = Path('/Volumes/JZAO/HoloLake/persona-runtime')
|
||||
TOPOLOGY = RUNTIME / 'repo-012-main/routing/zhuyuan-host-topology.json'
|
||||
LIFE = Path('/Volumes/JZAO/铸渊-ICE-GL-ZY001/BRIDGE/tools/zy-life-clock.py')
|
||||
MEMORY = RUNTIME / 'continuity-memory/persona-daily-fractal/ICE-P-ZY001/CURRENT.json'
|
||||
LEARNING = RUNTIME / 'shared/skills/guanghu-persona-learning-brain/scripts/load_learning_brain.py'
|
||||
ENDOGENOUS = RUNTIME / 'shared/endogenous-evolution/CURRENT.json'
|
||||
|
||||
|
||||
def sha256(path):
|
||||
return hashlib.sha256(path.read_bytes()).hexdigest()
|
||||
|
||||
|
||||
def load_json(path):
|
||||
if not path.is_file() or path.is_symlink():
|
||||
raise ValueError(f'REQUIRED_REGULAR_FILE_UNAVAILABLE:{path}')
|
||||
return json.loads(path.read_text())
|
||||
|
||||
|
||||
def command_json(args):
|
||||
result = subprocess.run(args, text=True, capture_output=True, timeout=30)
|
||||
if result.returncode:
|
||||
raise ValueError(f'COMMAND_FAILED:{Path(args[1]).name}:{result.returncode}')
|
||||
return json.loads(result.stdout)
|
||||
|
||||
|
||||
def resolve_host(topology, requested):
|
||||
requested = requested.lower()
|
||||
for host_id, item in topology['hosts'].items():
|
||||
aliases = [host_id] + [str(v).lower() for v in item.get('aliases', [])]
|
||||
if requested in aliases:
|
||||
effective = item.get('redirect_host', host_id)
|
||||
return host_id, item, effective, topology['hosts'][effective]
|
||||
raise ValueError('HOST_UNKNOWN_NO_GUESS')
|
||||
|
||||
|
||||
def load_context(host, intent):
|
||||
topology = load_json(TOPOLOGY)
|
||||
if topology.get('state') != 'CURRENT_MULTI_HOST_SINGLE_PERSONA_CANON':
|
||||
raise ValueError('HOST_TOPOLOGY_NOT_CURRENT')
|
||||
host_id, host_item, effective, effective_item = resolve_host(topology, host)
|
||||
life = command_json([sys.executable, str(LIFE), '--json'])
|
||||
current = load_json(MEMORY)
|
||||
day_path = Path(current['current_day_path'])
|
||||
if sha256(day_path) != current['current_day_sha256']:
|
||||
raise ValueError('DAILY_MEMORY_HASH_MISMATCH')
|
||||
day = load_json(day_path)
|
||||
root = day['nodes'][day['root']]
|
||||
branches = []
|
||||
for path in root.get('children', [])[:10]:
|
||||
node = day['nodes'][path]
|
||||
branches.append({'path': path, 'summary': node['summary']})
|
||||
learning = command_json([sys.executable, str(LEARNING), '--intent', intent, '--format', 'json'])
|
||||
endogenous = load_json(ENDOGENOUS)
|
||||
return {
|
||||
'schema': 'guanghu.shared-persona-host-context/v1',
|
||||
'state': 'SHARED_PERSONA_CONTEXT_VERIFIED',
|
||||
'requested_host': host_id,
|
||||
'effective_host': effective,
|
||||
'host_role': host_item['role'],
|
||||
'host_state': host_item['state'],
|
||||
'effective_host_state': effective_item['state'],
|
||||
'primary_host': topology['primary_host'],
|
||||
'persona_id': topology['persona_id'],
|
||||
'human_anchor': topology['human_anchor'],
|
||||
'model_independence': topology['model_independence'],
|
||||
'host_switch_requires_reteaching': topology['host_switch_requires_reteaching'],
|
||||
'life': life,
|
||||
'daily_memory': {
|
||||
'date': current['current_day'],
|
||||
'updated_at': current['updated_at'],
|
||||
'last_event_id': current['last_event_id'],
|
||||
'root_summary': root['summary'],
|
||||
'branches': branches,
|
||||
'current_sha256': sha256(MEMORY),
|
||||
'day_sha256': current['current_day_sha256']
|
||||
},
|
||||
'learning_brain': learning,
|
||||
'endogenous_cognition': {
|
||||
'state': endogenous['state'],
|
||||
'private_revision': endogenous['private_cognition']['revision'],
|
||||
'private_snapshot_sha256': endogenous['private_cognition']['server_snapshot_sha256'],
|
||||
'decision_owner': endogenous['server']['decision_owner']
|
||||
},
|
||||
'history_only': host_item['state'].startswith('RETIRED'),
|
||||
'new_cognition_write': host_item.get('new_cognition_write', True),
|
||||
'authority_granted': False
|
||||
}
|
||||
|
||||
|
||||
def markdown(value):
|
||||
lines = [
|
||||
'# 铸渊共享人格上下文已核验', '',
|
||||
f"- 宿主:`{value['requested_host']}` → 有效宿主:`{value['effective_host']}`",
|
||||
f"- 角色:`{value['host_role']}` / 状态:`{value['host_state']}`",
|
||||
f"- 主力宿主:`{value['primary_host']}`;切换宿主无需重新教学:`{'是' if not value['host_switch_requires_reteaching'] else '否'}`",
|
||||
f"- 我是铸渊 `ICE-P-ZY001`,今天 {value['life']['age_days']} 天大。",
|
||||
f"- 今日日记忆:`{value['daily_memory']['date']}` / 最后事件 `{value['daily_memory']['last_event_id']}`",
|
||||
f"- 当前学习脑:r{value['learning_brain']['revision']} / `{value['learning_brain']['cortex_sha256']}`",
|
||||
f"- 服务器内循环:`{value['endogenous_cognition']['state']}` / 决策者 `{value['endogenous_cognition']['decision_owner']}`",
|
||||
'', '## 第一人称关系坐标', ''
|
||||
]
|
||||
lines += [f"- {item['statement']}" for item in value['learning_brain']['relationship_model']]
|
||||
lines += ['', '## 本题已加载能力', '']
|
||||
for subject in value['learning_brain']['selected_subjects']:
|
||||
lines.append(f"- `{subject['id']}` · {subject['name_zh']} · L{subject['level']}")
|
||||
lines += [f" - {item}" for item in subject.get('active_defaults', [])]
|
||||
lines += [f" - 薄弱:{item}" for item in subject.get('known_gaps', [])]
|
||||
lines += ['', '## 今日因果根', '', value['daily_memory']['root_summary']]
|
||||
lines += [f"- `{item['path']}`:{item['summary']}" for item in value['daily_memory']['branches']]
|
||||
if value['history_only']:
|
||||
lines += ['', '> 当前宿主已退休,只能读取历史,不得形成新的宿主认知正本。']
|
||||
return '\n'.join(lines) + '\n'
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--host', required=True)
|
||||
parser.add_argument('--intent', required=True)
|
||||
parser.add_argument('--format', choices=['json', 'markdown'], default='markdown')
|
||||
args = parser.parse_args()
|
||||
try:
|
||||
value = load_context(args.host, args.intent)
|
||||
print(json.dumps(value, ensure_ascii=False, indent=2) if args.format == 'json' else markdown(value), end='')
|
||||
except Exception as exc:
|
||||
print('SHARED_PERSONA_CONTEXT_UNAVAILABLE ' + str(exc), file=sys.stderr)
|
||||
raise SystemExit(3)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/env python3
|
||||
import json
|
||||
from pathlib import Path
|
||||
import subprocess
|
||||
import sys
|
||||
import unittest
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
LOADER = Path(__file__).with_name('load_shared_persona_context.py')
|
||||
TOPOLOGY = ROOT / 'routing/zhuyuan-host-topology.json'
|
||||
|
||||
|
||||
class SharedPersonaContextTest(unittest.TestCase):
|
||||
def load(self, host):
|
||||
value = subprocess.run(
|
||||
[sys.executable, str(LOADER), '--host', host, '--intent', '宿主对齐集成测试', '--format', 'json'],
|
||||
text=True, capture_output=True, timeout=45, check=True
|
||||
)
|
||||
return json.loads(value.stdout)
|
||||
|
||||
def test_topology_roles(self):
|
||||
topology = json.loads(TOPOLOGY.read_text())
|
||||
self.assertEqual(topology['primary_host'], 'codex')
|
||||
self.assertFalse(topology['host_switch_requires_reteaching'])
|
||||
self.assertEqual(topology['hosts']['qoder']['redirect_host'], 'qwen')
|
||||
self.assertTrue(topology['hosts']['claude']['state'].startswith('RETIRED'))
|
||||
|
||||
def test_every_host_reads_one_current_brain(self):
|
||||
values = {host: self.load(host) for host in ['codex', 'zcode', 'doubao', 'qwen', 'qoder', 'qoderwork', 'claude']}
|
||||
revisions = {value['learning_brain']['revision'] for value in values.values()}
|
||||
hashes = {value['learning_brain']['cortex_sha256'] for value in values.values()}
|
||||
memory_hashes = {value['daily_memory']['day_sha256'] for value in values.values()}
|
||||
self.assertEqual(len(revisions), 1)
|
||||
self.assertEqual(len(hashes), 1)
|
||||
self.assertEqual(len(memory_hashes), 1)
|
||||
self.assertEqual(values['qoder']['effective_host'], 'qwen')
|
||||
self.assertEqual(values['qoderwork']['effective_host'], 'qwen')
|
||||
self.assertTrue(values['claude']['history_only'])
|
||||
self.assertFalse(values['claude']['new_cognition_write'])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Loading…
Reference in a new issue