import importlib.util
from pathlib import Path

spec=importlib.util.spec_from_file_location('transport','/tmp/codex/ltb1021/2026-10-06_icerti-ai2-deploy_r01/remote.py')
remote=importlib.util.module_from_spec(spec);spec.loader.exec_module(remote)
CODE=r'''
import hashlib,json,signal,subprocess,sys,time,shutil
from pathlib import Path
signal.alarm(35)
sys.path.insert(0,'/usr/local/lib/contextra-maintenance/portable-20261006T192646')
import field_resources as r,server_context as server,vscode_safety as safety
server.verify_tools()
doc,raw=safety.load();assert not safety.plan(doc)[1]
def sample():
    v=list(map(int,Path('/proc/stat').read_text().splitlines()[0].split()[1:9]));return sum(v),v[3]+v[4]
rows=[];a=sample()
for n in range(3):
    time.sleep(5);b=sample()
    ps=r.snapshot()
    hosts=[p for p in ps if p['role']=='vscode-extensionHost']
    search=[p for p in ps if p['role']=='vscode-file-search']
    rows.append(dict(cpu_average_percent=round(100*(1-(b[1]-a[1])/(b[0]-a[0])),1),hosts=hosts,searches=search));a=b
mem={k:int(v.split()[0]) for k,v in (line.split(':',1) for line in Path('/proc/meminfo').read_text().splitlines()) if k in ('MemAvailable','MemTotal')}
services=subprocess.run(['docker','ps','-a','--filter','label=com.docker.compose.project=contextra-ai2','--format','{{.ID}} {{.State}} {{.Image}}'],capture_output=True,text=True,timeout=10)
assert services.returncode==0 and len(services.stdout.splitlines())==5 and all(' exited ' in x for x in services.stdout.splitlines())
print(json.dumps(dict(samples=rows,memory_kib=mem,settings_sha256=hashlib.sha256(raw).hexdigest(),settings_owner=safety.SETTINGS.stat().st_uid,services=services.stdout.splitlines(),root_free=shutil.disk_usage('/').free,tool_verified=True),ensure_ascii=False))
'''
raw=remote.run(CODE,root=True,timeout=45)
p=Path(__file__).parent/'readback.json';p.write_text(raw);p.chmod(0o600)
print(raw)
