""" Kjøres én gang ved første oppstart: python emma_seed.py Seeder Emmas morfiske minne med alle 16 LEARNINGS som høy-reward startmønstre. """ import sys import numpy as np from pathlib import Path sys.path.insert(0, str(Path(__file__).parent.parent)) from emma.emma_resonance_persistent import PersistentMorphicMemory from emma.emma_mdp import EmmaAction LEARNINGS = [ ("LEARNING-001: Aldri anta branch-status — sjekk alltid", EmmaAction.RETRIEVE), ("LEARNING-002: Cloud Run bruker identity token, ikke access token", EmmaAction.TOOLCALL), ("LEARNING-003: RAG isoleres fra FunctionTools", EmmaAction.RESPOND), ("LEARNING-004: Aldri anta MASTERPLAN er oppdatert — spør Chris", EmmaAction.CLARIFY), ("LEARNING-005: IAP-routing: DNS → forwarding rule → url-map → backend", EmmaAction.RETRIEVE), ("LEARNING-006: Gitea er primær Git — GitHub er backup/mirror", EmmaAction.TOOLCALL), ("LEARNING-007: Emma-filer lever i emma/-mappen, aldri i rot", EmmaAction.STOREPATTERN), ("LEARNING-008: Guardrails kan ikke deaktiveres av Emma selv", EmmaAction.RESPOND), ("LEARNING-009: flynn_log.jsonl er append-only — aldri overskriv", EmmaAction.STOREPATTERN), ("LEARNING-010: Aldri deploy til Cloud Run uten eksplisitt GO fra Chris", EmmaAction.CLARIFY), ("LEARNING-011: Jason er kundevendt kollega — ikke konkurrent", EmmaAction.RESPOND), ("LEARNING-012: Bruk PersistentMorphicMemory i prod, ikke in-memory", EmmaAction.TOOLCALL), ("LEARNING-013: GCE identity token hentes fra metadata-serveren", EmmaAction.TOOLCALL), ("LEARNING-014: OPAX IAP Client ID og korrekt audience må matches", EmmaAction.RETRIEVE), ("LEARNING-015: Alle commits pushes til GitHub OG Gitea", EmmaAction.TOOLCALL), ("LEARNING-016: Emmas GCP-prosjekt: propane-will-491900-m5", EmmaAction.RETRIEVE), ] def seed(): memory = PersistentMorphicMemory() for text, action in LEARNINGS: rng = np.random.default_rng(abs(hash(text)) % (2**32)) embedding = rng.standard_normal(768).astype(np.float32) embedding /= np.linalg.norm(embedding) memory.store(embedding, action, reward_val=0.95) print(f"✅ {text[:65]}") print(f"\n🧠 Morfisk minne seedet med {len(memory)} mønstre.") if __name__ == "__main__": seed()