hypercli-cli 0.7.10__tar.gz → 0.7.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hypercli-cli
3
- Version: 0.7.10
3
+ Version: 0.7.11
4
4
  Summary: CLI for HyperCLI - GPU orchestration and LLM API
5
5
  Project-URL: Homepage, https://hypercli.com
6
6
  Project-URL: Documentation, https://docs.hypercli.com
@@ -301,16 +301,38 @@ def plans(
301
301
 
302
302
  OPENCLAW_CONFIG_PATH = Path.home() / ".openclaw" / "openclaw.json"
303
303
 
304
- HYPERCLAW_MODELS = [
305
- {
306
- "id": "kimi-k2.5",
307
- "name": "Kimi K2.5",
308
- "reasoning": False,
309
- "input": ["text"],
310
- "contextWindow": 200000,
311
- "maxTokens": 8192
312
- },
313
- ]
304
+
305
+ def fetch_models(api_base: str = PROD_API_BASE) -> list[dict]:
306
+ """Fetch available models from HyperClaw /v1/models endpoint."""
307
+ import httpx
308
+ try:
309
+ resp = httpx.get(f"{api_base}/api/v1/models", timeout=10)
310
+ resp.raise_for_status()
311
+ data = resp.json().get("data", [])
312
+ return [
313
+ {
314
+ "id": m["id"],
315
+ "name": m.get("id", "").replace("-", " ").title(),
316
+ "reasoning": False,
317
+ "input": ["text"],
318
+ "contextWindow": m.get("context_window", 200000),
319
+ "maxTokens": m.get("max_tokens", 8192),
320
+ }
321
+ for m in data
322
+ ]
323
+ except Exception as e:
324
+ console.print(f"[yellow]⚠ Could not fetch models from API: {e}[/yellow]")
325
+ console.print("[yellow] Using fallback model list[/yellow]")
326
+ return [
327
+ {
328
+ "id": "kimi-k2.5",
329
+ "name": "Kimi K2.5",
330
+ "reasoning": False,
331
+ "input": ["text"],
332
+ "contextWindow": 200000,
333
+ "maxTokens": 8192,
334
+ },
335
+ ]
314
336
 
315
337
 
316
338
  @app.command("openclaw-setup")
@@ -344,19 +366,22 @@ def openclaw_setup(
344
366
  else:
345
367
  config = {}
346
368
 
369
+ # Fetch current model list from API
370
+ models = fetch_models()
371
+
347
372
  # Patch only models.providers.hyperclaw
348
373
  config.setdefault("models", {}).setdefault("providers", {})
349
374
  config["models"]["providers"]["hyperclaw"] = {
350
375
  "baseUrl": "https://api.hyperclaw.app/v1",
351
376
  "apiKey": api_key,
352
377
  "api": "openai-completions",
353
- "models": HYPERCLAW_MODELS,
378
+ "models": models,
354
379
  }
355
380
 
356
381
  # Optionally set default model
357
382
  if default:
358
383
  config.setdefault("agents", {}).setdefault("defaults", {}).setdefault("model", {})
359
- config["agents"]["defaults"]["model"]["primary"] = "hyperclaw/kimi-k2.5"
384
+ config["agents"]["defaults"]["model"]["primary"] = f"hyperclaw/{models[0]['id']}"
360
385
 
361
386
  # Write back
362
387
  OPENCLAW_CONFIG_PATH.parent.mkdir(parents=True, exist_ok=True)
@@ -366,7 +391,8 @@ def openclaw_setup(
366
391
 
367
392
  console.print(f"[green]✅ Patched {OPENCLAW_CONFIG_PATH}[/green]")
368
393
  console.print(f" provider: hyperclaw key: {api_key[:16]}...")
369
- console.print(" model: hyperclaw/kimi-k2.5")
394
+ for m in models:
395
+ console.print(f" model: hyperclaw/{m['id']}")
370
396
  if default:
371
- console.print(" default model: hyperclaw/kimi-k2.5")
397
+ console.print(f" default model: hyperclaw/{models[0]['id']}")
372
398
  console.print("\nRun: [bold]openclaw gateway restart[/bold]")
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "hypercli-cli"
7
- version = "0.7.10"
7
+ version = "0.7.11"
8
8
  description = "CLI for HyperCLI - GPU orchestration and LLM API"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
File without changes
File without changes