import os,sys,csv,hmac,hashlib,sqlite3,collections
pid=sys.argv[1]
env={}
for raw in open(f'/proc/{pid}/environ','rb').read().split(b'\0'):
 s=raw.decode(errors='replace')
 if '=' in s: env.setdefault(*s.split('=',1))
key=env['JARVIS_FINANCE_FINGERPRINT_KEY']
def norm(v):return ' '.join(str(v or '').strip().casefold().split())
def sh(v):return hmac.new(key.encode(),v.encode(),hashlib.sha256).hexdigest()
p='/home/agent/jarvis_runtime/finance-system/quarantine/2026-08-26-current-import/2026 Migros Einkäufe_aktualisiert 26.08.2026.csv'
rows=list(csv.DictReader(open(p,encoding='utf-8-sig'),delimiter=';'))
groups={}
for r in rows:
 full='|'.join(norm(r.get(k)) for k in ('Datum','Zeit','Filiale','Kassennummer','Transaktionsnummer'))
 legacy='|'.join(norm(r.get(k)) for k in ('Datum','Zeit','Filiale'))+'||'
 groups.setdefault(full,legacy)
c=sqlite3.connect('file:/home/agent/jarvis_runtime/finance-system/data/finance.sqlite3?mode=ro&immutable=1',uri=True)
old={r[0] for r in c.execute("select source_row_fingerprint from household_import_items where source_type='migros_receipts'")}
print('RECEIPTS',len(groups),'FULL_MATCH',sum(sh('migros_receipts|'+f) in old for f in groups),'LEGACY_MATCH',sum(sh('migros_receipts|'+l) in old for l in groups.values()))
