| """Local, inspectable memory. Profiles are user-controlled, not hidden model training data.""" |
| import sqlite3, json |
| from pathlib import Path |
| SCHEMA='''CREATE TABLE IF NOT EXISTS memories(id INTEGER PRIMARY KEY, kind TEXT NOT NULL, text TEXT NOT NULL, created_at TEXT DEFAULT CURRENT_TIMESTAMP, consent INTEGER NOT NULL DEFAULT 0); CREATE TABLE IF NOT EXISTS plans(id INTEGER PRIMARY KEY, title TEXT, plan_json TEXT NOT NULL, status TEXT NOT NULL DEFAULT 'proposed', created_at TEXT DEFAULT CURRENT_TIMESTAMP);''' |
| class MemoryStore: |
| def __init__(self,path='ares.sqlite3'):self.db=sqlite3.connect(path);self.db.executescript(SCHEMA) |
| def add(self,kind,text,consent=False): |
| if not consent:raise PermissionError('Explicit user consent is required to retain memory.') |
| self.db.execute('INSERT INTO memories(kind,text,consent) VALUES(?,?,1)',(kind,text));self.db.commit() |
| def search(self,q,limit=8):return self.db.execute('SELECT id,kind,text FROM memories WHERE text LIKE ? ORDER BY id DESC LIMIT ?',('%'+q+'%',limit)).fetchall() |
| def propose_plan(self,title,steps): |
| self.db.execute('INSERT INTO plans(title,plan_json) VALUES(?,?)',(title,json.dumps({'steps':steps,'requires_approval':True})));self.db.commit() |
| def approve(self,id):self.db.execute("UPDATE plans SET status='approved' WHERE id=?",(id,));self.db.commit() |
|
|