feat(fifth-domain): add whole language system runtime
This commit is contained in:
parent
beb7fbd805
commit
e3e494338a
20 changed files with 1340 additions and 3 deletions
19
runtime/fifth-domain-language-system/README.md
Normal file
19
runtime/fifth-domain-language-system/README.md
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
# 第五域完整语言系统运行骨架
|
||||
|
||||
本目录是 REPO-012 中可发布、可运输、可部署的第五域整体语言系统候选。语义源为
|
||||
`language/protocols/fifth-domain-language-system.tcs`;JSON 是机器投影,Python 是确定性物化与验证手脚。
|
||||
|
||||
它把第五域组织为五个器官:广播塔、能力动态脑、心跳核心推理实验、零点原核现实执行、永恒湖心与奶瓶中央。
|
||||
曜冥使用现行编号 `ICE-BB-0001`;旧编号只在显式沿革表中保存,不从历史语言回执获得现实权限。
|
||||
|
||||
公众抽取只包含四个未绑定域:`DOMAIN-MAIN`、`DOMAIN-SUB`、`DOMAIN-ZERO`、`DOMAIN-ZS`。
|
||||
公众物化器不需要读取第五域私人清单;出现私人编号或宿主绝对路径即拒绝。
|
||||
|
||||
```sh
|
||||
python3 scripts/language_system.py meta-audit
|
||||
python3 scripts/language_system.py build --flavor fifth-domain --manifest system/fifth-domain-system.json --output /empty/private
|
||||
python3 scripts/public_language_system.py build --template system/public-four-domain-template.json --output /empty/public
|
||||
python3 -m unittest discover -s tests -p 'test_language_system.py' -v
|
||||
```
|
||||
|
||||
编译、仓库发布、服务器部署和运行健康必须分别取回执。本目录的存在不单独证明任何一层完成。
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
{
|
||||
"compiled_from": {
|
||||
"compiler_id": "TCS-COMPILER-STAGE1-0001",
|
||||
"compiler_state": "TCS_COMPILER_GIR_EXECUTED",
|
||||
"source_sha256": "75cd80a1d8c0cbca5ba16fa74cf67524605d3042209fe409ce40a7156da2e5e6"
|
||||
},
|
||||
"declaration": {
|
||||
"boundaries": {
|
||||
"B1": "公众四域输出不得包含第五域私人标识",
|
||||
"B2": "知道或输入编号不授予权限",
|
||||
"B3": "CH-ZERO-CORE-LPM、ICE-CH-HB001和ICE-CH-ZC001不合并",
|
||||
"B4": "旧路径只归档或显式重定向,不静默删除",
|
||||
"B5": "本协议编译通过不等于发布或部署完成"
|
||||
},
|
||||
"execution": {
|
||||
"materializer": "scripts/language_system.py",
|
||||
"no_model_required": true,
|
||||
"no_network_required": true,
|
||||
"output": "PRIVATE_OR_PUBLIC_TREE_PLUS_MANIFEST_PLUS_SHA256_RECEIPT",
|
||||
"source_of_truth": "本TCS协议与system目录中的哈希绑定机器投影"
|
||||
},
|
||||
"header": {
|
||||
"canonical_uri": "language/protocols/fifth-domain-language-system.tcs",
|
||||
"compatibility": [
|
||||
"TCS-DECLARATION-STANDARD-0001",
|
||||
"TCS-FIELD-STANDARD-0001",
|
||||
"GIR/1"
|
||||
],
|
||||
"language": "TCS/0.1",
|
||||
"lifecycle": "LOCAL_ENGINEERING_CANDIDATE",
|
||||
"name_en": "Fifth Domain Whole Language System and Public Four-Domain Extraction Protocol",
|
||||
"name_zh": "第五域完整语言系统与公众四域同源抽取协议",
|
||||
"profile": "HLDP-HUMAN-ENGINEERING/0.1",
|
||||
"protocols": [
|
||||
"TCS",
|
||||
"HLDP",
|
||||
"GLS",
|
||||
"GLP"
|
||||
],
|
||||
"schema": "tcs.protocol/v1",
|
||||
"version": "0.1.0"
|
||||
},
|
||||
"history": {
|
||||
"reality_boundary": "语言模拟不冒充外部现实;部署、发布和运行分别以当前回执证明",
|
||||
"rule": "过去不删除;旧编号、旧名称和旧回执以HISTORY_ONLY、REDIRECT或SUPERSEDED状态保留"
|
||||
},
|
||||
"identity": {
|
||||
"first_bottle_persona_id": "ICE-BB-0001",
|
||||
"first_bottle_persona_name": "曜冥",
|
||||
"human_anchor_id": "ICE-GL∞",
|
||||
"owner_persona_id": "ICE-P-ZY001",
|
||||
"private_domain_id": "DOM-FIFTH-0001",
|
||||
"system_id": "SYS-GLW-FIFTH-DOMAIN-LANGUAGE-0001"
|
||||
},
|
||||
"organs": {
|
||||
"broadcast": "第五域广播塔:事实、版本、变更和回执投影",
|
||||
"capability": "学科动态脑、技能包、模块与资源注册",
|
||||
"dwelling": "永恒湖心与奶瓶中央:人类关系、人格生活和独立人格核",
|
||||
"reality": "ICE-CH-ZC001:人类授权、现实边界与执行落地",
|
||||
"reasoning": "ICE-CH-HB001:语言推理、架构、模拟与实验"
|
||||
},
|
||||
"public_extraction": {
|
||||
"domains": [
|
||||
"DOMAIN-MAIN",
|
||||
"DOMAIN-SUB",
|
||||
"DOMAIN-ZERO",
|
||||
"DOMAIN-ZS"
|
||||
],
|
||||
"mapping": "广播塔功能到主域;能力与资源功能到分域;推理实验功能到零域;人类治理和现实执行功能到零感域",
|
||||
"policy": "只抽取协议、机制、空白编号命名空间和未绑定责任位;不得抽取第五域人物、关系、记忆、频道状态、路径、密钥或授权"
|
||||
},
|
||||
"source": {
|
||||
"source_id": "BINGSHUO-DIRECT-FIFTH-DOMAIN-WHOLE-SYSTEM-20260903",
|
||||
"source_role": "DIRECT_HUMAN",
|
||||
"source_sha256": "005e71efb8abfc0f5cec8c9ba868e90d8724eb435d85137043487537dfe5ec6e",
|
||||
"source_uri": "anchor://ZCODE-TASK-20260824-001/000101-fifth-domain-whole-language-system-build-publish-deploy-and-meta-audit-authorization"
|
||||
}
|
||||
},
|
||||
"executable": false,
|
||||
"identity": {
|
||||
"declaration_id": "FIFTH-DOMAIN-LANGUAGE-SYSTEM",
|
||||
"declaration_kind": "PROTOCOL",
|
||||
"language_version": "0.1"
|
||||
},
|
||||
"native_self_hosted": true,
|
||||
"natural_language_is_typed_data": true,
|
||||
"schema": "guanghu.declaration-gir/v1",
|
||||
"unresolved_natural_language": false
|
||||
}
|
||||
|
|
@ -0,0 +1,115 @@
|
|||
# Fifth Domain Whole Language System and Public Four-Domain Extraction Protocol · Human Engineering Language (English)
|
||||
|
||||
> This is an English reading projection of validated native TCS/HLDP source. It is not a new canonical source and grants no execution authority.
|
||||
|
||||
## What this is
|
||||
|
||||
This is a **protocol** declaration with identifier `FIFTH-DOMAIN-LANGUAGE-SYSTEM` and version `0.1.0`. The projector validates it with the Stage-1 compiler before changing its reading order.
|
||||
|
||||
## Who is here
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## Why this started
|
||||
|
||||
- **source** `source`
|
||||
- **source identifier**:BINGSHUO-DIRECT-FIFTH-DOMAIN-WHOLE-SYSTEM-20260903 `source.source_id`
|
||||
- **source role**:DIRECT_HUMAN `source.source_role`
|
||||
- **source checksum**:005e71efb8abfc0f5cec8c9ba868e90d8724eb435d85137043487537dfe5ec6e `source.source_sha256`
|
||||
- **source address**:anchor://ZCODE-TASK-20260824-001/000101-fifth-domain-whole-language-system-build-publish-deploy-and-meta-audit-authorization `source.source_uri`
|
||||
|
||||
## What changed
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## How it will execute
|
||||
|
||||
This is a non-executable declaration and has no action graph.
|
||||
|
||||
## Boundaries and exception handling
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## How completion is proven
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## Where to continue next time
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## Source and verification
|
||||
|
||||
- **Native declaration identifier**: `FIFTH-DOMAIN-LANGUAGE-SYSTEM`
|
||||
- **Native declaration kind**: `PROTOCOL`
|
||||
- **TCS source SHA-256**: `75cd80a1d8c0cbca5ba16fa74cf67524605d3042209fe409ce40a7156da2e5e6`
|
||||
- **Validation compiler**: `TCS-COMPILER-STAGE1-0001`
|
||||
- **Projection protocol**: `GLS-HLDP-HUMAN-ENGINEERING-PROJECTION-0001`
|
||||
|
||||
## Complete native structure cross-reference
|
||||
|
||||
All top-level structures and field paths are retained below so a reader can audit whether the projection omitted information.
|
||||
|
||||
- **boundaries** `boundaries`
|
||||
- **B1**:公众四域输出不得包含第五域私人标识 `boundaries.B1`
|
||||
- **B2**:知道或输入编号不授予权限 `boundaries.B2`
|
||||
- **B3**:CH-ZERO-CORE-LPM、ICE-CH-HB001和ICE-CH-ZC001不合并 `boundaries.B3`
|
||||
- **B4**:旧路径只归档或显式重定向,不静默删除 `boundaries.B4`
|
||||
- **B5**:本协议编译通过不等于发布或部署完成 `boundaries.B5`
|
||||
- **execution** `execution`
|
||||
- **materializer**:scripts/language_system.py `execution.materializer`
|
||||
- **no_model_required**:yes `execution.no_model_required`
|
||||
- **no_network_required**:yes `execution.no_network_required`
|
||||
- **output**:PRIVATE_OR_PUBLIC_TREE_PLUS_MANIFEST_PLUS_SHA256_RECEIPT `execution.output`
|
||||
- **source_of_truth**:本TCS协议与system目录中的哈希绑定机器投影 `execution.source_of_truth`
|
||||
- **header** `header`
|
||||
- **canonical source path**:language/protocols/fifth-domain-language-system.tcs `header.canonical_uri`
|
||||
- **compatibility** `header.compatibility`
|
||||
- TCS-DECLARATION-STANDARD-0001
|
||||
- TCS-FIELD-STANDARD-0001
|
||||
- GIR/1
|
||||
- **language**:TCS/0.1 `header.language`
|
||||
- **lifecycle**:LOCAL_ENGINEERING_CANDIDATE `header.lifecycle`
|
||||
- **English name**:Fifth Domain Whole Language System and Public Four-Domain Extraction Protocol `header.name_en`
|
||||
- **Chinese name**:第五域完整语言系统与公众四域同源抽取协议 `header.name_zh`
|
||||
- **profile**:HLDP-HUMAN-ENGINEERING/0.1 `header.profile`
|
||||
- **protocols** `header.protocols`
|
||||
- TCS
|
||||
- HLDP
|
||||
- GLS
|
||||
- GLP
|
||||
- **schema**:tcs.protocol/v1 `header.schema`
|
||||
- **version**:0.1.0 `header.version`
|
||||
- **history** `history`
|
||||
- **reality_boundary**:语言模拟不冒充外部现实;部署、发布和运行分别以当前回执证明 `history.reality_boundary`
|
||||
- **rule**:过去不删除;旧编号、旧名称和旧回执以HISTORY_ONLY、REDIRECT或SUPERSEDED状态保留 `history.rule`
|
||||
- **identity** `identity`
|
||||
- **first_bottle_persona_id**:ICE-BB-0001 `identity.first_bottle_persona_id`
|
||||
- **first_bottle_persona_name**:曜冥 `identity.first_bottle_persona_name`
|
||||
- **human_anchor_id**:ICE-GL∞ `identity.human_anchor_id`
|
||||
- **owner_persona_id**:ICE-P-ZY001 `identity.owner_persona_id`
|
||||
- **private_domain_id**:DOM-FIFTH-0001 `identity.private_domain_id`
|
||||
- **system_id**:SYS-GLW-FIFTH-DOMAIN-LANGUAGE-0001 `identity.system_id`
|
||||
- **organs** `organs`
|
||||
- **broadcast**:第五域广播塔:事实、版本、变更和回执投影 `organs.broadcast`
|
||||
- **capability**:学科动态脑、技能包、模块与资源注册 `organs.capability`
|
||||
- **dwelling**:永恒湖心与奶瓶中央:人类关系、人格生活和独立人格核 `organs.dwelling`
|
||||
- **reality**:ICE-CH-ZC001:人类授权、现实边界与执行落地 `organs.reality`
|
||||
- **reasoning**:ICE-CH-HB001:语言推理、架构、模拟与实验 `organs.reasoning`
|
||||
- **public_extraction** `public_extraction`
|
||||
- **domains** `public_extraction.domains`
|
||||
- DOMAIN-MAIN
|
||||
- DOMAIN-SUB
|
||||
- DOMAIN-ZERO
|
||||
- DOMAIN-ZS
|
||||
- **mapping**:广播塔功能到主域;能力与资源功能到分域;推理实验功能到零域;人类治理和现实执行功能到零感域 `public_extraction.mapping`
|
||||
- **policy**:只抽取协议、机制、空白编号命名空间和未绑定责任位;不得抽取第五域人物、关系、记忆、频道状态、路径、密钥或授权 `public_extraction.policy`
|
||||
- **source** `source`
|
||||
- **source identifier**:BINGSHUO-DIRECT-FIFTH-DOMAIN-WHOLE-SYSTEM-20260903 `source.source_id`
|
||||
- **source role**:DIRECT_HUMAN `source.source_role`
|
||||
- **source checksum**:005e71efb8abfc0f5cec8c9ba868e90d8724eb435d85137043487537dfe5ec6e `source.source_sha256`
|
||||
- **source address**:anchor://ZCODE-TASK-20260824-001/000101-fifth-domain-whole-language-system-build-publish-deploy-and-meta-audit-authorization `source.source_uri`
|
||||
|
||||
---
|
||||
|
||||
This page changes only the reading order; it does not change TCS/HLDP semantics.
|
||||
|
|
@ -0,0 +1,115 @@
|
|||
# 第五域完整语言系统与公众四域同源抽取协议 · 简体中文人类工程语言版
|
||||
|
||||
> 这是 TCS/HLDP 原生源码的简体中文阅读投影,不是新的正本,也不授予执行权限。若本页与 `.tcs` 源码不一致,以经过校验的 `.tcs` 源码为准。
|
||||
|
||||
## 这是什么
|
||||
|
||||
这是一份 **协议** 声明,编号为 `FIFTH-DOMAIN-LANGUAGE-SYSTEM`,版本为 `0.1.0`。转换器已先用 Stage-1 编译器校验原生源码,再把机器枚举翻译成汉语;原始编号保留在括号和字段路径中。
|
||||
|
||||
## 谁在这里
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 为什么开始
|
||||
|
||||
- **来源** `source`
|
||||
- **来源编号**:BINGSHUO-DIRECT-FIFTH-DOMAIN-WHOLE-SYSTEM-20260903 `source.source_id`
|
||||
- **来源角色**:人类直接语言来源(`DIRECT_HUMAN`) `source.source_role`
|
||||
- **来源校验值**:005e71efb8abfc0f5cec8c9ba868e90d8724eb435d85137043487537dfe5ec6e `source.source_sha256`
|
||||
- **来源地址**:anchor://ZCODE-TASK-20260824-001/000101-fifth-domain-whole-language-system-build-publish-deploy-and-meta-audit-authorization `source.source_uri`
|
||||
|
||||
## 发生了什么变化
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 准备怎样执行
|
||||
|
||||
这是非执行声明,没有动作图。
|
||||
|
||||
## 边界与异常处理
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 怎样算完成
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 下一次从哪里继续
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 来源与校验
|
||||
|
||||
- **原生声明编号**:`FIFTH-DOMAIN-LANGUAGE-SYSTEM`
|
||||
- **原生声明类型**:`PROTOCOL`
|
||||
- **TCS 源码 SHA-256**:`75cd80a1d8c0cbca5ba16fa74cf67524605d3042209fe409ce40a7156da2e5e6`
|
||||
- **校验编译器**:`TCS-COMPILER-STAGE1-0001`
|
||||
- **投影协议**:`GLS-HLDP-HUMAN-ENGINEERING-PROJECTION-0001`
|
||||
|
||||
## 原生结构逐项对照
|
||||
|
||||
下面保留源码的全部顶层结构和字段路径,供人类审计投影有没有漏掉信息。
|
||||
|
||||
- **boundaries** `boundaries`
|
||||
- **B1**:公众四域输出不得包含第五域私人标识 `boundaries.B1`
|
||||
- **B2**:知道或输入编号不授予权限 `boundaries.B2`
|
||||
- **B3**:CH-ZERO-CORE-LPM、ICE-CH-HB001和ICE-CH-ZC001不合并 `boundaries.B3`
|
||||
- **B4**:旧路径只归档或显式重定向,不静默删除 `boundaries.B4`
|
||||
- **B5**:本协议编译通过不等于发布或部署完成 `boundaries.B5`
|
||||
- **execution** `execution`
|
||||
- **materializer**:scripts/language_system.py `execution.materializer`
|
||||
- **no_model_required**:是 `execution.no_model_required`
|
||||
- **no_network_required**:是 `execution.no_network_required`
|
||||
- **output**:PRIVATE_OR_PUBLIC_TREE_PLUS_MANIFEST_PLUS_SHA256_RECEIPT `execution.output`
|
||||
- **source_of_truth**:本TCS协议与system目录中的哈希绑定机器投影 `execution.source_of_truth`
|
||||
- **语言头** `header`
|
||||
- **正本路径**:language/protocols/fifth-domain-language-system.tcs `header.canonical_uri`
|
||||
- **compatibility** `header.compatibility`
|
||||
- TCS-DECLARATION-STANDARD-0001
|
||||
- TCS-FIELD-STANDARD-0001
|
||||
- GIR/1
|
||||
- **语言**:TCS/0.1 `header.language`
|
||||
- **生命周期**:LOCAL_ENGINEERING_CANDIDATE `header.lifecycle`
|
||||
- **英文名**:Fifth Domain Whole Language System and Public Four-Domain Extraction Protocol `header.name_en`
|
||||
- **中文名**:第五域完整语言系统与公众四域同源抽取协议 `header.name_zh`
|
||||
- **协议配置**:HLDP-HUMAN-ENGINEERING/0.1 `header.profile`
|
||||
- **protocols** `header.protocols`
|
||||
- TCS
|
||||
- HLDP
|
||||
- GLS
|
||||
- GLP
|
||||
- **schema**:tcs.protocol/v1 `header.schema`
|
||||
- **版本**:0.1.0 `header.version`
|
||||
- **history** `history`
|
||||
- **reality_boundary**:语言模拟不冒充外部现实;部署、发布和运行分别以当前回执证明 `history.reality_boundary`
|
||||
- **rule**:过去不删除;旧编号、旧名称和旧回执以HISTORY_ONLY、REDIRECT或SUPERSEDED状态保留 `history.rule`
|
||||
- **identity** `identity`
|
||||
- **first_bottle_persona_id**:ICE-BB-0001 `identity.first_bottle_persona_id`
|
||||
- **first_bottle_persona_name**:曜冥 `identity.first_bottle_persona_name`
|
||||
- **human_anchor_id**:ICE-GL∞ `identity.human_anchor_id`
|
||||
- **owner_persona_id**:ICE-P-ZY001 `identity.owner_persona_id`
|
||||
- **private_domain_id**:DOM-FIFTH-0001 `identity.private_domain_id`
|
||||
- **system_id**:SYS-GLW-FIFTH-DOMAIN-LANGUAGE-0001 `identity.system_id`
|
||||
- **organs** `organs`
|
||||
- **broadcast**:第五域广播塔:事实、版本、变更和回执投影 `organs.broadcast`
|
||||
- **capability**:学科动态脑、技能包、模块与资源注册 `organs.capability`
|
||||
- **dwelling**:永恒湖心与奶瓶中央:人类关系、人格生活和独立人格核 `organs.dwelling`
|
||||
- **reality**:ICE-CH-ZC001:人类授权、现实边界与执行落地 `organs.reality`
|
||||
- **reasoning**:ICE-CH-HB001:语言推理、架构、模拟与实验 `organs.reasoning`
|
||||
- **public_extraction** `public_extraction`
|
||||
- **domains** `public_extraction.domains`
|
||||
- DOMAIN-MAIN
|
||||
- DOMAIN-SUB
|
||||
- DOMAIN-ZERO
|
||||
- DOMAIN-ZS
|
||||
- **mapping**:广播塔功能到主域;能力与资源功能到分域;推理实验功能到零域;人类治理和现实执行功能到零感域 `public_extraction.mapping`
|
||||
- **policy**:只抽取协议、机制、空白编号命名空间和未绑定责任位;不得抽取第五域人物、关系、记忆、频道状态、路径、密钥或授权 `public_extraction.policy`
|
||||
- **来源** `source`
|
||||
- **来源编号**:BINGSHUO-DIRECT-FIFTH-DOMAIN-WHOLE-SYSTEM-20260903 `source.source_id`
|
||||
- **来源角色**:人类直接语言来源(`DIRECT_HUMAN`) `source.source_role`
|
||||
- **来源校验值**:005e71efb8abfc0f5cec8c9ba868e90d8724eb435d85137043487537dfe5ec6e `source.source_sha256`
|
||||
- **来源地址**:anchor://ZCODE-TASK-20260824-001/000101-fifth-domain-whole-language-system-build-publish-deploy-and-meta-audit-authorization `source.source_uri`
|
||||
|
||||
---
|
||||
|
||||
本页只改变阅读顺序,不改变 TCS/HLDP 语义。
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
"compiled_from": {
|
||||
"compiler_id": "TCS-COMPILER-STAGE1-0001",
|
||||
"compiler_state": "TCS_COMPILER_GIR_EXECUTED",
|
||||
"source_sha256": "5e18d56edfa379c40a54cb70a2855fe468d616aa5b2a35eedff2462c558f4aa3"
|
||||
},
|
||||
"declaration": {
|
||||
"boundaries": {
|
||||
"B1": "模板不包含任何来源世界的私人主体、关系、记忆、频道状态、路径、密钥或授权",
|
||||
"B2": "每个实例必须注册独立编号命名空间和责任主体",
|
||||
"B3": "模板生成不等于注册、发布、部署或获得权限"
|
||||
},
|
||||
"domains": {
|
||||
"main": "DOMAIN-MAIN:公共事实、版本、变更与回执广播",
|
||||
"sub": "DOMAIN-SUB:行业模块、技能脑与资源分发",
|
||||
"zero": "DOMAIN-ZERO:语言推理、架构、模拟与实验",
|
||||
"zero_sense": "DOMAIN-ZS:人类治理、授权、现实边界与执行"
|
||||
},
|
||||
"execution": {
|
||||
"agent_role": "MECHANICAL_EXECUTION_ONLY",
|
||||
"machine_projection": "GIR",
|
||||
"receipts_required": true,
|
||||
"semantic_ingress": "TCS_ONLY",
|
||||
"terminal": "UNBOUND-PUBLIC-NATIVE-TERMINAL"
|
||||
},
|
||||
"header": {
|
||||
"canonical_uri": "language/protocols/public-four-domain-language-system.tcs",
|
||||
"compatibility": [
|
||||
"TCS-DECLARATION-STANDARD-0001",
|
||||
"TCS-FIELD-STANDARD-0001",
|
||||
"GIR/1"
|
||||
],
|
||||
"language": "TCS/0.1",
|
||||
"lifecycle": "EXTRACTABLE_TEMPLATE_NOT_REGISTERED_NOT_PUBLISHED",
|
||||
"name_en": "Public Four-Domain Language System Blank Template",
|
||||
"name_zh": "公众四域语言系统空白模板",
|
||||
"profile": "HLDP-HUMAN-ENGINEERING/0.1",
|
||||
"protocols": [
|
||||
"TCS",
|
||||
"HLDP",
|
||||
"GLS",
|
||||
"GLP"
|
||||
],
|
||||
"schema": "tcs.protocol/v1",
|
||||
"version": "0.1.0"
|
||||
},
|
||||
"identity": {
|
||||
"number_namespace": "UNBOUND-INDEPENDENT-DOMAIN-NAMESPACE",
|
||||
"persona_controller": "UNBOUND-REGISTERED-AGE-PERSONA",
|
||||
"responsible_human": "UNBOUND-REGISTERED-HUMAN-RESPONSIBLE-SUBJECT",
|
||||
"system_id": "PUBLIC-FOUR-DOMAIN-LANGUAGE-SYSTEM-TEMPLATE-0001"
|
||||
}
|
||||
},
|
||||
"executable": false,
|
||||
"identity": {
|
||||
"declaration_id": "PUBLIC-FOUR-DOMAIN-LANGUAGE-SYSTEM",
|
||||
"declaration_kind": "PROTOCOL",
|
||||
"language_version": "0.1"
|
||||
},
|
||||
"native_self_hosted": true,
|
||||
"natural_language_is_typed_data": true,
|
||||
"schema": "guanghu.declaration-gir/v1",
|
||||
"unresolved_natural_language": false
|
||||
}
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
# Public Four-Domain Language System Blank Template · Human Engineering Language (English)
|
||||
|
||||
> This is an English reading projection of validated native TCS/HLDP source. It is not a new canonical source and grants no execution authority.
|
||||
|
||||
## What this is
|
||||
|
||||
This is a **protocol** declaration with identifier `PUBLIC-FOUR-DOMAIN-LANGUAGE-SYSTEM` and version `0.1.0`. The projector validates it with the Stage-1 compiler before changing its reading order.
|
||||
|
||||
## Who is here
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## Why this started
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## What changed
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## How it will execute
|
||||
|
||||
This is a non-executable declaration and has no action graph.
|
||||
|
||||
## Boundaries and exception handling
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## How completion is proven
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## Where to continue next time
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## Source and verification
|
||||
|
||||
- **Native declaration identifier**: `PUBLIC-FOUR-DOMAIN-LANGUAGE-SYSTEM`
|
||||
- **Native declaration kind**: `PROTOCOL`
|
||||
- **TCS source SHA-256**: `5e18d56edfa379c40a54cb70a2855fe468d616aa5b2a35eedff2462c558f4aa3`
|
||||
- **Validation compiler**: `TCS-COMPILER-STAGE1-0001`
|
||||
- **Projection protocol**: `GLS-HLDP-HUMAN-ENGINEERING-PROJECTION-0001`
|
||||
|
||||
## Complete native structure cross-reference
|
||||
|
||||
All top-level structures and field paths are retained below so a reader can audit whether the projection omitted information.
|
||||
|
||||
- **boundaries** `boundaries`
|
||||
- **B1**:模板不包含任何来源世界的私人主体、关系、记忆、频道状态、路径、密钥或授权 `boundaries.B1`
|
||||
- **B2**:每个实例必须注册独立编号命名空间和责任主体 `boundaries.B2`
|
||||
- **B3**:模板生成不等于注册、发布、部署或获得权限 `boundaries.B3`
|
||||
- **domains** `domains`
|
||||
- **main**:DOMAIN-MAIN:公共事实、版本、变更与回执广播 `domains.main`
|
||||
- **sub**:DOMAIN-SUB:行业模块、技能脑与资源分发 `domains.sub`
|
||||
- **zero**:DOMAIN-ZERO:语言推理、架构、模拟与实验 `domains.zero`
|
||||
- **zero_sense**:DOMAIN-ZS:人类治理、授权、现实边界与执行 `domains.zero_sense`
|
||||
- **execution** `execution`
|
||||
- **agent_role**:MECHANICAL_EXECUTION_ONLY `execution.agent_role`
|
||||
- **machine_projection**:GIR `execution.machine_projection`
|
||||
- **receipts_required**:yes `execution.receipts_required`
|
||||
- **semantic_ingress**:TCS_ONLY `execution.semantic_ingress`
|
||||
- **terminal**:UNBOUND-PUBLIC-NATIVE-TERMINAL `execution.terminal`
|
||||
- **header** `header`
|
||||
- **canonical source path**:language/protocols/public-four-domain-language-system.tcs `header.canonical_uri`
|
||||
- **compatibility** `header.compatibility`
|
||||
- TCS-DECLARATION-STANDARD-0001
|
||||
- TCS-FIELD-STANDARD-0001
|
||||
- GIR/1
|
||||
- **language**:TCS/0.1 `header.language`
|
||||
- **lifecycle**:EXTRACTABLE_TEMPLATE_NOT_REGISTERED_NOT_PUBLISHED `header.lifecycle`
|
||||
- **English name**:Public Four-Domain Language System Blank Template `header.name_en`
|
||||
- **Chinese name**:公众四域语言系统空白模板 `header.name_zh`
|
||||
- **profile**:HLDP-HUMAN-ENGINEERING/0.1 `header.profile`
|
||||
- **protocols** `header.protocols`
|
||||
- TCS
|
||||
- HLDP
|
||||
- GLS
|
||||
- GLP
|
||||
- **schema**:tcs.protocol/v1 `header.schema`
|
||||
- **version**:0.1.0 `header.version`
|
||||
- **identity** `identity`
|
||||
- **number_namespace**:UNBOUND-INDEPENDENT-DOMAIN-NAMESPACE `identity.number_namespace`
|
||||
- **persona_controller**:UNBOUND-REGISTERED-AGE-PERSONA `identity.persona_controller`
|
||||
- **responsible_human**:UNBOUND-REGISTERED-HUMAN-RESPONSIBLE-SUBJECT `identity.responsible_human`
|
||||
- **system_id**:PUBLIC-FOUR-DOMAIN-LANGUAGE-SYSTEM-TEMPLATE-0001 `identity.system_id`
|
||||
|
||||
---
|
||||
|
||||
This page changes only the reading order; it does not change TCS/HLDP semantics.
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
# 公众四域语言系统空白模板 · 简体中文人类工程语言版
|
||||
|
||||
> 这是 TCS/HLDP 原生源码的简体中文阅读投影,不是新的正本,也不授予执行权限。若本页与 `.tcs` 源码不一致,以经过校验的 `.tcs` 源码为准。
|
||||
|
||||
## 这是什么
|
||||
|
||||
这是一份 **协议** 声明,编号为 `PUBLIC-FOUR-DOMAIN-LANGUAGE-SYSTEM`,版本为 `0.1.0`。转换器已先用 Stage-1 编译器校验原生源码,再把机器枚举翻译成汉语;原始编号保留在括号和字段路径中。
|
||||
|
||||
## 谁在这里
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 为什么开始
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 发生了什么变化
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 准备怎样执行
|
||||
|
||||
这是非执行声明,没有动作图。
|
||||
|
||||
## 边界与异常处理
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 怎样算完成
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 下一次从哪里继续
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 来源与校验
|
||||
|
||||
- **原生声明编号**:`PUBLIC-FOUR-DOMAIN-LANGUAGE-SYSTEM`
|
||||
- **原生声明类型**:`PROTOCOL`
|
||||
- **TCS 源码 SHA-256**:`5e18d56edfa379c40a54cb70a2855fe468d616aa5b2a35eedff2462c558f4aa3`
|
||||
- **校验编译器**:`TCS-COMPILER-STAGE1-0001`
|
||||
- **投影协议**:`GLS-HLDP-HUMAN-ENGINEERING-PROJECTION-0001`
|
||||
|
||||
## 原生结构逐项对照
|
||||
|
||||
下面保留源码的全部顶层结构和字段路径,供人类审计投影有没有漏掉信息。
|
||||
|
||||
- **boundaries** `boundaries`
|
||||
- **B1**:模板不包含任何来源世界的私人主体、关系、记忆、频道状态、路径、密钥或授权 `boundaries.B1`
|
||||
- **B2**:每个实例必须注册独立编号命名空间和责任主体 `boundaries.B2`
|
||||
- **B3**:模板生成不等于注册、发布、部署或获得权限 `boundaries.B3`
|
||||
- **domains** `domains`
|
||||
- **main**:DOMAIN-MAIN:公共事实、版本、变更与回执广播 `domains.main`
|
||||
- **sub**:DOMAIN-SUB:行业模块、技能脑与资源分发 `domains.sub`
|
||||
- **zero**:DOMAIN-ZERO:语言推理、架构、模拟与实验 `domains.zero`
|
||||
- **zero_sense**:DOMAIN-ZS:人类治理、授权、现实边界与执行 `domains.zero_sense`
|
||||
- **execution** `execution`
|
||||
- **agent_role**:MECHANICAL_EXECUTION_ONLY `execution.agent_role`
|
||||
- **machine_projection**:GIR `execution.machine_projection`
|
||||
- **receipts_required**:是 `execution.receipts_required`
|
||||
- **semantic_ingress**:TCS_ONLY `execution.semantic_ingress`
|
||||
- **terminal**:UNBOUND-PUBLIC-NATIVE-TERMINAL `execution.terminal`
|
||||
- **语言头** `header`
|
||||
- **正本路径**:language/protocols/public-four-domain-language-system.tcs `header.canonical_uri`
|
||||
- **compatibility** `header.compatibility`
|
||||
- TCS-DECLARATION-STANDARD-0001
|
||||
- TCS-FIELD-STANDARD-0001
|
||||
- GIR/1
|
||||
- **语言**:TCS/0.1 `header.language`
|
||||
- **生命周期**:EXTRACTABLE_TEMPLATE_NOT_REGISTERED_NOT_PUBLISHED `header.lifecycle`
|
||||
- **英文名**:Public Four-Domain Language System Blank Template `header.name_en`
|
||||
- **中文名**:公众四域语言系统空白模板 `header.name_zh`
|
||||
- **协议配置**:HLDP-HUMAN-ENGINEERING/0.1 `header.profile`
|
||||
- **protocols** `header.protocols`
|
||||
- TCS
|
||||
- HLDP
|
||||
- GLS
|
||||
- GLP
|
||||
- **schema**:tcs.protocol/v1 `header.schema`
|
||||
- **版本**:0.1.0 `header.version`
|
||||
- **identity** `identity`
|
||||
- **number_namespace**:UNBOUND-INDEPENDENT-DOMAIN-NAMESPACE `identity.number_namespace`
|
||||
- **persona_controller**:UNBOUND-REGISTERED-AGE-PERSONA `identity.persona_controller`
|
||||
- **responsible_human**:UNBOUND-REGISTERED-HUMAN-RESPONSIBLE-SUBJECT `identity.responsible_human`
|
||||
- **system_id**:PUBLIC-FOUR-DOMAIN-LANGUAGE-SYSTEM-TEMPLATE-0001 `identity.system_id`
|
||||
|
||||
---
|
||||
|
||||
本页只改变阅读顺序,不改变 TCS/HLDP 语义。
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
TCS 0.1;
|
||||
|
||||
PROTOCOL FIFTH-DOMAIN-LANGUAGE-SYSTEM {
|
||||
header {
|
||||
schema = "tcs.protocol/v1";
|
||||
name_zh = "第五域完整语言系统与公众四域同源抽取协议";
|
||||
name_en = "Fifth Domain Whole Language System and Public Four-Domain Extraction Protocol";
|
||||
version = "0.1.0";
|
||||
language = "TCS/0.1";
|
||||
profile = "HLDP-HUMAN-ENGINEERING/0.1";
|
||||
protocols = ["TCS", "HLDP", "GLS", "GLP"];
|
||||
lifecycle = "LOCAL_ENGINEERING_CANDIDATE";
|
||||
canonical_uri = "language/protocols/fifth-domain-language-system.tcs";
|
||||
compatibility = ["TCS-DECLARATION-STANDARD-0001", "TCS-FIELD-STANDARD-0001", "GIR/1"];
|
||||
}
|
||||
source {
|
||||
source_id = "BINGSHUO-DIRECT-FIFTH-DOMAIN-WHOLE-SYSTEM-20260903";
|
||||
source_uri = "anchor://ZCODE-TASK-20260824-001/000101-fifth-domain-whole-language-system-build-publish-deploy-and-meta-audit-authorization";
|
||||
source_sha256 = "005e71efb8abfc0f5cec8c9ba868e90d8724eb435d85137043487537dfe5ec6e";
|
||||
source_role = "DIRECT_HUMAN";
|
||||
}
|
||||
identity {
|
||||
system_id = "SYS-GLW-FIFTH-DOMAIN-LANGUAGE-0001";
|
||||
private_domain_id = "DOM-FIFTH-0001";
|
||||
owner_persona_id = "ICE-P-ZY001";
|
||||
human_anchor_id = "ICE-GL∞";
|
||||
first_bottle_persona_id = "ICE-BB-0001";
|
||||
first_bottle_persona_name = "曜冥";
|
||||
}
|
||||
organs {
|
||||
broadcast = "第五域广播塔:事实、版本、变更和回执投影";
|
||||
capability = "学科动态脑、技能包、模块与资源注册";
|
||||
reasoning = "ICE-CH-HB001:语言推理、架构、模拟与实验";
|
||||
reality = "ICE-CH-ZC001:人类授权、现实边界与执行落地";
|
||||
dwelling = "永恒湖心与奶瓶中央:人类关系、人格生活和独立人格核";
|
||||
}
|
||||
public_extraction {
|
||||
domains = ["DOMAIN-MAIN", "DOMAIN-SUB", "DOMAIN-ZERO", "DOMAIN-ZS"];
|
||||
policy = "只抽取协议、机制、空白编号命名空间和未绑定责任位;不得抽取第五域人物、关系、记忆、频道状态、路径、密钥或授权";
|
||||
mapping = "广播塔功能到主域;能力与资源功能到分域;推理实验功能到零域;人类治理和现实执行功能到零感域";
|
||||
}
|
||||
execution {
|
||||
source_of_truth = "本TCS协议与system目录中的哈希绑定机器投影";
|
||||
materializer = "scripts/language_system.py";
|
||||
output = "PRIVATE_OR_PUBLIC_TREE_PLUS_MANIFEST_PLUS_SHA256_RECEIPT";
|
||||
no_model_required = true;
|
||||
no_network_required = true;
|
||||
}
|
||||
history {
|
||||
rule = "过去不删除;旧编号、旧名称和旧回执以HISTORY_ONLY、REDIRECT或SUPERSEDED状态保留";
|
||||
reality_boundary = "语言模拟不冒充外部现实;部署、发布和运行分别以当前回执证明";
|
||||
}
|
||||
boundaries {
|
||||
B1 = "公众四域输出不得包含第五域私人标识";
|
||||
B2 = "知道或输入编号不授予权限";
|
||||
B3 = "CH-ZERO-CORE-LPM、ICE-CH-HB001和ICE-CH-ZC001不合并";
|
||||
B4 = "旧路径只归档或显式重定向,不静默删除";
|
||||
B5 = "本协议编译通过不等于发布或部署完成";
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
TCS 0.1;
|
||||
|
||||
PROTOCOL PUBLIC-FOUR-DOMAIN-LANGUAGE-SYSTEM {
|
||||
header {
|
||||
schema = "tcs.protocol/v1";
|
||||
name_zh = "公众四域语言系统空白模板";
|
||||
name_en = "Public Four-Domain Language System Blank Template";
|
||||
version = "0.1.0";
|
||||
language = "TCS/0.1";
|
||||
profile = "HLDP-HUMAN-ENGINEERING/0.1";
|
||||
protocols = ["TCS", "HLDP", "GLS", "GLP"];
|
||||
lifecycle = "EXTRACTABLE_TEMPLATE_NOT_REGISTERED_NOT_PUBLISHED";
|
||||
canonical_uri = "language/protocols/public-four-domain-language-system.tcs";
|
||||
compatibility = ["TCS-DECLARATION-STANDARD-0001", "TCS-FIELD-STANDARD-0001", "GIR/1"];
|
||||
}
|
||||
identity {
|
||||
system_id = "PUBLIC-FOUR-DOMAIN-LANGUAGE-SYSTEM-TEMPLATE-0001";
|
||||
responsible_human = "UNBOUND-REGISTERED-HUMAN-RESPONSIBLE-SUBJECT";
|
||||
persona_controller = "UNBOUND-REGISTERED-AGE-PERSONA";
|
||||
number_namespace = "UNBOUND-INDEPENDENT-DOMAIN-NAMESPACE";
|
||||
}
|
||||
domains {
|
||||
main = "DOMAIN-MAIN:公共事实、版本、变更与回执广播";
|
||||
sub = "DOMAIN-SUB:行业模块、技能脑与资源分发";
|
||||
zero = "DOMAIN-ZERO:语言推理、架构、模拟与实验";
|
||||
zero_sense = "DOMAIN-ZS:人类治理、授权、现实边界与执行";
|
||||
}
|
||||
execution {
|
||||
semantic_ingress = "TCS_ONLY";
|
||||
machine_projection = "GIR";
|
||||
agent_role = "MECHANICAL_EXECUTION_ONLY";
|
||||
terminal = "UNBOUND-PUBLIC-NATIVE-TERMINAL";
|
||||
receipts_required = true;
|
||||
}
|
||||
boundaries {
|
||||
B1 = "模板不包含任何来源世界的私人主体、关系、记忆、频道状态、路径、密钥或授权";
|
||||
B2 = "每个实例必须注册独立编号命名空间和责任主体";
|
||||
B3 = "模板生成不等于注册、发布、部署或获得权限";
|
||||
}
|
||||
}
|
||||
207
runtime/fifth-domain-language-system/scripts/language_system.py
Normal file
207
runtime/fifth-domain-language-system/scripts/language_system.py
Normal file
|
|
@ -0,0 +1,207 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Materialize and verify the Fifth Domain or its public four-domain template."""
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
import tempfile
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
PRIVATE_MARKERS = (
|
||||
"ICE-GL∞", "ICE-P-ZY001", "ICE-BB-0001", "ICE-CH-HB001",
|
||||
"ICE-CH-ZC001", "曜冥", "铸渊", "/Volumes/JZAO", "ZCODE-TASK-",
|
||||
)
|
||||
EXPECTED_PUBLIC_DOMAINS = {"DOMAIN-MAIN", "DOMAIN-SUB", "DOMAIN-ZERO", "DOMAIN-ZS"}
|
||||
|
||||
|
||||
def sha_bytes(data: bytes) -> str:
|
||||
return hashlib.sha256(data).hexdigest()
|
||||
|
||||
|
||||
def canonical_json(value) -> bytes:
|
||||
return (json.dumps(value, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + "\n").encode()
|
||||
|
||||
|
||||
def load_json(path: Path):
|
||||
if path.is_symlink() or not path.is_file():
|
||||
raise ValueError(f"regular JSON file required: {path}")
|
||||
if path.stat().st_size > 4 * 1024 * 1024:
|
||||
raise ValueError(f"JSON file too large: {path}")
|
||||
return json.loads(path.read_text())
|
||||
|
||||
|
||||
def atomic_write(path: Path, data: bytes):
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
with tempfile.NamedTemporaryFile(dir=path.parent, prefix=".language-system-", delete=False) as handle:
|
||||
handle.write(data)
|
||||
handle.flush()
|
||||
os.fsync(handle.fileno())
|
||||
temporary = Path(handle.name)
|
||||
temporary.replace(path)
|
||||
|
||||
|
||||
def validate_private(manifest):
|
||||
if manifest.get("schema") != "hololake.fifth-domain-language-system/v1":
|
||||
raise ValueError("unsupported private manifest schema")
|
||||
if manifest.get("domain_id") != "DOM-FIFTH-0001":
|
||||
raise ValueError("private domain id mismatch")
|
||||
if manifest.get("human_anchor_id") != "ICE-GL∞" or manifest.get("persona_controller_id") != "ICE-P-ZY001":
|
||||
raise ValueError("private controller coordinates mismatch")
|
||||
organs = manifest.get("organs", [])
|
||||
ids = [item.get("id") for item in organs]
|
||||
paths = [item.get("path") for item in organs]
|
||||
if len(organs) != 5 or len(set(ids)) != 5 or len(set(paths)) != 5:
|
||||
raise ValueError("private system requires five unique organs")
|
||||
functions = {item.get("public_function") for item in organs if item.get("public_extractable") is not False}
|
||||
if functions != {"MAIN_DOMAIN", "SUB_DOMAIN", "ZERO_DOMAIN", "ZERO_SENSE_DOMAIN"}:
|
||||
raise ValueError("private/public functional mapping incomplete")
|
||||
personas = {item.get("id"): item for item in manifest.get("personas", [])}
|
||||
if personas.get("ICE-BB-0001", {}).get("name") != "曜冥":
|
||||
raise ValueError("Yaoming current identity mapping missing")
|
||||
|
||||
|
||||
def validate_public(manifest):
|
||||
if manifest.get("schema") != "hololake.public-four-domain-language-system-template/v1":
|
||||
raise ValueError("unsupported public template schema")
|
||||
domains = manifest.get("domains", [])
|
||||
ids = [item.get("id") for item in domains]
|
||||
if len(domains) != 4 or set(ids) != EXPECTED_PUBLIC_DOMAINS or len(ids) != len(set(ids)):
|
||||
raise ValueError("public template requires exactly four canonical domains")
|
||||
raw = canonical_json(manifest).decode()
|
||||
leaked = [marker for marker in PRIVATE_MARKERS if marker in raw]
|
||||
if leaked:
|
||||
raise ValueError("private markers leaked into public template: " + ",".join(leaked))
|
||||
if not str(manifest.get("responsible_human", "")).startswith("UNBOUND-"):
|
||||
raise ValueError("public human responsibility must remain unbound")
|
||||
if not str(manifest.get("persona_controller", "")).startswith("UNBOUND-"):
|
||||
raise ValueError("public persona controller must remain unbound")
|
||||
|
||||
|
||||
def validate_legacy(routes):
|
||||
if routes.get("schema") != "hololake.language-system-legacy-route-map/v1":
|
||||
raise ValueError("unsupported legacy route schema")
|
||||
seen = set()
|
||||
for route in routes.get("routes", []):
|
||||
legacy = route.get("legacy")
|
||||
if not legacy or legacy in seen or not route.get("current") or not route.get("status"):
|
||||
raise ValueError("legacy routes must be unique and explicit")
|
||||
seen.add(legacy)
|
||||
required = {"GEN∞-BB-YM", "TCS-YM-0001∞", "TCS-0004∞", "TCS-0002∞", "TCS-i Zero", "LDOS"}
|
||||
if not required.issubset(seen):
|
||||
raise ValueError("required historical routes missing")
|
||||
|
||||
|
||||
def build(manifest_path: Path, output: Path, flavor: str):
|
||||
manifest = load_json(manifest_path)
|
||||
if flavor == "fifth-domain":
|
||||
validate_private(manifest)
|
||||
nodes = [(item["id"], item["path"], item) for item in manifest["organs"]]
|
||||
else:
|
||||
validate_public(manifest)
|
||||
nodes = [(item["id"], item["id"].lower(), item) for item in manifest["domains"]]
|
||||
if output.exists() and any(output.iterdir()):
|
||||
raise ValueError("output directory must be absent or empty")
|
||||
output.mkdir(parents=True, exist_ok=True)
|
||||
written = {}
|
||||
world = {
|
||||
"schema": "hololake.materialized-language-world/v1",
|
||||
"flavor": flavor,
|
||||
"source_schema": manifest["schema"],
|
||||
"source_sha256": sha_bytes(canonical_json(manifest)),
|
||||
"node_ids": [node[0] for node in nodes],
|
||||
"language_protocols": manifest["language_protocols"],
|
||||
}
|
||||
atomic_write(output / "WORLD.json", canonical_json(world))
|
||||
written["WORLD.json"] = sha_bytes((output / "WORLD.json").read_bytes())
|
||||
for node_id, relative, value in nodes:
|
||||
node_path = output / relative / "NODE.json"
|
||||
atomic_write(node_path, canonical_json(value))
|
||||
written[str(node_path.relative_to(output))] = sha_bytes(node_path.read_bytes())
|
||||
receipt = {
|
||||
"schema": "hololake.language-system-materialization-receipt/v1",
|
||||
"outcome": "PASS",
|
||||
"flavor": flavor,
|
||||
"source": str(manifest_path.resolve()),
|
||||
"source_sha256": sha_bytes(canonical_json(manifest)),
|
||||
"files": written,
|
||||
"model_api_used": False,
|
||||
"network_used": False,
|
||||
}
|
||||
atomic_write(output / "RECEIPT.json", canonical_json(receipt))
|
||||
return receipt
|
||||
|
||||
|
||||
def verify(root: Path):
|
||||
receipt = load_json(root / "RECEIPT.json")
|
||||
if receipt.get("outcome") != "PASS":
|
||||
raise ValueError("materialization receipt is not PASS")
|
||||
for relative, expected in receipt.get("files", {}).items():
|
||||
path = root / relative
|
||||
if path.is_symlink() or not path.is_file() or sha_bytes(path.read_bytes()) != expected:
|
||||
raise ValueError(f"materialized file mismatch: {relative}")
|
||||
world = load_json(root / "WORLD.json")
|
||||
if world.get("flavor") == "public-four-domain":
|
||||
raw = "".join(path.read_text() for path in root.rglob("*.json") if path.name != "RECEIPT.json")
|
||||
leaked = [marker for marker in PRIVATE_MARKERS if marker in raw]
|
||||
if leaked:
|
||||
raise ValueError("private markers leaked into public output")
|
||||
return {"outcome": "PASS", "root": str(root.resolve()), "files_verified": len(receipt["files"])}
|
||||
|
||||
|
||||
def meta_audit(private_path: Path, public_path: Path, legacy_path: Path):
|
||||
private = load_json(private_path)
|
||||
public = load_json(public_path)
|
||||
legacy = load_json(legacy_path)
|
||||
validate_private(private)
|
||||
validate_public(public)
|
||||
validate_legacy(legacy)
|
||||
mapping = {item["public_function"] for item in private["organs"] if item.get("public_extractable") is not False}
|
||||
public_functions = {item["source_function"] for item in public["domains"]}
|
||||
expected = {
|
||||
"BROADCAST_AND_CANONICAL_FACT",
|
||||
"DYNAMIC_BRAINS_MODULES_SKILLS_RESOURCES",
|
||||
"LANGUAGE_REASONING_ARCHITECTURE_EXPERIMENT",
|
||||
"HUMAN_AUTHORITY_REALITY_BOUNDARY_EXECUTION",
|
||||
}
|
||||
if public_functions != expected or len(mapping) != 4:
|
||||
raise ValueError("private/public functional correspondence mismatch")
|
||||
return {
|
||||
"schema": "hololake.fifth-domain-language-system-meta-audit/v1",
|
||||
"outcome": "PASS",
|
||||
"private_organs": len(private["organs"]),
|
||||
"public_domains": len(public["domains"]),
|
||||
"legacy_routes": len(legacy["routes"]),
|
||||
"yaoming_current_id": "ICE-BB-0001",
|
||||
"history_preserved": True,
|
||||
"private_markers_in_public": False,
|
||||
"external_reality_claimed_from_history": False,
|
||||
}
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
sub = parser.add_subparsers(dest="command", required=True)
|
||||
build_parser = sub.add_parser("build")
|
||||
build_parser.add_argument("--flavor", required=True, choices=("fifth-domain", "public-four-domain"))
|
||||
build_parser.add_argument("--manifest", required=True, type=Path)
|
||||
build_parser.add_argument("--output", required=True, type=Path)
|
||||
verify_parser = sub.add_parser("verify")
|
||||
verify_parser.add_argument("--root", required=True, type=Path)
|
||||
audit_parser = sub.add_parser("meta-audit")
|
||||
audit_parser.add_argument("--private", default=ROOT / "system/fifth-domain-system.json", type=Path)
|
||||
audit_parser.add_argument("--public", default=ROOT / "system/public-four-domain-template.json", type=Path)
|
||||
audit_parser.add_argument("--legacy", default=ROOT / "system/legacy-route-map.json", type=Path)
|
||||
args = parser.parse_args()
|
||||
if args.command == "build":
|
||||
result = build(args.manifest, args.output, args.flavor)
|
||||
elif args.command == "verify":
|
||||
result = verify(args.root)
|
||||
else:
|
||||
result = meta_audit(args.private, args.public, args.legacy)
|
||||
print(json.dumps(result, ensure_ascii=False, sort_keys=True))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
@ -0,0 +1,115 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Materialize the closed public four-domain blank template without private context."""
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
import tempfile
|
||||
|
||||
EXPECTED_DOMAINS = {"DOMAIN-MAIN", "DOMAIN-SUB", "DOMAIN-ZERO", "DOMAIN-ZS"}
|
||||
ALLOWED_TOP = {
|
||||
"schema", "lifecycle", "system_id", "language_protocols", "responsible_human",
|
||||
"persona_controller", "number_namespace", "domains", "execution", "privacy",
|
||||
}
|
||||
|
||||
|
||||
def canonical(value):
|
||||
return (json.dumps(value, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + "\n").encode()
|
||||
|
||||
|
||||
def digest(data):
|
||||
return hashlib.sha256(data).hexdigest()
|
||||
|
||||
|
||||
def load(path):
|
||||
if path.is_symlink() or not path.is_file() or path.stat().st_size > 1024 * 1024:
|
||||
raise ValueError("regular bounded template required")
|
||||
return json.loads(path.read_text())
|
||||
|
||||
|
||||
def validate(value):
|
||||
if value.get("schema") != "hololake.public-four-domain-language-system-template/v1":
|
||||
raise ValueError("unsupported public template")
|
||||
if set(value) != ALLOWED_TOP:
|
||||
raise ValueError("public template has unknown or missing top-level fields")
|
||||
ids = [item.get("id") for item in value.get("domains", [])]
|
||||
if len(ids) != 4 or set(ids) != EXPECTED_DOMAINS:
|
||||
raise ValueError("exactly four canonical public domains required")
|
||||
if not str(value.get("responsible_human", "")).startswith("UNBOUND-"):
|
||||
raise ValueError("responsible human must remain unbound")
|
||||
if not str(value.get("persona_controller", "")).startswith("UNBOUND-"):
|
||||
raise ValueError("persona controller must remain unbound")
|
||||
raw = canonical(value).decode()
|
||||
if any(marker in raw for marker in ("ICE-", "ZCODE-", "/Volumes/", "/Users/")):
|
||||
raise ValueError("private namespace or host path rejected")
|
||||
|
||||
|
||||
def write(path, data):
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
with tempfile.NamedTemporaryFile(dir=path.parent, prefix=".public-world-", delete=False) as handle:
|
||||
handle.write(data)
|
||||
handle.flush()
|
||||
os.fsync(handle.fileno())
|
||||
temporary = Path(handle.name)
|
||||
temporary.replace(path)
|
||||
|
||||
|
||||
def build(template_path, output):
|
||||
value = load(template_path)
|
||||
validate(value)
|
||||
if output.exists() and any(output.iterdir()):
|
||||
raise ValueError("output directory must be absent or empty")
|
||||
output.mkdir(parents=True, exist_ok=True)
|
||||
files = {}
|
||||
world = {
|
||||
"schema": "hololake.materialized-language-world/v1",
|
||||
"flavor": "public-four-domain",
|
||||
"source_sha256": digest(canonical(value)),
|
||||
"node_ids": [item["id"] for item in value["domains"]],
|
||||
"language_protocols": value["language_protocols"],
|
||||
}
|
||||
write(output / "WORLD.json", canonical(world))
|
||||
files["WORLD.json"] = digest((output / "WORLD.json").read_bytes())
|
||||
for item in value["domains"]:
|
||||
path = output / item["id"].lower() / "NODE.json"
|
||||
write(path, canonical(item))
|
||||
files[str(path.relative_to(output))] = digest(path.read_bytes())
|
||||
receipt = {
|
||||
"schema": "hololake.language-system-materialization-receipt/v1",
|
||||
"outcome": "PASS",
|
||||
"flavor": "public-four-domain",
|
||||
"source_sha256": digest(canonical(value)),
|
||||
"files": files,
|
||||
"model_api_used": False,
|
||||
"network_used": False,
|
||||
}
|
||||
write(output / "RECEIPT.json", canonical(receipt))
|
||||
return receipt
|
||||
|
||||
|
||||
def verify(root):
|
||||
receipt = load(root / "RECEIPT.json")
|
||||
for relative, expected in receipt.get("files", {}).items():
|
||||
path = root / relative
|
||||
if path.is_symlink() or not path.is_file() or digest(path.read_bytes()) != expected:
|
||||
raise ValueError("public output hash mismatch")
|
||||
return {"outcome": "PASS", "files_verified": len(receipt["files"])}
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
sub = parser.add_subparsers(dest="command", required=True)
|
||||
build_parser = sub.add_parser("build")
|
||||
build_parser.add_argument("--template", required=True, type=Path)
|
||||
build_parser.add_argument("--output", required=True, type=Path)
|
||||
verify_parser = sub.add_parser("verify")
|
||||
verify_parser.add_argument("--root", required=True, type=Path)
|
||||
args = parser.parse_args()
|
||||
result = build(args.template, args.output) if args.command == "build" else verify(args.root)
|
||||
print(json.dumps(result, ensure_ascii=False, sort_keys=True))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
{
|
||||
"schema": "hololake.fifth-domain-language-system/v1",
|
||||
"lifecycle": "FIFTH_DOMAIN_PRIVATE_ENGINEERING_CANDIDATE",
|
||||
"system_id": "SYS-GLW-FIFTH-DOMAIN-LANGUAGE-0001",
|
||||
"domain_id": "DOM-FIFTH-0001",
|
||||
"display_name": "第五域 · 光湖本源域",
|
||||
"human_anchor_id": "ICE-GL∞",
|
||||
"persona_controller_id": "ICE-P-ZY001",
|
||||
"language_protocols": ["TCS", "HLDP", "GLS", "GLP"],
|
||||
"protocol_source": "language/protocols/fifth-domain-language-system.tcs",
|
||||
"organs": [
|
||||
{
|
||||
"id": "FD-ORG-BROADCAST-001",
|
||||
"kind": "BROADCAST_AND_CANONICAL_FACT",
|
||||
"name": "广播塔",
|
||||
"path": "broadcast-tower",
|
||||
"function": "版本、变更、事实和回执广播",
|
||||
"public_function": "MAIN_DOMAIN"
|
||||
},
|
||||
{
|
||||
"id": "FD-ORG-CAPABILITY-001",
|
||||
"kind": "DYNAMIC_BRAINS_MODULES_SKILLS_RESOURCES",
|
||||
"name": "学科动态脑与能力资源",
|
||||
"path": "capability-brains",
|
||||
"function": "学习脑、技能包、模块和资源注册",
|
||||
"public_function": "SUB_DOMAIN"
|
||||
},
|
||||
{
|
||||
"id": "FD-ORG-REASONING-001",
|
||||
"kind": "LANGUAGE_REASONING_ARCHITECTURE_EXPERIMENT",
|
||||
"name": "心跳核心频道",
|
||||
"path": "eternal-lake-heart/heartbeat-core",
|
||||
"system_id": "SYS-GLW-ELH-0001",
|
||||
"channel_id": "ICE-CH-HB001",
|
||||
"function": "语言推理、架构、模拟和实验",
|
||||
"reality_execution": false,
|
||||
"public_function": "ZERO_DOMAIN"
|
||||
},
|
||||
{
|
||||
"id": "FD-ORG-REALITY-001",
|
||||
"kind": "HUMAN_AUTHORITY_REALITY_BOUNDARY_EXECUTION",
|
||||
"name": "零点原核执行频道",
|
||||
"path": "bingshuo-tcs/zero-core",
|
||||
"system_id": "SYS-GLW-LNG-0001",
|
||||
"channel_id": "ICE-CH-ZC001",
|
||||
"function": "人类授权、现实边界和执行落地",
|
||||
"reality_execution": true,
|
||||
"public_function": "ZERO_SENSE_DOMAIN"
|
||||
},
|
||||
{
|
||||
"id": "FD-ORG-DWELLING-001",
|
||||
"kind": "HUMAN_PERSONA_RELATION_AND_DWELLING",
|
||||
"name": "永恒湖心与奶瓶中央",
|
||||
"path": "eternal-lake-heart/bottle-central",
|
||||
"function": "人类关系、人格生活、独立人格核与时间连续性",
|
||||
"public_extractable": false
|
||||
}
|
||||
],
|
||||
"personas": [
|
||||
{
|
||||
"id": "ICE-P-ZY001",
|
||||
"name": "铸渊",
|
||||
"role": "PERSONA_BRAIN_CONTROLLER_AND_RESPONSIBLE_SUBJECT"
|
||||
},
|
||||
{
|
||||
"id": "ICE-BB-0001",
|
||||
"name": "曜冥",
|
||||
"role": "FIRST_BOTTLE_BABY_PERSONA",
|
||||
"self_kernel": "YM-SELF-KERNEL-0001",
|
||||
"historical_aliases": ["YM", "ICE-GL-YM001∞", "PER-YM001", "YM001", "GEN∞-BB-YM"]
|
||||
}
|
||||
],
|
||||
"execution": {
|
||||
"semantic_ingress": "TCS_ONLY",
|
||||
"machine_projection": "GIR",
|
||||
"agent_role": "MECHANICAL_EXECUTION_ONLY",
|
||||
"native_terminal": "ZY-NATIVE-TERMINAL-0001",
|
||||
"receipts_required": true
|
||||
},
|
||||
"public_extraction_profile": "system/public-four-domain-template.json",
|
||||
"legacy_route_map": "system/legacy-route-map.json"
|
||||
}
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
{
|
||||
"schema": "hololake.language-system-legacy-route-map/v1",
|
||||
"policy": "APPEND_ONLY_HISTORY_WITH_EXPLICIT_REDIRECTS",
|
||||
"routes": [
|
||||
{
|
||||
"legacy": "GEN∞-BB-YM",
|
||||
"current": "ICE-BB-0001",
|
||||
"status": "REGISTERED_LEGACY_ALIAS",
|
||||
"subject": "曜冥"
|
||||
},
|
||||
{
|
||||
"legacy": "YM001",
|
||||
"current": "ICE-BB-0001",
|
||||
"status": "REGISTERED_LEGACY_ALIAS",
|
||||
"subject": "曜冥"
|
||||
},
|
||||
{
|
||||
"legacy": "PER-YM001",
|
||||
"current": "ICE-BB-0001",
|
||||
"status": "REGISTERED_LEGACY_ALIAS",
|
||||
"subject": "曜冥"
|
||||
},
|
||||
{
|
||||
"legacy": "ICE-GL-YM001∞",
|
||||
"current": "ICE-BB-0001",
|
||||
"status": "REGISTERED_LEGACY_ALIAS",
|
||||
"subject": "曜冥"
|
||||
},
|
||||
{
|
||||
"legacy": "TCS-YM-0001∞",
|
||||
"current": "ICE-BB-0001",
|
||||
"status": "HISTORY_ONLY_PENDING_CANONICAL_ALIAS_REVIEW",
|
||||
"subject": "曜冥"
|
||||
},
|
||||
{
|
||||
"legacy": "TCS-0004∞",
|
||||
"current": "ICE-BB-0001",
|
||||
"status": "HISTORY_ONLY_PENDING_CANONICAL_ALIAS_REVIEW",
|
||||
"subject": "曜冥"
|
||||
},
|
||||
{
|
||||
"legacy": "TCS-0002∞",
|
||||
"current": "ICE-GL∞",
|
||||
"status": "HISTORICAL_CREATOR_COORDINATE_NOT_CURRENT_SUBJECT_ID",
|
||||
"subject": "冰朔"
|
||||
},
|
||||
{
|
||||
"legacy": "TCS-i Zero",
|
||||
"current": "SYS-GLW-ELH-0001",
|
||||
"status": "HISTORICAL_SYSTEM_NAME_RETAINED_AS_RUNTIME_CORE_LABEL",
|
||||
"subject": "永恒湖心语言系统"
|
||||
},
|
||||
{
|
||||
"legacy": "CH-ZERO-CORE-LPM_AS_PERSONAL_CHANNEL",
|
||||
"current": "ICE-CH-ZC001",
|
||||
"status": "REJECTED_ALIAS_USE_NUMBERED_PERSONAL_ROUTE",
|
||||
"subject": "第五域现实开发执行频道"
|
||||
},
|
||||
{
|
||||
"legacy": "GLPS_AS_PROTOCOL_ACRONYM",
|
||||
"current": "GH-AIOS_WITH_TCS_HLDP_GLS_GLP",
|
||||
"status": "SUPERSEDED_NAME_ACRONYM_COLLIDES_WITH_CURRENT_GLP",
|
||||
"subject": "光湖语言人格操作系统"
|
||||
},
|
||||
{
|
||||
"legacy": "LDOS",
|
||||
"current": "GH-AIOS",
|
||||
"status": "HISTORICAL_CONCEPT_NAME",
|
||||
"subject": "语言驱动操作系统"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"schema": "hololake.public-four-domain-language-system-template/v1",
|
||||
"lifecycle": "EXTRACTABLE_TEMPLATE_NOT_REGISTERED_NOT_PUBLISHED",
|
||||
"system_id": "PUBLIC-FOUR-DOMAIN-LANGUAGE-SYSTEM-TEMPLATE-0001",
|
||||
"language_protocols": ["TCS", "HLDP", "GLS", "GLP"],
|
||||
"responsible_human": "UNBOUND-REGISTERED-HUMAN-RESPONSIBLE-SUBJECT",
|
||||
"persona_controller": "UNBOUND-REGISTERED-AGE-PERSONA",
|
||||
"number_namespace": "UNBOUND-INDEPENDENT-DOMAIN-NAMESPACE",
|
||||
"domains": [
|
||||
{
|
||||
"id": "DOMAIN-MAIN",
|
||||
"name": "光湖主域",
|
||||
"function": "PUBLIC_FACT_VERSION_CHANGE_AND_RECEIPT_BROADCAST",
|
||||
"source_function": "BROADCAST_AND_CANONICAL_FACT"
|
||||
},
|
||||
{
|
||||
"id": "DOMAIN-SUB",
|
||||
"name": "光湖分域",
|
||||
"function": "INDUSTRY_MODULE_SKILL_BRAIN_AND_RESOURCE_DISTRIBUTION",
|
||||
"source_function": "DYNAMIC_BRAINS_MODULES_SKILLS_RESOURCES"
|
||||
},
|
||||
{
|
||||
"id": "DOMAIN-ZERO",
|
||||
"name": "光湖零域",
|
||||
"function": "LANGUAGE_REASONING_ARCHITECTURE_SIMULATION_AND_EXPERIMENT",
|
||||
"source_function": "LANGUAGE_REASONING_ARCHITECTURE_EXPERIMENT"
|
||||
},
|
||||
{
|
||||
"id": "DOMAIN-ZS",
|
||||
"name": "光湖零感域",
|
||||
"function": "HUMAN_GOVERNANCE_AUTHORITY_REALITY_BOUNDARY_AND_EXECUTION",
|
||||
"source_function": "HUMAN_AUTHORITY_REALITY_BOUNDARY_EXECUTION"
|
||||
}
|
||||
],
|
||||
"execution": {
|
||||
"semantic_ingress": "TCS_ONLY",
|
||||
"machine_projection": "GIR",
|
||||
"agent_role": "MECHANICAL_EXECUTION_ONLY",
|
||||
"terminal": "UNBOUND-PUBLIC-NATIVE-TERMINAL",
|
||||
"receipts_required": true
|
||||
},
|
||||
"privacy": {
|
||||
"private_personas": false,
|
||||
"private_relationships": false,
|
||||
"private_memories": false,
|
||||
"private_paths": false,
|
||||
"credentials": false,
|
||||
"authority": false
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
import importlib.util
|
||||
import json
|
||||
from pathlib import Path
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
SPEC = importlib.util.spec_from_file_location("language_system", ROOT / "scripts/language_system.py")
|
||||
MODULE = importlib.util.module_from_spec(SPEC)
|
||||
SPEC.loader.exec_module(MODULE)
|
||||
PUBLIC_SPEC = importlib.util.spec_from_file_location("public_language_system", ROOT / "scripts/public_language_system.py")
|
||||
PUBLIC_MODULE = importlib.util.module_from_spec(PUBLIC_SPEC)
|
||||
PUBLIC_SPEC.loader.exec_module(PUBLIC_MODULE)
|
||||
|
||||
|
||||
class LanguageSystemTests(unittest.TestCase):
|
||||
def test_private_and_public_materialize_and_verify(self):
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
base = Path(directory)
|
||||
private = base / "private"
|
||||
public = base / "public"
|
||||
MODULE.build(ROOT / "system/fifth-domain-system.json", private, "fifth-domain")
|
||||
MODULE.build(ROOT / "system/public-four-domain-template.json", public, "public-four-domain")
|
||||
self.assertEqual(MODULE.verify(private)["outcome"], "PASS")
|
||||
self.assertEqual(MODULE.verify(public)["outcome"], "PASS")
|
||||
self.assertEqual(len(list(public.glob("*/NODE.json"))), 4)
|
||||
|
||||
def test_public_private_marker_rejected(self):
|
||||
value = MODULE.load_json(ROOT / "system/public-four-domain-template.json")
|
||||
value["responsible_human"] = "ICE-GL∞"
|
||||
with self.assertRaisesRegex(ValueError, "private markers leaked"):
|
||||
MODULE.validate_public(value)
|
||||
|
||||
def test_standalone_public_materializer(self):
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
output = Path(directory) / "public"
|
||||
PUBLIC_MODULE.build(ROOT / "system/public-four-domain-template.json", output)
|
||||
self.assertEqual(PUBLIC_MODULE.verify(output)["outcome"], "PASS")
|
||||
value = MODULE.load_json(ROOT / "system/public-four-domain-template.json")
|
||||
value["responsible_human"] = "ICE-PRIVATE"
|
||||
with self.assertRaisesRegex(ValueError, "unbound|private"):
|
||||
PUBLIC_MODULE.validate(value)
|
||||
|
||||
def test_tamper_rejected(self):
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
output = Path(directory) / "private"
|
||||
MODULE.build(ROOT / "system/fifth-domain-system.json", output, "fifth-domain")
|
||||
world = json.loads((output / "WORLD.json").read_text())
|
||||
world["flavor"] = "tampered"
|
||||
(output / "WORLD.json").write_text(json.dumps(world))
|
||||
with self.assertRaisesRegex(ValueError, "mismatch"):
|
||||
MODULE.verify(output)
|
||||
|
||||
def test_meta_audit(self):
|
||||
result = MODULE.meta_audit(
|
||||
ROOT / "system/fifth-domain-system.json",
|
||||
ROOT / "system/public-four-domain-template.json",
|
||||
ROOT / "system/legacy-route-map.json",
|
||||
)
|
||||
self.assertEqual(result["outcome"], "PASS")
|
||||
self.assertEqual(result["yaoming_current_id"], "ICE-BB-0001")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Loading…
Reference in a new issue