File size: 3,503 Bytes
bbe8a51
1640d7b
 
 
7b8b1dc
bbe8a51
 
7b8b1dc
 
 
1640d7b
 
7b8b1dc
 
 
1640d7b
 
 
 
bbe8a51
1640d7b
7b8b1dc
 
1640d7b
 
bbe8a51
1640d7b
7b8b1dc
 
1640d7b
 
 
 
 
 
bbe8a51
 
7b8b1dc
 
 
712720b
 
7b8b1dc
 
1640d7b
7b8b1dc
 
 
 
1640d7b
7b8b1dc
1640d7b
 
 
 
7b8b1dc
1640d7b
7b8b1dc
 
 
 
 
 
712720b
7b8b1dc
 
 
712720b
7b8b1dc
 
 
712720b
7b8b1dc
 
1640d7b
7b8b1dc
1640d7b
 
 
 
 
 
 
7b8b1dc
1640d7b
 
7b8b1dc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# core/hei_inference.py

import yaml
import datetime
from core.codex_informer import CodexInformer

class HEIInference:
    def __init__(self, codex_informer):
        """Fallback interpreter for low-confidence signals"""
        # Load SAL triggers and meta mappings
        self.sal_triggers = self.load_yaml('config/sal_triggers.yaml')
        self.meta_mappings = self.load_yaml('config/meta_mappings.yaml')

        # Store reference to CodexInformer for emotion resolution
        self.codex_informer = codex_informer

    def load_yaml(self, path):
        with open(path, 'r', encoding='utf-8') as f:
            return yaml.safe_load(f)

    def lookup_meta_mapping(self, meta_marker):
        for meta in self.meta_mappings or []:
            if meta.get('marker') == meta_marker:
                return meta
        return None

    def detect_low_signal(self, failed_esil_packet):
        # Base pseudo-ESIL packet
        pseudo = {
            'pseudo_esil_packet_id': f"PSUESP-{datetime.datetime.now().isoformat()}",
            'detected_tokens': failed_esil_packet.get('tokens', []),
            'sal_trigger_flags': [],
            'meta_inference': None,
            'reasoning_flags': [],
            'timestamp': datetime.datetime.now().isoformat()
        }

        # SAL trigger matching
        for token in pseudo['detected_tokens']:
            for trigger in (self.sal_triggers.get('sal_triggers') or []):
                if isinstance(trigger, dict) and 'trigger' in trigger:
                    if trigger['trigger'].lower() in token.lower():
                        pseudo['sal_trigger_flags'].append(trigger['flag'])
                        pseudo['reasoning_flags'].append(f"SAL_MATCH-{trigger['flag']}")

        # META mapping
        meta_marker = failed_esil_packet.get('meta_marker')
        if meta_marker:
            meta = self.lookup_meta_mapping(meta_marker)
            if meta:
                pseudo['meta_inference'] = {
                    'marker': meta['marker'],
                    'blend': meta['inferred_blend'],
                    'comment': meta['comment']
                }
                pseudo['reasoning_flags'].append(f"META_INFER-{meta['marker']}")

        # Resolve emotion data via CodexInformer
        raw_code = failed_esil_packet.get('primary_emotion_code', '')
        emotion_data = self.codex_informer.resolve_emotion_family(raw_code)
        emotion_family = emotion_data.get('emotion_family', 'Unknown')
        arc            = emotion_data.get('arc', 'Unknown')
        resonance      = emotion_data.get('resonance', 'Unknown')

        # Fallback for hidden emotion
        if emotion_family == 'Unknown':
            emotion_family = 'Hidden Emotion Detected'

        pseudo['emotion_family'] = emotion_family
        pseudo['arc']            = arc
        pseudo['resonance']      = resonance

        # Audit log
        self.log_audit(pseudo)

        return pseudo

    def log_audit(self, packet):
        print("---- HEI Inference Audit Log ----")
        print(f"Packet ID: {packet['pseudo_esil_packet_id']}")
        print(f"Timestamp: {packet['timestamp']}")
        print(f"Detected Tokens: {packet['detected_tokens']}")
        print(f"SAL Trigger Flags: {packet['sal_trigger_flags']}")
        if packet.get('meta_inference'):
            print(f"META Inference: {packet['meta_inference']}")
        print(f"Reasoning Flags: {packet['reasoning_flags']}")
        print("----------------------------------\n")