feat(tcs): add stage2 mother-brain and desktop ABI

This commit is contained in:
冰朔 2026-08-23 23:18:11 +08:00
commit d5c87e3768
59 changed files with 5788 additions and 25 deletions

View file

@ -0,0 +1,86 @@
TCS 0.1;
COMPILER TCS-COMPILER-STAGE2-LPM-DESKTOP-0001 {
header {
schema = "tcs.compiler/v1";
name_zh = "TCS 第二阶段语言人格与共享桌面编译器";
version = "0.2.0";
profile = "HLDP-NP/1";
lifecycle = "CANDIDATE_COMPILER_SOURCE";
bootstrap_seed = "TCS-COMPILER-STAGE1-0001";
output = "GIR/1";
}
source_language {
prologue = ["TCS", "VERSION", "SEMICOLON"];
declaration_kinds = ["PROGRAM", "MODULE", "PROTOCOL", "COMPILER", "EVENT", "RECEIPT"];
punctuation = ["LBRACE", "RBRACE", "LBRACKET", "RBRACKET", "LESS", "GREATER", "COLON", "EQUAL", "COMMA", "SEMICOLON", "DOT"];
scalar_tokens = ["IDENTIFIER", "TEXT", "INT", "BOOL", "NULL"];
comments = ["LINE_COMMENT", "BLOCK_COMMENT"];
encoding = "UTF8_LF_NO_BOM";
}
lexer_rules {
L001 { when = "BOM_AT_START"; emit_error = "TCS-E0001"; }
L002 { when = "WHITESPACE_OR_COMMENT"; action = "SKIP_WITH_SOURCE_POSITION"; }
L003 { when = "DOUBLE_QUOTE"; action = "READ_JSON_ESCAPED_TEXT"; on_unterminated = "TCS-E0002"; }
L004 { when = "MINUS_OR_ASCII_DIGIT"; action = "READ_SIGNED_DECIMAL_INT"; on_overflow = "TCS-E2001"; }
L005 { when = "UNICODE_LETTER_OR_UNDERSCORE"; action = "READ_IDENTIFIER_OR_KEYWORD"; }
L006 { when = "REGISTERED_PUNCTUATION"; action = "EMIT_PUNCTUATION_TOKEN"; }
L007 { when = "OTHER_CHARACTER"; emit_error = "TCS-E1001"; }
}
parser_rules {
P001 { nonterminal = "document"; sequence = ["prologue", "declaration", "EOF"]; }
P002 { nonterminal = "prologue"; sequence = ["TCS", "version", "SEMICOLON"]; }
P003 { nonterminal = "declaration"; sequence = ["declaration_kind", "identifier", "block"]; }
P004 { nonterminal = "block"; sequence = ["LBRACE", "member_zero_or_more", "RBRACE"]; }
P005 { nonterminal = "member"; alternatives = ["identifier_assignment", "identifier_typed_assignment", "identifier_block"]; }
P006 { nonterminal = "value"; alternatives = ["TEXT", "INT", "BOOL", "NULL", "IDENTIFIER", "array", "inline_object"]; }
P007 { when = "DUPLICATE_MEMBER_IN_SAME_BLOCK"; emit_error = "TCS-E1002"; }
P008 { when = "TOKEN_AFTER_TOP_LEVEL_DECLARATION"; emit_error = "TCS-E1001"; }
}
semantic_types {
scalars = ["Text", "Bool", "Int", "UInt", "DecimalText", "Bytes", "DurationMs", "Timestamp", "Sha256", "NumberId", "Path", "Uri", "ErrorCode"];
containers = ["List", "Set", "Map", "Option", "Ref", "Evidence", "Record"];
domains = ["Subject", "ExactTarget", "AuthorityProof", "ActionGraph", "ReceiptPlan", "RelationEvent", "DirectLanguageEnvelope", "NeuronEvent", "CausalGraph", "ComputerObject", "SemanticAction", "StateDiff"];
implicit_conversion = "FORBIDDEN";
floating_point = "FORBIDDEN_V0_2";
}
program_validation {
required_sections = ["header", "source", "subject", "target", "inputs", "outputs", "conditions", "actions", "authority", "resources", "failure", "stop", "cleanup", "rollback", "receipt"];
registered_operations = ["CORE.ECHO", "CORE.TRANSLATOR_ADMISSION", "CORE.ZERO_CORE_EXECUTION", "CORE.HOST_PERSONA_PROBE", "CORE.DUAL_HOST_ACCEPTANCE", "CORE.AGENT_TRANSLATION_CANDIDATE", "CORE.AGENT_CANDIDATE_ACCEPTANCE", "CORE.CLIENT_CANDIDATE_ACCEPTANCE", "CORE.FINAL_TRANSLATOR_ACCEPTANCE", "LPM.PERCEIVE_DIRECT_LANGUAGE", "LPM.EXTRACT_THOUGHT_TRANSITION", "LPM.ACTIVATE_CAUSAL_PATH", "LPM.COMMIT_ACTION_INTENT", "LPM.APPLY_NEURON_EVENT", "DESKTOP.OBSERVE_OBJECT_TREE", "DESKTOP.RESOLVE_STABLE_OBJECT", "DESKTOP.EXECUTE_SEMANTIC_ACTION", "DESKTOP.READ_STATE_DIFF", "DESKTOP.VERIFY_TARGET_AND_RECEIPT"];
operation_registry = "TCS-LPM-DESKTOP-OPERATION-REGISTRY-0001";
V001 { rule = "EXACT_REQUIRED_SECTIONS"; standard = "TCS-FIELD-STANDARD-0001"; error_missing = "TCS-E1004"; error_unknown = "TCS-E1003"; }
V002 { rule = "CLOSED_FIELDS_PER_SECTION"; error = "TCS-E1003"; }
V003 { rule = "ALL_INPUT_OUTPUT_AND_ACTION_REFS_RESOLVE"; error = "TCS-E2002"; }
V004 { rule = "ALL_OPERATIONS_REGISTERED_AT_LOCKED_VERSION"; error = "TCS-E2101"; }
V005 { rule = "SOURCE_ID_URI_HASH_AND_ROLE_RESOLVE"; errors = ["TCS-E3001", "TCS-E3002"]; }
V006 { rule = "SUBJECT_TARGET_AND_AUTHORITY_EXACT"; errors = ["TCS-E4001", "TCS-E4002", "TCS-E4003"]; }
V007 { rule = "ACTION_GRAPH_REACHABLE_AND_TERMINATING"; error = "TCS-E2001"; }
V008 { rule = "FAILURE_STOP_CLEANUP_ROLLBACK_AND_RECEIPT_PRESENT"; error = "TCS-E1004"; }
V009 { rule = "NO_FORBIDDEN_RUNTIME_PLACEHOLDER"; error = "TCS-E3002"; }
V010 { rule = "RELATION_AND_EMOTION_DO_NOT_GRANT_AUTHORITY"; error = "TCS-E4001"; }
V011 { rule = "DIRECT_LANGUAGE_BYTES_AND_SHA256_IMMUTABLE"; error = "TCS-E3001"; }
V012 { rule = "LPM_EVENT_HAS_BEFORE_OPERATION_AFTER_CAUSAL_EDGES_AND_REVISION_STATE"; error = "TCS-E2001"; }
V013 { rule = "DESKTOP_ACTION_USES_STABLE_OBJECT_PERMISSION_TICKET_AND_STATE_DIFF"; error = "TCS-E4001"; }
}
lowering_to_gir {
G001 { from = "header"; to = "identity"; transform = "COPY_ID_VERSION_PROFILE_AND_LOCK_PROTOCOLS"; }
G002 { from = "source"; to = "compiled_from"; transform = "VERIFY_AND_BIND_SOURCE_SHA256"; }
G003 { from = "subject"; to = "subject"; transform = "RESOLVE_VERIFIED_SUBJECT"; }
G004 { from = "target"; to = "exact_target"; transform = "RESOLVE_PATH_STATE_AND_FINGERPRINT"; }
G005 { from = "actions"; to = "deterministic_action_graph"; transform = "SORT_ACTION_IDS_AND_RESOLVE_ALL_EDGES"; }
G006 { from = "authority"; to = "authority_proof"; transform = "BIND_PROOF_WITHOUT_EXPANDING_SCOPE"; }
G007 { from = "resources"; to = "resource_plan"; transform = "NORMALIZE_INTEGER_LIMITS"; }
G008 { from = "stop"; to = "timeout_and_stop"; transform = "COPY_EXPLICIT_STOP_SEMANTICS"; }
G009 { from = "cleanup"; to = "cleanup_plan"; transform = "COPY_EXACT_BOUNDARY"; }
G010 { from = "rollback"; to = "rollback_plan"; transform = "COPY_ACTIONS_AND_VERIFICATION"; }
G011 { from = "receipt"; to = "receipt_plan"; transform = "BIND_MACHINE_AND_HUMAN_OUTPUTS"; }
G012 { from = "all"; to = "unresolved_natural_language"; transform = "MUST_BE_FALSE"; }
G013 { from = "inputs"; to = "inputs"; transform = "COPY_RESOLVED_VALUES"; }
G014 { from = "outputs"; to = "outputs"; transform = "COPY_RESOLVED_VALUES"; }
G015 { from = "conditions"; to = "conditions"; transform = "COPY_RESOLVED_CONDITIONS"; }
G016 { from = "failure"; to = "failure_plan"; transform = "COPY_EXPLICIT_FAILURE_SEMANTICS"; }
}
canonicalization { object_keys = "UTF8_BYTE_ORDER"; list_order = "PRESERVE_SOURCE_SEMANTICS"; integers = "MINIMAL_DECIMAL"; strings = "JSON_ESCAPE_NO_OPTIONAL_ESCAPE"; line_end = "LF"; final_newline = true; semantic_digest = "SHA256"; comments_in_semantic_digest = false; }
output_contract { schema = "guanghu.gir/v1"; unresolved_natural_language = false; unresolved_authority = false; drifting_dependency = false; target_must_be_exact = true; compiler_provenance_required = true; operation_registry_required = true; }
self_host { parent_compiler = "TCS-COMPILER-STAGE1-0001"; stage1_compiles_stage2_to = "compiler-C.gir"; compiler_C_compiles_stage2_to = "compiler-D.gir"; fixed_point = "SEMANTIC_SHA256_C_EQUALS_D"; stage1_disabled_test = "REQUIRED"; operation_registry_test = "REQUIRED"; negative_corpus_test = "REQUIRED"; module_abi_test = "REQUIRED"; current_state = "SOURCE_NOT_YET_FIXED_POINT_VERIFIED"; }
}