import importlib.util
import os
from pathlib import Path
import sys
import time

os.umask(0o077)
R=Path(__file__).parent
s=importlib.util.spec_from_file_location('prev','/tmp/codex/ltb1021/2026-09-15_contextra-active-tracking_r01/ops.py')
prev=importlib.util.module_from_spec(s);s.loader.exec_module(prev);prev.R=R;p=prev.previous;p.R=R
p.CHANNELS['rtsp-test-source-03']='web-cam01-test'
p.FILES=['app/metadata_publisher.py','app/publisher_metrics.py','app/api/streams.py','tests/test_publisher_metrics.py']

def observe(label,profile=False):
    s=importlib.util.spec_from_file_location('window','/tmp/codex/ltb1021/2026-09-15_contextra-three-channel_r01/observe.py')
    w=importlib.util.module_from_spec(s);s.loader.exec_module(w);w.R=R;w.p.R=R
    if profile:
        p.ledger('publisher_metrics_on',label=label)
        p.api('/api/v1/metadata/metrics','POST',dict(enabled=True,seconds=45))
    try:
        w.window(label+'-window',p.CHANNELS,24)
        p.save(label+'-publisher.json',p.api('/api/v1/metadata/status'))
    finally:
        if profile:p.api('/api/v1/metadata/metrics','POST',dict(enabled=False,seconds=1))

if __name__=='__main__':
    mode=sys.argv[1];label=sys.argv[2] if len(sys.argv)>2 else 'probe'
    {'gate':p.gate,'test':lambda:p.tests(label+'-source'),'build':lambda:prev.build(label),
     'apply':lambda:p.apply(label),'baseline':lambda:observe('baseline'),
     'observe':lambda:observe(label,True)}[mode]()
