hypercli-sdk 2026.4.24__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_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/PKG-INFO +4 -1
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/README.md +3 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/__init__.py +1 -1
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/agent.py +9 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/pyproject.toml +1 -1
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_claw.py +17 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/.gitignore +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/agents.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/billing.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/client.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/config.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/files.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/gateway.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/http.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/instances.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/job/__init__.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/job/base.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/job/comfyui.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/job/gradio.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/jobs.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/keys.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/logs.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/models.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/openclaw/__init__.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/openclaw/gateway.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/renders.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/shell.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/user.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/voice.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/x402.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/conftest.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/test_agents.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/test_auth.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/test_billing.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/test_instances.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/test_jobs_dryrun.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/test_keys.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/test_renders.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_agents.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_apply_params.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_bootstrap_console_test_key.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_bootstrap_dev_test_keys.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_config.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_exec_shell_dryrun.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_gateway.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_gateway_retry.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_graph_to_api.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_http.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_jobs.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_keys.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_models.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_renders_subscription.py +0 -0
- {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_voice.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hypercli-sdk
|
|
3
|
-
Version: 2026.
|
|
3
|
+
Version: 2026.5.5
|
|
4
4
|
Summary: Python SDK for HyperCLI - GPU orchestration and HyperAgent API
|
|
5
5
|
Project-URL: Homepage, https://hypercli.com
|
|
6
6
|
Project-URL: Documentation, https://docs.hypercli.com
|
|
@@ -120,6 +120,7 @@ from openai import OpenAI
|
|
|
120
120
|
|
|
121
121
|
sdk = HyperCLI(api_key="hyper_api_key", agent_api_key="sk-agent")
|
|
122
122
|
plans = sdk.agent.plans()
|
|
123
|
+
activation = sdk.agent.redeem_grant_code("PROMO123")
|
|
123
124
|
|
|
124
125
|
client = OpenAI(
|
|
125
126
|
api_key="your_hyperagent_api_key",
|
|
@@ -132,6 +133,8 @@ response = client.chat.completions.create(
|
|
|
132
133
|
)
|
|
133
134
|
```
|
|
134
135
|
|
|
136
|
+
`redeem_grant_code()` applies a promo/activation code to the current HyperClaw account and returns the created entitlement.
|
|
137
|
+
|
|
135
138
|
## OpenClaw Agents
|
|
136
139
|
|
|
137
140
|
OpenClaw uses the generic deployment launch surface. `registry_url`, `registry_auth`, `sync_root`, and `sync_enabled` are generic deployment options; the OpenClaw helpers only add defaults such as routes, image, and `sync_root=/home/node`.
|
|
@@ -89,6 +89,7 @@ from openai import OpenAI
|
|
|
89
89
|
|
|
90
90
|
sdk = HyperCLI(api_key="hyper_api_key", agent_api_key="sk-agent")
|
|
91
91
|
plans = sdk.agent.plans()
|
|
92
|
+
activation = sdk.agent.redeem_grant_code("PROMO123")
|
|
92
93
|
|
|
93
94
|
client = OpenAI(
|
|
94
95
|
api_key="your_hyperagent_api_key",
|
|
@@ -101,6 +102,8 @@ response = client.chat.completions.create(
|
|
|
101
102
|
)
|
|
102
103
|
```
|
|
103
104
|
|
|
105
|
+
`redeem_grant_code()` applies a promo/activation code to the current HyperClaw account and returns the created entitlement.
|
|
106
|
+
|
|
104
107
|
## OpenClaw Agents
|
|
105
108
|
|
|
106
109
|
OpenClaw uses the generic deployment launch surface. `registry_url`, `registry_auth`, `sync_root`, and `sync_enabled` are generic deployment options; the OpenClaw helpers only add defaults such as routes, image, and `sync_root=/home/node`.
|
|
@@ -911,6 +911,15 @@ class HyperAgent:
|
|
|
911
911
|
response.raise_for_status()
|
|
912
912
|
return response.json()
|
|
913
913
|
|
|
914
|
+
def redeem_grant_code(self, code: str) -> Dict[str, Any]:
|
|
915
|
+
response = self._http._session.post(
|
|
916
|
+
f"{self._control_base_url}/billing/grants/redeem",
|
|
917
|
+
headers={"Authorization": f"Bearer {self._api_key}"},
|
|
918
|
+
json={"code": str(code)},
|
|
919
|
+
)
|
|
920
|
+
response.raise_for_status()
|
|
921
|
+
return response.json()
|
|
922
|
+
|
|
914
923
|
def purchase_via_x402(
|
|
915
924
|
self,
|
|
916
925
|
plan_id: str,
|
|
@@ -318,6 +318,23 @@ class TestHyperAgentClient:
|
|
|
318
318
|
"https://api.hypercli.com/agents/subscriptions/sub-1/cancel",
|
|
319
319
|
headers={"Authorization": "Bearer sk-hyper-test"},
|
|
320
320
|
)
|
|
321
|
+
|
|
322
|
+
def test_redeem_grant_code(self, mock_http):
|
|
323
|
+
mock_http._session.post.return_value.json.return_value = {
|
|
324
|
+
"grant": {"id": "grant-1", "code": "promo-123"},
|
|
325
|
+
"entitlement": {"id": "ent-1", "plan_id": "basic"},
|
|
326
|
+
}
|
|
327
|
+
mock_http._session.post.return_value.raise_for_status = Mock()
|
|
328
|
+
|
|
329
|
+
agent = HyperAgent(mock_http, agent_api_key="sk-hyper-test", agents_api_base_url="https://api.hypercli.com/agents")
|
|
330
|
+
result = agent.redeem_grant_code("promo-123")
|
|
331
|
+
|
|
332
|
+
assert result["grant"]["code"] == "promo-123"
|
|
333
|
+
mock_http._session.post.assert_called_with(
|
|
334
|
+
"https://api.hypercli.com/agents/billing/grants/redeem",
|
|
335
|
+
headers={"Authorization": "Bearer sk-hyper-test"},
|
|
336
|
+
json={"code": "promo-123"},
|
|
337
|
+
)
|
|
321
338
|
|
|
322
339
|
def test_openai_client_creation(self, mock_http):
|
|
323
340
|
"""Test that OpenAI client is created with correct config."""
|
|
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
|
|
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
|