import json,urllib.request
items=[
('ui-rollen','Hermes Workspace ist die bevorzugte taegliche Arbeitsoberflaeche. Hermes Carlo ist Diagnose-, Protokoll- und Kontrolloberflaeche. Quelle Architekturbericht 20260805, Datum 2026-08-06.'),
('persona-architektur','Persona, SOUL.md und carlo-arbeitsweise ueberschneiden sich weiterhin. Unterschiedliches Antwortverhalten durch Workspace-Profile ist nicht abschliessend belegt. Quelle Architekturbericht 20260805, Datum 2026-08-06.'),
('personas-ui','Der Personas-Button ist aus der Workspace-Kachel entfernt. Der Personas-Button auf der Carlo-Kachel bleibt erhalten. Quelle dashboard app-carlo.py, Datum 2026-08-06.'),
('terminal-files','Workspace-Terminal und Workspace-Files funktionieren. Quelle Reparatur- und Einrichtungsberichte, Datum 2026-08-06.'),
('neutraler-workspace','Der neutrale Workspace liegt auf /srv/hermes-workspaces/carlo und im Container auf /home/workspace/carlo. Der Mount ist read-write. Quelle Workspace-Einrichtungsbericht, Datum 2026-08-06.'),
('graphiti-vs-workspace','Workspace dient Dateien und Bearbeitung. Graphiti dient Wissen und Zusammenhaengen. Quelle Arbeitsauftrag 016, Datum 2026-08-06.'),
('files-state-correction','Frueherer leerer oder read-only Files-Zustand ist eine historische Beobachtung. Der spaetere verifizierte Stand ist der neutrale Workspace mit sieben Ordnern und read-write Mount. Quellen Files- und Workspace-Berichte, Datum 2026-08-06.')]
inv=json.load(urllib.request.urlopen('http://127.0.0.1:8644/episodes/inventory',timeout=30)); existing={str(e.get('name')) for e in inv.get('episodes',[])}; out=[]
for k,c in items:
n='hermes_session_2026-08-06_'+k
if n in existing: out.append([n,'duplicate_exact']); print(out[-1],flush=True); continue
d={'content':c,'source':'hermes-session-import','actor':'codex','context':'Arbeitsauftrag 016; compact fact; no secrets','timestamp':'2026-08-06T00:00:00Z','name':n}
q=urllib.request.Request('http://127.0.0.1:8644/episodes',data=json.dumps(d).encode(),headers={'Content-Type':'application/json'})
try: x=json.load(urllib.request.urlopen(q,timeout=600)); out.append([n,'created',x.get('uuid')])
except Exception as e: out.append([n,'failed',str(e)[:180]])
print(out[-1],flush=True)
print('FINAL',json.dumps(out),flush=True)