diff --git a/bin/box-relay.sh b/bin/box-relay.sh index eceb19a..1f59218 100755 --- a/bin/box-relay.sh +++ b/bin/box-relay.sh @@ -425,9 +425,18 @@ case "$cmd" in ;; esac ;; - health) + health|fleet-status) call_exec "health.check" "{}" ;; + cdp-latency) + call_exec "cdp.latency" "{}" + ;; + chrome-errors) + call_exec "chrome.errors" "{}" + ;; + watchdog-alerts) + call_exec "cdp.latency" "{}" + ;; ping) call_exec "exec.ping" "{}" ;; diff --git a/bin/exec-constrained.py b/bin/exec-constrained.py index 98b24a6..7df5196 100755 --- a/bin/exec-constrained.py +++ b/bin/exec-constrained.py @@ -448,6 +448,14 @@ def _health_build(a): return [sys.executable, os.path.join(BIN_DIR, 'super-cli.py'), 'fleet', 'status', '--json'] +def _cdp_latency_build(a): + return [sys.executable, os.path.join(BIN_DIR, 'box-ctl.py'), 'cdp-latency'] + + +def _chrome_errors_build(a): + return [sys.executable, os.path.join(BIN_DIR, 'box-ctl.py'), 'chrome-errors'] + + def _subagent_spawn_validate(raw): if not isinstance(raw, dict): raise OpError('args must be an object') @@ -870,6 +878,16 @@ OPS = { 'timeout': 30, 'side_effecting': False, 'desc': 'Run fleet status health check (read-only)', }, + 'cdp.latency': { + 'validate': _health_validate, 'build': _cdp_latency_build, + 'timeout': 30, 'side_effecting': False, + 'desc': 'Run CDP latency probe across fleet profiles (read-only)', + }, + 'chrome.errors': { + 'validate': _health_validate, 'build': _chrome_errors_build, + 'timeout': 30, 'side_effecting': False, + 'desc': 'Scan chrome log files for FATAL/crash/OOM errors since watermark (read-only)', + }, 'subagent.spawn': { 'validate': _subagent_spawn_validate, 'build': _subagent_spawn_build, 'timeout': 120, 'side_effecting': True,