nepher-cli-test 0.2.4__tar.gz → 0.2.6__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.
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/PKG-INFO +60 -46
- nepher_cli_test-0.2.6/README.test.md +182 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/pyproject.toml +3 -3
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/__init__.py +1 -1
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/commands/account.py +1 -1
- nepher_cli_test-0.2.4/README.md +0 -168
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/.gitignore +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/__main__.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/cli.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/cli_test.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/commands/__init__.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/commands/envhub.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/commands/hackathon.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/commands/highlight.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/commands/simstore.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/commands/tournament.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/config.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/core/__init__.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/core/credentials.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/core/http.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/envhub/__init__.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/envhub/cache.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/envhub/config.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/py.typed +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/tournament/__init__.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/tournament/agent_check.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/tournament/api.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/tournament/packer.py +0 -0
- {nepher_cli_test-0.2.4 → nepher_cli_test-0.2.6}/src/nepher_cli/tournament/wallet.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nepher-cli-test
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.6
|
|
4
4
|
Summary: npcli-test — Nepher CLI for staging (api.staging.nepher.ai)
|
|
5
5
|
Project-URL: Homepage, https://github.com/nepher-ai/nepher-cli
|
|
6
6
|
Author: Nepher
|
|
@@ -26,76 +26,90 @@ Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
|
26
26
|
Requires-Dist: ruff>=0.4.0; extra == 'dev'
|
|
27
27
|
Description-Content-Type: text/markdown
|
|
28
28
|
|
|
29
|
-
# nepher-cli
|
|
29
|
+
# nepher-cli-test
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
**Staging build** of the [Nepher CLI](https://github.com/nepher-ai/nepher-cli) — same commands as production, but defaults to **staging APIs** (`api.staging.nepher.ai`).
|
|
32
|
+
|
|
33
|
+
For production, use [`nepher-cli`](https://pypi.org/project/nepher-cli/) and the `npcli` command instead.
|
|
32
34
|
|
|
33
35
|
**Requires:** Python 3.10+
|
|
34
36
|
|
|
35
37
|
## Install
|
|
36
38
|
|
|
37
39
|
```bash
|
|
38
|
-
pip install nepher-cli
|
|
40
|
+
pip install nepher-cli-test
|
|
39
41
|
```
|
|
40
42
|
|
|
41
|
-
|
|
43
|
+
The `npcli-test` command is registered after install.
|
|
42
44
|
|
|
43
45
|
```bash
|
|
44
|
-
npcli --version
|
|
45
|
-
npcli --help
|
|
46
|
+
npcli-test --version
|
|
47
|
+
npcli-test --help
|
|
46
48
|
```
|
|
47
49
|
|
|
50
|
+
## Staging API endpoints
|
|
51
|
+
|
|
52
|
+
| Service | Default base |
|
|
53
|
+
|---------|--------------|
|
|
54
|
+
| Account | `https://api.staging.nepher.ai/account` |
|
|
55
|
+
| Tournament | `https://api.staging.nepher.ai/tournament` |
|
|
56
|
+
| EnvHub | `https://api.staging.nepher.ai/envhub` |
|
|
57
|
+
| Hackathon | `https://api.staging.nepher.ai/hackathon` |
|
|
58
|
+
| SimStore | `https://simstore-staging.nepher.ai` |
|
|
59
|
+
|
|
60
|
+
Override with `NEPHER_API_URL` (and service-specific vars) if needed.
|
|
61
|
+
|
|
48
62
|
## Commands
|
|
49
63
|
|
|
50
64
|
| Command / Group | Description |
|
|
51
65
|
|-----------------|-------------|
|
|
52
|
-
| `npcli login` | Log in with a Nepher API key |
|
|
53
|
-
| `npcli whoami` | Show the currently authenticated user |
|
|
54
|
-
| `npcli logout` | Clear locally stored credentials |
|
|
55
|
-
| `npcli account` | API keys and coldkey registration |
|
|
56
|
-
| `npcli tournament` | Browse tournaments, submit agents, leaderboards |
|
|
57
|
-
| `npcli envhub` | Manage Isaac Lab environment bundles |
|
|
58
|
-
| `npcli hackathon` | Browse and submit to hackathons |
|
|
59
|
-
| `npcli simstore` | SimStore marketplace *(coming soon)* |
|
|
66
|
+
| `npcli-test login` | Log in with a Nepher API key |
|
|
67
|
+
| `npcli-test whoami` | Show the currently authenticated user |
|
|
68
|
+
| `npcli-test logout` | Clear locally stored credentials |
|
|
69
|
+
| `npcli-test account` | API keys and coldkey registration |
|
|
70
|
+
| `npcli-test tournament` | Browse tournaments, submit agents, leaderboards |
|
|
71
|
+
| `npcli-test envhub` | Manage Isaac Lab environment bundles |
|
|
72
|
+
| `npcli-test hackathon` | Browse and submit to hackathons |
|
|
73
|
+
| `npcli-test simstore` | SimStore marketplace *(coming soon)* |
|
|
60
74
|
|
|
61
75
|
## Quick Start
|
|
62
76
|
|
|
63
77
|
### Authenticate
|
|
64
78
|
|
|
65
79
|
```bash
|
|
66
|
-
npcli login --api-key nepher_xxxxxxxx
|
|
67
|
-
npcli whoami
|
|
68
|
-
npcli logout
|
|
80
|
+
npcli-test login --api-key nepher_xxxxxxxx
|
|
81
|
+
npcli-test whoami
|
|
82
|
+
npcli-test logout
|
|
69
83
|
```
|
|
70
84
|
|
|
71
|
-
Get
|
|
85
|
+
Get a staging API key at [staging.nepher.ai/account](https://staging.nepher.ai/account) → Account → API Keys.
|
|
72
86
|
For CI/CD, set `NEPHER_API_KEY=nepher_xxxxxxxx` instead of logging in.
|
|
73
87
|
|
|
74
88
|
### Tournaments
|
|
75
89
|
|
|
76
90
|
```bash
|
|
77
|
-
npcli tournament list
|
|
78
|
-
npcli tournament list-active
|
|
79
|
-
npcli tournament status <tournament_id>
|
|
80
|
-
npcli tournament leaderboard <tournament_id>
|
|
91
|
+
npcli-test tournament list
|
|
92
|
+
npcli-test tournament list-active
|
|
93
|
+
npcli-test tournament status <tournament_id>
|
|
94
|
+
npcli-test tournament leaderboard <tournament_id>
|
|
81
95
|
```
|
|
82
96
|
|
|
83
97
|
Check your agent directory structure (no extra dependencies needed):
|
|
84
98
|
|
|
85
99
|
```bash
|
|
86
|
-
npcli tournament check --path ./my-agent
|
|
87
|
-
npcli tournament check --path ./my-agent --verbose # also show recommended-file warnings
|
|
100
|
+
npcli-test tournament check --path ./my-agent
|
|
101
|
+
npcli-test tournament check --path ./my-agent --verbose # also show recommended-file warnings
|
|
88
102
|
```
|
|
89
103
|
|
|
90
104
|
Submit an agent (requires `bittensor-wallet` for wallet signing):
|
|
91
105
|
|
|
92
106
|
```bash
|
|
93
107
|
pip install bittensor-wallet
|
|
94
|
-
# or: pip install "nepher-cli[bittensor]"
|
|
108
|
+
# or: pip install "nepher-cli-test[bittensor]"
|
|
95
109
|
```
|
|
96
110
|
|
|
97
111
|
```bash
|
|
98
|
-
npcli tournament submit --path ./my-agent --wallet-name miner --wallet-hotkey default
|
|
112
|
+
npcli-test tournament submit --path ./my-agent --wallet-name miner --wallet-hotkey default
|
|
99
113
|
```
|
|
100
114
|
|
|
101
115
|
Full options for `submit`:
|
|
@@ -113,20 +127,20 @@ Full options for `submit`:
|
|
|
113
127
|
### EnvHub
|
|
114
128
|
|
|
115
129
|
```bash
|
|
116
|
-
npcli envhub list
|
|
117
|
-
npcli envhub download <env_id>
|
|
118
|
-
npcli envhub upload ./my-bundle --category navigation
|
|
119
|
-
npcli envhub cache list
|
|
120
|
-
npcli envhub cache info
|
|
121
|
-
npcli envhub cache clear
|
|
130
|
+
npcli-test envhub list
|
|
131
|
+
npcli-test envhub download <env_id>
|
|
132
|
+
npcli-test envhub upload ./my-bundle --category navigation
|
|
133
|
+
npcli-test envhub cache list
|
|
134
|
+
npcli-test envhub cache info
|
|
135
|
+
npcli-test envhub cache clear
|
|
122
136
|
```
|
|
123
137
|
|
|
124
138
|
### Hackathons
|
|
125
139
|
|
|
126
140
|
```bash
|
|
127
|
-
npcli hackathon list
|
|
141
|
+
npcli-test hackathon list
|
|
128
142
|
|
|
129
|
-
npcli hackathon submit \
|
|
143
|
+
npcli-test hackathon submit \
|
|
130
144
|
--title "My entry" \
|
|
131
145
|
--submission ./my-project \
|
|
132
146
|
--assets ./my-assets
|
|
@@ -147,9 +161,9 @@ Full options:
|
|
|
147
161
|
### API Keys
|
|
148
162
|
|
|
149
163
|
```bash
|
|
150
|
-
npcli account api-keys list
|
|
151
|
-
npcli account api-keys create --name "CI key" --platform
|
|
152
|
-
npcli account api-keys revoke <key_id>
|
|
164
|
+
npcli-test account api-keys list
|
|
165
|
+
npcli-test account api-keys create --name "CI key" --platform hackathon
|
|
166
|
+
npcli-test account api-keys revoke <key_id>
|
|
153
167
|
```
|
|
154
168
|
|
|
155
169
|
### Coldkey Registration
|
|
@@ -158,7 +172,7 @@ Bind a Bittensor coldkey to your account (requires `bittensor-wallet`; `btcli` i
|
|
|
158
172
|
|
|
159
173
|
```bash
|
|
160
174
|
pip install bittensor-wallet
|
|
161
|
-
npcli account register-coldkey --wallet <wallet_name>
|
|
175
|
+
npcli-test account register-coldkey --wallet <wallet_name>
|
|
162
176
|
```
|
|
163
177
|
|
|
164
178
|
Signing uses the local coldkey via `bittensor-wallet` and does not import `btcli`. If you still have a mixed Bittensor venv (`scalecodec` + `cyscale`), `register-coldkey` keeps working as long as `bittensor-wallet` is installed.
|
|
@@ -174,21 +188,21 @@ Signing uses the local coldkey via `bittensor-wallet` and does not import `btcli
|
|
|
174
188
|
|
|
175
189
|
| Error | Fix |
|
|
176
190
|
|-------|-----|
|
|
177
|
-
| `npcli: command not found` | Ensure `pip install` succeeded and Python scripts dir is on `PATH` |
|
|
191
|
+
| `npcli-test: command not found` | Ensure `pip install` succeeded and Python scripts dir is on `PATH` |
|
|
178
192
|
| `invalid api key format` | Key must start with `nepher_` |
|
|
179
193
|
| `api key does not have hackathon access` | Enable Hackathon scope or use an unrestricted key |
|
|
180
|
-
| `api key expired` | Run `npcli account api-keys create` |
|
|
194
|
+
| `api key expired` | Run `npcli-test account api-keys create` |
|
|
181
195
|
| `Several hackathons are accepting submissions` | Re-run with `--hackathon-id` |
|
|
182
196
|
| `bittensor-wallet not installed` | `pip install bittensor-wallet` (needed for `tournament submit` and `account register-coldkey`) |
|
|
183
|
-
| `Not logged in` | `npcli login --api-key nepher_...` |
|
|
184
|
-
| `Conflict detected: 'scalecodec' ... conflicts with 'cyscale'` | Leftover `scalecodec` after a Bittensor upgrade. Prefer `pip install bittensor-wallet` so npcli never needs `btcli`. To repair `btcli` itself: `pip uninstall scalecodec cyscale -y && pip install -U cyscale --force-reinstall` |
|
|
197
|
+
| `Not logged in` | `npcli-test login --api-key nepher_...` |
|
|
198
|
+
| `Conflict detected: 'scalecodec' ... conflicts with 'cyscale'` | Leftover `scalecodec` after a Bittensor upgrade. Prefer `pip install bittensor-wallet` so npcli-test never needs `btcli`. To repair `btcli` itself: `pip uninstall scalecodec cyscale -y && pip install -U cyscale --force-reinstall` |
|
|
185
199
|
|
|
186
200
|
Run any command with `--help` for full flag details:
|
|
187
201
|
|
|
188
202
|
```bash
|
|
189
|
-
npcli --help
|
|
190
|
-
npcli hackathon submit --help
|
|
191
|
-
npcli tournament submit --help
|
|
203
|
+
npcli-test --help
|
|
204
|
+
npcli-test hackathon submit --help
|
|
205
|
+
npcli-test tournament submit --help
|
|
192
206
|
```
|
|
193
207
|
|
|
194
208
|
## License
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# nepher-cli-test
|
|
2
|
+
|
|
3
|
+
**Staging build** of the [Nepher CLI](https://github.com/nepher-ai/nepher-cli) — same commands as production, but defaults to **staging APIs** (`api.staging.nepher.ai`).
|
|
4
|
+
|
|
5
|
+
For production, use [`nepher-cli`](https://pypi.org/project/nepher-cli/) and the `npcli` command instead.
|
|
6
|
+
|
|
7
|
+
**Requires:** Python 3.10+
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pip install nepher-cli-test
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
The `npcli-test` command is registered after install.
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npcli-test --version
|
|
19
|
+
npcli-test --help
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Staging API endpoints
|
|
23
|
+
|
|
24
|
+
| Service | Default base |
|
|
25
|
+
|---------|--------------|
|
|
26
|
+
| Account | `https://api.staging.nepher.ai/account` |
|
|
27
|
+
| Tournament | `https://api.staging.nepher.ai/tournament` |
|
|
28
|
+
| EnvHub | `https://api.staging.nepher.ai/envhub` |
|
|
29
|
+
| Hackathon | `https://api.staging.nepher.ai/hackathon` |
|
|
30
|
+
| SimStore | `https://simstore-staging.nepher.ai` |
|
|
31
|
+
|
|
32
|
+
Override with `NEPHER_API_URL` (and service-specific vars) if needed.
|
|
33
|
+
|
|
34
|
+
## Commands
|
|
35
|
+
|
|
36
|
+
| Command / Group | Description |
|
|
37
|
+
|-----------------|-------------|
|
|
38
|
+
| `npcli-test login` | Log in with a Nepher API key |
|
|
39
|
+
| `npcli-test whoami` | Show the currently authenticated user |
|
|
40
|
+
| `npcli-test logout` | Clear locally stored credentials |
|
|
41
|
+
| `npcli-test account` | API keys and coldkey registration |
|
|
42
|
+
| `npcli-test tournament` | Browse tournaments, submit agents, leaderboards |
|
|
43
|
+
| `npcli-test envhub` | Manage Isaac Lab environment bundles |
|
|
44
|
+
| `npcli-test hackathon` | Browse and submit to hackathons |
|
|
45
|
+
| `npcli-test simstore` | SimStore marketplace *(coming soon)* |
|
|
46
|
+
|
|
47
|
+
## Quick Start
|
|
48
|
+
|
|
49
|
+
### Authenticate
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npcli-test login --api-key nepher_xxxxxxxx
|
|
53
|
+
npcli-test whoami
|
|
54
|
+
npcli-test logout
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Get a staging API key at [staging.nepher.ai/account](https://staging.nepher.ai/account) → Account → API Keys.
|
|
58
|
+
For CI/CD, set `NEPHER_API_KEY=nepher_xxxxxxxx` instead of logging in.
|
|
59
|
+
|
|
60
|
+
### Tournaments
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
npcli-test tournament list
|
|
64
|
+
npcli-test tournament list-active
|
|
65
|
+
npcli-test tournament status <tournament_id>
|
|
66
|
+
npcli-test tournament leaderboard <tournament_id>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Check your agent directory structure (no extra dependencies needed):
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npcli-test tournament check --path ./my-agent
|
|
73
|
+
npcli-test tournament check --path ./my-agent --verbose # also show recommended-file warnings
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Submit an agent (requires `bittensor-wallet` for wallet signing):
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
pip install bittensor-wallet
|
|
80
|
+
# or: pip install "nepher-cli-test[bittensor]"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
npcli-test tournament submit --path ./my-agent --wallet-name miner --wallet-hotkey default
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Full options for `submit`:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
--path <path> Agent directory
|
|
91
|
+
--wallet-name <str> Bittensor wallet name (default: miner)
|
|
92
|
+
--wallet-hotkey <str> Bittensor wallet hotkey (default: default)
|
|
93
|
+
--api-key <key> Nepher API key (falls back to stored credentials)
|
|
94
|
+
--tournament-id <id> Target tournament ID (required when multiple are active)
|
|
95
|
+
--api-url <url> Override tournament API URL
|
|
96
|
+
-v / --verbose Verbose output
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### EnvHub
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
npcli-test envhub list
|
|
103
|
+
npcli-test envhub download <env_id>
|
|
104
|
+
npcli-test envhub upload ./my-bundle --category navigation
|
|
105
|
+
npcli-test envhub cache list
|
|
106
|
+
npcli-test envhub cache info
|
|
107
|
+
npcli-test envhub cache clear
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Hackathons
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
npcli-test hackathon list
|
|
114
|
+
|
|
115
|
+
npcli-test hackathon submit \
|
|
116
|
+
--title "My entry" \
|
|
117
|
+
--submission ./my-project \
|
|
118
|
+
--assets ./my-assets
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Full options:
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
--hackathon-id <uuid> Required when multiple hackathons are open
|
|
125
|
+
--title <str> Entry title
|
|
126
|
+
--description <markdown> Entry description
|
|
127
|
+
--thumbnail <file> Cover image (JPEG, PNG, WebP, GIF)
|
|
128
|
+
--submission <path> Project folder or submission.zip
|
|
129
|
+
--assets <path> Assets folder or assets.zip (images, videos, PDFs)
|
|
130
|
+
--public-source Mark source as public
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### API Keys
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
npcli-test account api-keys list
|
|
137
|
+
npcli-test account api-keys create --name "CI key" --platform hackathon
|
|
138
|
+
npcli-test account api-keys revoke <key_id>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Coldkey Registration
|
|
142
|
+
|
|
143
|
+
Bind a Bittensor coldkey to your account (requires `bittensor-wallet`; `btcli` is optional fallback):
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
pip install bittensor-wallet
|
|
147
|
+
npcli-test account register-coldkey --wallet <wallet_name>
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Signing uses the local coldkey via `bittensor-wallet` and does not import `btcli`. If you still have a mixed Bittensor venv (`scalecodec` + `cyscale`), `register-coldkey` keeps working as long as `bittensor-wallet` is installed.
|
|
151
|
+
|
|
152
|
+
## API Key Requirements
|
|
153
|
+
|
|
154
|
+
- Must start with `nepher_`
|
|
155
|
+
- Must be active and not expired
|
|
156
|
+
- `hackathon submit` requires **Hackathon** scope (or an unrestricted key)
|
|
157
|
+
- `tournament submit` requires **Tournament** scope (or an unrestricted key)
|
|
158
|
+
|
|
159
|
+
## Troubleshooting
|
|
160
|
+
|
|
161
|
+
| Error | Fix |
|
|
162
|
+
|-------|-----|
|
|
163
|
+
| `npcli-test: command not found` | Ensure `pip install` succeeded and Python scripts dir is on `PATH` |
|
|
164
|
+
| `invalid api key format` | Key must start with `nepher_` |
|
|
165
|
+
| `api key does not have hackathon access` | Enable Hackathon scope or use an unrestricted key |
|
|
166
|
+
| `api key expired` | Run `npcli-test account api-keys create` |
|
|
167
|
+
| `Several hackathons are accepting submissions` | Re-run with `--hackathon-id` |
|
|
168
|
+
| `bittensor-wallet not installed` | `pip install bittensor-wallet` (needed for `tournament submit` and `account register-coldkey`) |
|
|
169
|
+
| `Not logged in` | `npcli-test login --api-key nepher_...` |
|
|
170
|
+
| `Conflict detected: 'scalecodec' ... conflicts with 'cyscale'` | Leftover `scalecodec` after a Bittensor upgrade. Prefer `pip install bittensor-wallet` so npcli-test never needs `btcli`. To repair `btcli` itself: `pip uninstall scalecodec cyscale -y && pip install -U cyscale --force-reinstall` |
|
|
171
|
+
|
|
172
|
+
Run any command with `--help` for full flag details:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
npcli-test --help
|
|
176
|
+
npcli-test hackathon submit --help
|
|
177
|
+
npcli-test tournament submit --help
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## License
|
|
181
|
+
|
|
182
|
+
MIT
|
|
@@ -4,9 +4,9 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "nepher-cli-test"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.6"
|
|
8
8
|
description = "npcli-test — Nepher CLI for staging (api.staging.nepher.ai)"
|
|
9
|
-
readme = "README.md"
|
|
9
|
+
readme = "README.test.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
11
11
|
license = { text = "MIT" }
|
|
12
12
|
authors = [{ name = "Nepher" }]
|
|
@@ -46,7 +46,7 @@ packages = ["src/nepher_cli"]
|
|
|
46
46
|
core-metadata-version = "2.4"
|
|
47
47
|
|
|
48
48
|
[tool.hatch.build.targets.sdist]
|
|
49
|
-
include = ["src/nepher_cli", "README.md", "pyproject.toml"]
|
|
49
|
+
include = ["src/nepher_cli", "README.test.md", "pyproject.toml"]
|
|
50
50
|
core-metadata-version = "2.4"
|
|
51
51
|
|
|
52
52
|
[tool.ruff]
|
|
@@ -554,7 +554,7 @@ def api_keys_list(api_key: str | None) -> None:
|
|
|
554
554
|
@click.option("--name", required=True, help="Human-readable label for the key.")
|
|
555
555
|
@click.option(
|
|
556
556
|
"--platform", "platforms", multiple=True,
|
|
557
|
-
help="Platform access to grant (envhub, tournament,
|
|
557
|
+
help="Platform access to grant (envhub, tournament, hackathon, simstore). Repeat for multiple. Omit for all.",
|
|
558
558
|
)
|
|
559
559
|
@click.option("--expires-at", default=None, help="Expiry in ISO 8601 (e.g. 2027-01-01T00:00:00Z).")
|
|
560
560
|
@click.option("--api-key", "api_key", default=None, envvar="NEPHER_API_KEY")
|
nepher_cli_test-0.2.4/README.md
DELETED
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
# nepher-cli
|
|
2
|
-
|
|
3
|
-
The unified CLI for [Nepher Robotics](https://nepher.ai) — accounts, hackathons, EnvHub, tournaments, and SimStore from a single tool.
|
|
4
|
-
|
|
5
|
-
**Requires:** Python 3.10+
|
|
6
|
-
|
|
7
|
-
## Install
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
pip install nepher-cli
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Both `npcli` and `nepher-cli` entry points are registered after install.
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npcli --version
|
|
17
|
-
npcli --help
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Commands
|
|
21
|
-
|
|
22
|
-
| Command / Group | Description |
|
|
23
|
-
|-----------------|-------------|
|
|
24
|
-
| `npcli login` | Log in with a Nepher API key |
|
|
25
|
-
| `npcli whoami` | Show the currently authenticated user |
|
|
26
|
-
| `npcli logout` | Clear locally stored credentials |
|
|
27
|
-
| `npcli account` | API keys and coldkey registration |
|
|
28
|
-
| `npcli tournament` | Browse tournaments, submit agents, leaderboards |
|
|
29
|
-
| `npcli envhub` | Manage Isaac Lab environment bundles |
|
|
30
|
-
| `npcli hackathon` | Browse and submit to hackathons |
|
|
31
|
-
| `npcli simstore` | SimStore marketplace *(coming soon)* |
|
|
32
|
-
|
|
33
|
-
## Quick Start
|
|
34
|
-
|
|
35
|
-
### Authenticate
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
npcli login --api-key nepher_xxxxxxxx
|
|
39
|
-
npcli whoami
|
|
40
|
-
npcli logout
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Get your API key at [nepher.ai/account](https://nepher.ai/account) → Account → API Keys.
|
|
44
|
-
For CI/CD, set `NEPHER_API_KEY=nepher_xxxxxxxx` instead of logging in.
|
|
45
|
-
|
|
46
|
-
### Tournaments
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
npcli tournament list
|
|
50
|
-
npcli tournament list-active
|
|
51
|
-
npcli tournament status <tournament_id>
|
|
52
|
-
npcli tournament leaderboard <tournament_id>
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Check your agent directory structure (no extra dependencies needed):
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
npcli tournament check --path ./my-agent
|
|
59
|
-
npcli tournament check --path ./my-agent --verbose # also show recommended-file warnings
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Submit an agent (requires `bittensor-wallet` for wallet signing):
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
pip install bittensor-wallet
|
|
66
|
-
# or: pip install "nepher-cli[bittensor]"
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
npcli tournament submit --path ./my-agent --wallet-name miner --wallet-hotkey default
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
Full options for `submit`:
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
--path <path> Agent directory
|
|
77
|
-
--wallet-name <str> Bittensor wallet name (default: miner)
|
|
78
|
-
--wallet-hotkey <str> Bittensor wallet hotkey (default: default)
|
|
79
|
-
--api-key <key> Nepher API key (falls back to stored credentials)
|
|
80
|
-
--tournament-id <id> Target tournament ID (required when multiple are active)
|
|
81
|
-
--api-url <url> Override tournament API URL
|
|
82
|
-
-v / --verbose Verbose output
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### EnvHub
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
npcli envhub list
|
|
89
|
-
npcli envhub download <env_id>
|
|
90
|
-
npcli envhub upload ./my-bundle --category navigation
|
|
91
|
-
npcli envhub cache list
|
|
92
|
-
npcli envhub cache info
|
|
93
|
-
npcli envhub cache clear
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
### Hackathons
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
npcli hackathon list
|
|
100
|
-
|
|
101
|
-
npcli hackathon submit \
|
|
102
|
-
--title "My entry" \
|
|
103
|
-
--submission ./my-project \
|
|
104
|
-
--assets ./my-assets
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
Full options:
|
|
108
|
-
|
|
109
|
-
```
|
|
110
|
-
--hackathon-id <uuid> Required when multiple hackathons are open
|
|
111
|
-
--title <str> Entry title
|
|
112
|
-
--description <markdown> Entry description
|
|
113
|
-
--thumbnail <file> Cover image (JPEG, PNG, WebP, GIF)
|
|
114
|
-
--submission <path> Project folder or submission.zip
|
|
115
|
-
--assets <path> Assets folder or assets.zip (images, videos, PDFs)
|
|
116
|
-
--public-source Mark source as public
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### API Keys
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
npcli account api-keys list
|
|
123
|
-
npcli account api-keys create --name "CI key" --platform hackertone
|
|
124
|
-
npcli account api-keys revoke <key_id>
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### Coldkey Registration
|
|
128
|
-
|
|
129
|
-
Bind a Bittensor coldkey to your account (requires `bittensor-wallet`; `btcli` is optional fallback):
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
pip install bittensor-wallet
|
|
133
|
-
npcli account register-coldkey --wallet <wallet_name>
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Signing uses the local coldkey via `bittensor-wallet` and does not import `btcli`. If you still have a mixed Bittensor venv (`scalecodec` + `cyscale`), `register-coldkey` keeps working as long as `bittensor-wallet` is installed.
|
|
137
|
-
|
|
138
|
-
## API Key Requirements
|
|
139
|
-
|
|
140
|
-
- Must start with `nepher_`
|
|
141
|
-
- Must be active and not expired
|
|
142
|
-
- `hackathon submit` requires **Hackathon** scope (or an unrestricted key)
|
|
143
|
-
- `tournament submit` requires **Tournament** scope (or an unrestricted key)
|
|
144
|
-
|
|
145
|
-
## Troubleshooting
|
|
146
|
-
|
|
147
|
-
| Error | Fix |
|
|
148
|
-
|-------|-----|
|
|
149
|
-
| `npcli: command not found` | Ensure `pip install` succeeded and Python scripts dir is on `PATH` |
|
|
150
|
-
| `invalid api key format` | Key must start with `nepher_` |
|
|
151
|
-
| `api key does not have hackathon access` | Enable Hackathon scope or use an unrestricted key |
|
|
152
|
-
| `api key expired` | Run `npcli account api-keys create` |
|
|
153
|
-
| `Several hackathons are accepting submissions` | Re-run with `--hackathon-id` |
|
|
154
|
-
| `bittensor-wallet not installed` | `pip install bittensor-wallet` (needed for `tournament submit` and `account register-coldkey`) |
|
|
155
|
-
| `Not logged in` | `npcli login --api-key nepher_...` |
|
|
156
|
-
| `Conflict detected: 'scalecodec' ... conflicts with 'cyscale'` | Leftover `scalecodec` after a Bittensor upgrade. Prefer `pip install bittensor-wallet` so npcli never needs `btcli`. To repair `btcli` itself: `pip uninstall scalecodec cyscale -y && pip install -U cyscale --force-reinstall` |
|
|
157
|
-
|
|
158
|
-
Run any command with `--help` for full flag details:
|
|
159
|
-
|
|
160
|
-
```bash
|
|
161
|
-
npcli --help
|
|
162
|
-
npcli hackathon submit --help
|
|
163
|
-
npcli tournament submit --help
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
## License
|
|
167
|
-
|
|
168
|
-
MIT
|
|
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
|