simplifying cli
This commit is contained in:
parent
a268f2ab25
commit
84f3a63e8b
|
|
@ -38,16 +38,41 @@ def _cmd_detect(_args: argparse.Namespace) -> int:
|
|||
|
||||
|
||||
def _cmd_register(args: argparse.Namespace) -> int:
|
||||
import urllib.request
|
||||
|
||||
hub_url = args.hub.rstrip("/")
|
||||
url = f"{hub_url}/screens/agents/register"
|
||||
body = json.dumps({"name": args.name or ""}).encode()
|
||||
req = urllib.request.Request(
|
||||
url,
|
||||
data=body,
|
||||
headers={
|
||||
"Content-Type": "application/json",
|
||||
"X-API-Key": args.api_key,
|
||||
},
|
||||
)
|
||||
try:
|
||||
with urllib.request.urlopen(req) as resp:
|
||||
data = json.loads(resp.read())
|
||||
except Exception as e:
|
||||
print(f"error: registration failed: {e}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
agent_id = data["agent_id"]
|
||||
token = data["token"]
|
||||
|
||||
cfg = _config.load()
|
||||
cfg.hub_url = args.url
|
||||
cfg.token = args.token
|
||||
cfg.hub_url = hub_url
|
||||
cfg.agent_id = agent_id
|
||||
cfg.token = token
|
||||
cfg.api_key = args.api_key
|
||||
if args.name:
|
||||
cfg.name = args.name
|
||||
if args.agent_id:
|
||||
cfg.agent_id = args.agent_id
|
||||
cfg.insecure = bool(args.insecure)
|
||||
path = _config.save(cfg)
|
||||
print(f"Saved agent credentials to {path}")
|
||||
|
||||
print(f"Registered agent: {agent_id}")
|
||||
print(f"Credentials saved to {path}")
|
||||
return 0
|
||||
|
||||
|
||||
|
|
@ -75,7 +100,7 @@ def _derive_ws_url(hub_url: str, agent_id: str) -> str:
|
|||
base = "wss://" + base[len("https://"):]
|
||||
elif base.startswith("http://"):
|
||||
base = "ws://" + base[len("http://"):]
|
||||
suffix = f"/api/agent/ws/{agent_id}" if agent_id else "/api/agent/ws"
|
||||
suffix = f"/screens/agent/ws?agent_id={agent_id}" if agent_id else "/screens/agent/ws"
|
||||
return base + suffix
|
||||
|
||||
|
||||
|
|
@ -93,12 +118,11 @@ def main() -> None:
|
|||
sub.add_parser("run", help="Legacy long-poll agent (NodeAgent)")
|
||||
sub.add_parser("detect", help="List available SDR drivers")
|
||||
|
||||
p_reg = sub.add_parser("register", help="Save agent credentials to ~/.ria/agent.json")
|
||||
p_reg.add_argument("--url", required=True, help="RIA Hub base URL")
|
||||
p_reg.add_argument("--token", required=True, help="Agent registration token")
|
||||
p_reg.add_argument("--name", default=None)
|
||||
p_reg.add_argument("--agent-id", dest="agent_id", default=None)
|
||||
p_reg.add_argument("--insecure", action="store_true")
|
||||
p_reg = sub.add_parser("register", help="Register agent with RIA Hub and save credentials")
|
||||
p_reg.add_argument("--hub", required=True, help="RIA Hub URL (e.g. http://whitehorse:3005)")
|
||||
p_reg.add_argument("--api-key", dest="api_key", required=True, help="Hub API key")
|
||||
p_reg.add_argument("--name", default=None, help="Human-friendly agent name")
|
||||
p_reg.add_argument("--insecure", action="store_true", help="Skip TLS verification")
|
||||
|
||||
p_stream = sub.add_parser("stream", help="Run the WebSocket IQ streamer")
|
||||
p_stream.add_argument("--url", default=None, help="Override WebSocket URL")
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ class AgentConfig:
|
|||
token: str = ""
|
||||
name: str = ""
|
||||
insecure: bool = False
|
||||
api_key: str = ""
|
||||
extra: dict = field(default_factory=dict)
|
||||
|
||||
|
||||
|
|
@ -48,6 +49,7 @@ def load(path: Path | None = None) -> AgentConfig:
|
|||
token=data.get("token", ""),
|
||||
name=data.get("name", ""),
|
||||
insecure=bool(data.get("insecure", False)),
|
||||
api_key=data.get("api_key", ""),
|
||||
extra=extra,
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user