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.
Files changed (53) hide show
  1. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/PKG-INFO +4 -1
  2. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/README.md +3 -0
  3. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/__init__.py +1 -1
  4. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/agent.py +9 -0
  5. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/pyproject.toml +1 -1
  6. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_claw.py +17 -0
  7. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/.gitignore +0 -0
  8. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/agents.py +0 -0
  9. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/billing.py +0 -0
  10. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/client.py +0 -0
  11. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/config.py +0 -0
  12. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/files.py +0 -0
  13. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/gateway.py +0 -0
  14. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/http.py +0 -0
  15. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/instances.py +0 -0
  16. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/job/__init__.py +0 -0
  17. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/job/base.py +0 -0
  18. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/job/comfyui.py +0 -0
  19. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/job/gradio.py +0 -0
  20. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/jobs.py +0 -0
  21. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/keys.py +0 -0
  22. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/logs.py +0 -0
  23. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/models.py +0 -0
  24. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/openclaw/__init__.py +0 -0
  25. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/openclaw/gateway.py +0 -0
  26. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/renders.py +0 -0
  27. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/shell.py +0 -0
  28. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/user.py +0 -0
  29. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/voice.py +0 -0
  30. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/hypercli/x402.py +0 -0
  31. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/conftest.py +0 -0
  32. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/test_agents.py +0 -0
  33. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/test_auth.py +0 -0
  34. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/test_billing.py +0 -0
  35. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/test_instances.py +0 -0
  36. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/test_jobs_dryrun.py +0 -0
  37. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/test_keys.py +0 -0
  38. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/integration/test_renders.py +0 -0
  39. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_agents.py +0 -0
  40. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_apply_params.py +0 -0
  41. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_bootstrap_console_test_key.py +0 -0
  42. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_bootstrap_dev_test_keys.py +0 -0
  43. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_config.py +0 -0
  44. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_exec_shell_dryrun.py +0 -0
  45. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_gateway.py +0 -0
  46. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_gateway_retry.py +0 -0
  47. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_graph_to_api.py +0 -0
  48. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_http.py +0 -0
  49. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_jobs.py +0 -0
  50. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_keys.py +0 -0
  51. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_models.py +0 -0
  52. {hypercli_sdk-2026.4.24 → hypercli_sdk-2026.5.5}/tests/test_renders_subscription.py +0 -0
  53. {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.4.24
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`.
@@ -78,7 +78,7 @@ from .gateway import (
78
78
  extract_gateway_chat_tool_calls,
79
79
  normalize_gateway_chat_message,
80
80
  )
81
- __version__ = "2026.4.24"
81
+ __version__ = "2026.5.5"
82
82
  __all__ = [
83
83
  "HyperCLI",
84
84
  "configure",
@@ -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,
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "hypercli-sdk"
7
- version = "2026.4.24"
7
+ version = "2026.5.5"
8
8
  description = "Python SDK for HyperCLI - GPU orchestration and HyperAgent API"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -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."""