hypercli-cli 2026.4.22__tar.gz → 2026.5.5__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.
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/PKG-INFO +5 -4
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/README.md +1 -0
- hypercli_cli-2026.5.5/hypercli_cli/__init__.py +1 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/agent.py +28 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/instances.py +2 -3
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/pyproject.toml +4 -4
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/tests/test_agent_subscribe_command.py +29 -0
- hypercli_cli-2026.4.22/hypercli_cli/__init__.py +0 -1
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/.gitignore +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/agents.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/billing.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/cli.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/comfyui.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/embed.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/files.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/flow.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/jobs.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/keys.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/llm.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/onboard.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/output.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/renders.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/stt.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/tui/__init__.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/tui/job_monitor.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/user.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/voice.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/hypercli_cli/wallet.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/tests/test_agent_env_resolution.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/tests/test_config_command.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/tests/test_exec_shell_dryrun.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/tests/test_flow_command.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/tests/test_flow_visibility.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/tests/test_jobs_list_tags.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/tests/test_keys_command.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/tests/test_llm_command.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/tests/test_me_command.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/tests/test_openclaw_config.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/tests/test_voice_command.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/tests/test_wallet_command.py +0 -0
- {hypercli_cli-2026.4.22 → hypercli_cli-2026.5.5}/tests/test_wallet_migration_integration.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hypercli-cli
|
|
3
|
-
Version: 2026.
|
|
3
|
+
Version: 2026.5.5
|
|
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
|
|
@@ -9,7 +9,7 @@ Author-email: HyperCLI <support@hypercli.com>
|
|
|
9
9
|
License: MIT
|
|
10
10
|
Requires-Python: >=3.10
|
|
11
11
|
Requires-Dist: httpx>=0.27.0
|
|
12
|
-
Requires-Dist: hypercli-sdk>=2026.
|
|
12
|
+
Requires-Dist: hypercli-sdk>=2026.5.5
|
|
13
13
|
Requires-Dist: mutagen>=1.47.0
|
|
14
14
|
Requires-Dist: openai>=2.8.1
|
|
15
15
|
Requires-Dist: pyyaml>=6.0
|
|
@@ -20,11 +20,11 @@ Provides-Extra: all
|
|
|
20
20
|
Requires-Dist: argon2-cffi>=25.0.0; extra == 'all'
|
|
21
21
|
Requires-Dist: eth-account>=0.13.0; extra == 'all'
|
|
22
22
|
Requires-Dist: faster-whisper>=1.1.0; extra == 'all'
|
|
23
|
-
Requires-Dist: hypercli-sdk[comfyui]>=2026.
|
|
23
|
+
Requires-Dist: hypercli-sdk[comfyui]>=2026.5.5; extra == 'all'
|
|
24
24
|
Requires-Dist: web3>=7.0.0; extra == 'all'
|
|
25
25
|
Requires-Dist: x402[evm,httpx]>=2.0.0; extra == 'all'
|
|
26
26
|
Provides-Extra: comfyui
|
|
27
|
-
Requires-Dist: hypercli-sdk[comfyui]>=2026.
|
|
27
|
+
Requires-Dist: hypercli-sdk[comfyui]>=2026.5.5; extra == 'comfyui'
|
|
28
28
|
Provides-Extra: dev
|
|
29
29
|
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
30
30
|
Requires-Dist: ruff>=0.3.0; extra == 'dev'
|
|
@@ -81,6 +81,7 @@ hyper flow text-to-image "a cinematic portrait" --x402
|
|
|
81
81
|
# HyperClaw checkout/config
|
|
82
82
|
hyper agent plans
|
|
83
83
|
hyper agent subscribe basic
|
|
84
|
+
hyper agent activate-code PROMO123
|
|
84
85
|
hyper agent config env
|
|
85
86
|
hyper agent exec <agent_id> "ls -la"
|
|
86
87
|
hyper agent shell <agent_id>
|
|
@@ -41,6 +41,7 @@ hyper flow text-to-image "a cinematic portrait" --x402
|
|
|
41
41
|
# HyperClaw checkout/config
|
|
42
42
|
hyper agent plans
|
|
43
43
|
hyper agent subscribe basic
|
|
44
|
+
hyper agent activate-code PROMO123
|
|
44
45
|
hyper agent config env
|
|
45
46
|
hyper agent exec <agent_id> "ls -la"
|
|
46
47
|
hyper agent shell <agent_id>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2026.5.5"
|
|
@@ -498,6 +498,34 @@ def subscription_summary(
|
|
|
498
498
|
)
|
|
499
499
|
|
|
500
500
|
|
|
501
|
+
@app.command("activate-code")
|
|
502
|
+
def activate_code(
|
|
503
|
+
code: str = typer.Argument(..., help="Activation or promo code to redeem"),
|
|
504
|
+
dev: bool = typer.Option(False, "--dev", help="Use dev API"),
|
|
505
|
+
json_output: bool = typer.Option(False, "--json", help="Print raw JSON response"),
|
|
506
|
+
):
|
|
507
|
+
"""Redeem a HyperClaw activation code for the current account."""
|
|
508
|
+
client = _get_agent_query_client(dev)
|
|
509
|
+
result = client.agent.redeem_grant_code(code)
|
|
510
|
+
|
|
511
|
+
if json_output:
|
|
512
|
+
console.print_json(json.dumps(result, indent=2, default=str))
|
|
513
|
+
return
|
|
514
|
+
|
|
515
|
+
grant = result.get("grant") or {}
|
|
516
|
+
entitlement = result.get("entitlement") or {}
|
|
517
|
+
console.print("\n[bold]HyperClaw Code Activated[/bold]\n")
|
|
518
|
+
console.print(f"Code: [bold]{grant.get('code') or code}[/bold]")
|
|
519
|
+
console.print(f"Plan: [bold]{entitlement.get('plan_name') or entitlement.get('plan_id') or grant.get('plan_id') or ''}[/bold]")
|
|
520
|
+
if entitlement.get("starts_at"):
|
|
521
|
+
console.print(f"Starts: {entitlement.get('starts_at')}")
|
|
522
|
+
if entitlement.get("expires_at"):
|
|
523
|
+
console.print(f"Expires: {entitlement.get('expires_at')}")
|
|
524
|
+
tags = entitlement.get("tags") or grant.get("tags") or []
|
|
525
|
+
if tags:
|
|
526
|
+
console.print(f"Tags: {', '.join(str(tag) for tag in tags)}")
|
|
527
|
+
|
|
528
|
+
|
|
501
529
|
@app.command("models")
|
|
502
530
|
def models(
|
|
503
531
|
dev: bool = typer.Option(False, "--dev", help="Use dev API"),
|
|
@@ -383,11 +383,10 @@ def launch(
|
|
|
383
383
|
if raw_tcp_ports:
|
|
384
384
|
console.print(f" TCP: raw TCP ports: {', '.join(map(str, raw_tcp_ports))}")
|
|
385
385
|
# Display cold boot status
|
|
386
|
-
import sys
|
|
387
386
|
if job.cold_boot:
|
|
388
|
-
console.print("[yellow]⏳ Cold boot — instance provisioning may take up to 15 minutes[/]"
|
|
387
|
+
console.print("[yellow]⏳ Cold boot — instance provisioning may take up to 15 minutes[/]")
|
|
389
388
|
else:
|
|
390
|
-
console.print("[green]🚀 Warm instance available — should be ready in under a minute[/]"
|
|
389
|
+
console.print("[green]🚀 Warm instance available — should be ready in under a minute[/]")
|
|
391
390
|
else:
|
|
392
391
|
success(f"Instance launched: {job.job_id}")
|
|
393
392
|
console.print(f" State: {job.state}")
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "hypercli-cli"
|
|
7
|
-
version = "2026.
|
|
7
|
+
version = "2026.5.5"
|
|
8
8
|
description = "CLI for HyperCLI - GPU orchestration and LLM API"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -13,7 +13,7 @@ authors = [
|
|
|
13
13
|
{ name = "HyperCLI", email = "support@hypercli.com" }
|
|
14
14
|
]
|
|
15
15
|
dependencies = [
|
|
16
|
-
"hypercli-sdk>=2026.
|
|
16
|
+
"hypercli-sdk>=2026.5.5",
|
|
17
17
|
"openai>=2.8.1",
|
|
18
18
|
"typer>=0.20.0",
|
|
19
19
|
"rich>=14.2.0",
|
|
@@ -25,7 +25,7 @@ dependencies = [
|
|
|
25
25
|
|
|
26
26
|
[project.optional-dependencies]
|
|
27
27
|
comfyui = [
|
|
28
|
-
"hypercli-sdk[comfyui]>=2026.
|
|
28
|
+
"hypercli-sdk[comfyui]>=2026.5.5",
|
|
29
29
|
]
|
|
30
30
|
wallet = [
|
|
31
31
|
"x402[httpx,evm]>=2.0.0",
|
|
@@ -38,7 +38,7 @@ stt = [
|
|
|
38
38
|
"faster-whisper>=1.1.0",
|
|
39
39
|
]
|
|
40
40
|
all = [
|
|
41
|
-
"hypercli-sdk[comfyui]>=2026.
|
|
41
|
+
"hypercli-sdk[comfyui]>=2026.5.5",
|
|
42
42
|
"x402[httpx,evm]>=2.0.0",
|
|
43
43
|
"eth-account>=0.13.0",
|
|
44
44
|
"web3>=7.0.0",
|
|
@@ -108,3 +108,32 @@ def test_extract_plan_purchase_url_from_discovery_ignores_nonmatching_resources(
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
assert agent_mod._extract_plan_purchase_url_from_discovery(discovery, "basic") is None
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
def test_agent_activate_code_redeems_via_sdk(monkeypatch):
|
|
114
|
+
class _FakeAgent:
|
|
115
|
+
def redeem_grant_code(self, code: str):
|
|
116
|
+
assert code == "promo-123"
|
|
117
|
+
return {
|
|
118
|
+
"grant": {"id": "grant-1", "type": "ACTIVATION_CODE", "code": "promo-123", "plan_id": "basic"},
|
|
119
|
+
"entitlement": {
|
|
120
|
+
"id": "ent-1",
|
|
121
|
+
"plan_id": "basic",
|
|
122
|
+
"plan_name": "Basic",
|
|
123
|
+
"starts_at": "2026-04-27T00:00:00Z",
|
|
124
|
+
"expires_at": "2026-05-27T00:00:00Z",
|
|
125
|
+
"tags": ["customer=acme"],
|
|
126
|
+
},
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
class _FakeClient:
|
|
130
|
+
agent = _FakeAgent()
|
|
131
|
+
|
|
132
|
+
monkeypatch.setattr(agent_mod, "_get_agent_query_client", lambda dev: _FakeClient())
|
|
133
|
+
|
|
134
|
+
result = runner.invoke(app, ["agent", "activate-code", "promo-123"])
|
|
135
|
+
|
|
136
|
+
assert result.exit_code == 0
|
|
137
|
+
assert "HyperClaw Code Activated" in result.output
|
|
138
|
+
assert "promo-123" in result.output
|
|
139
|
+
assert "Basic" in result.output
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "2026.4.22"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|