OSVauco/emma/emma_seed.py

49 lines
2.4 KiB
Python

"""
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()