from pathlib import Path
import os,re,subprocess
roots=[Path('/opt/struktur/social-media-agent'),Path('/opt/struktur/social-media-radar')]
print('PROC_FD_DB_BINDINGS')
for proc in Path('/proc').iterdir():
if not proc.name.isdigit(): continue
fd=proc/'fd'
try:
for link in fd.iterdir():
try: target=os.readlink(link)
except OSError: continue
if target.endswith('.db') or any(x in target for x in ['/signals.db','/cases.db','/posts.db']): print(proc.name,link.name,target)
except OSError: continue
print('CODE_TMP_PERSISTENCE_REFERENCES')
for root in roots:
for p in root.rglob('*'):
if not p.is_file() or any(x in str(p) for x in ('/.venv/','/__pycache__/','/.git/')) or '.bak' in p.name: continue
if p.suffix.lower() not in {'.py','.sh','.html','.js','.json','.yaml','.yml','.conf','.service'}: continue
try:t=p.read_text(errors='replace')
except OSError:continue
hits=[f'{i+1}:{line.strip()}' for i,line in enumerate(t.splitlines()) if re.search(r'/tmp|tempfile|mkstemp|NamedTemporaryFile|TemporaryDirectory',line,re.I)]
if hits: print('FILE',p,'\n '+'\n '.join(hits[:40]))