Compare commits

..

No commits in common. "27049f00eaaa3676794cd98e1f8dcfa13fa44e3b" and "6fb73c1daa0a80f4a176b1e8b0ef568f22c403a8" have entirely different histories.

View File

@ -20,7 +20,7 @@ Usage::
The agent:
1. Registers with RIA Hub and receives a ``node_id``.
2. Sends a heartbeat every 30 s so the hub knows it is online.
3. Long-polls ``GET /composer/nodes/{id}/commands`` (30 s timeout).
3. Long-polls ``GET /orchestrator/nodes/{id}/commands`` (30 s timeout).
4. Dispatches received commands:
- ``run_campaign``: executes via CampaignExecutor, uploads recordings.
- ``load_model``: loads an ONNX fingerprint or detector model.
@ -173,7 +173,7 @@ class NodeAgent:
if self._ort_available:
capabilities.append("inference")
resp = self._post(
"/composer/nodes/register",
"/orchestrator/nodes/register",
json={
"name": self.name,
"sdr_device": self.sdr_device,
@ -190,7 +190,7 @@ class NodeAgent:
if not self.node_id:
return
try:
self._delete(f"/composer/nodes/{self.node_id}", timeout=10)
self._delete(f"/orchestrator/nodes/{self.node_id}", timeout=10)
logger.info("Deregistered %s", self.node_id)
except Exception as exc:
logger.debug("Deregister failed (ignored on shutdown): %s", exc)
@ -202,7 +202,7 @@ class NodeAgent:
def _heartbeat_loop(self) -> None:
while not self._stop.wait(_HEARTBEAT_INTERVAL):
try:
resp = self._post(f"/composer/nodes/{self.node_id}/heartbeat", timeout=10)
resp = self._post(f"/orchestrator/nodes/{self.node_id}/heartbeat", timeout=10)
if resp.status_code == 404:
logger.warning("Heartbeat got 404 — hub lost registration, re-registering")
self._register()
@ -217,7 +217,7 @@ class NodeAgent:
while not self._stop.is_set():
try:
resp = self._get(
f"/composer/nodes/{self.node_id}/commands",
f"/orchestrator/nodes/{self.node_id}/commands",
timeout=_POLL_CLIENT_TIMEOUT,
)
if resp.status_code == 204:
@ -540,7 +540,7 @@ class NodeAgent:
logger.info("Inference loop exited")
def _post_event(self, device_id: str | None, confidence: float, snr_db: float) -> None:
"""POST a single detection event to ``POST /composer/nodes/{id}/events``.
"""POST a single detection event to ``POST /orchestrator/nodes/{id}/events``.
Failures are logged at DEBUG level and silently swallowed so that a
transient network blip does not crash the inference loop.
@ -556,7 +556,7 @@ class NodeAgent:
}
try:
resp = self._post(
f"/composer/nodes/{self.node_id}/events",
f"/orchestrator/nodes/{self.node_id}/events",
json=payload,
timeout=5,
)
@ -619,7 +619,7 @@ class NodeAgent:
payload["error"] = error
try:
resp = self._post(
f"/composer/nodes/{self.node_id}/campaign-status",
f"/orchestrator/nodes/{self.node_id}/campaign-status",
json=payload,
timeout=15,
)