netrise-turbine-cli 0.1.0__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 (41) hide show
  1. netrise_turbine_cli-0.1.0/PKG-INFO +123 -0
  2. netrise_turbine_cli-0.1.0/README.md +102 -0
  3. netrise_turbine_cli-0.1.0/pyproject.toml +29 -0
  4. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/__init__.py +3 -0
  5. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/_generated/__init__.py +2 -0
  6. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/_generated/catalog.json +1761 -0
  7. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/_generated/commands.py +4655 -0
  8. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/_generated/coverage.json +137 -0
  9. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/_skill/turbine-cli/SKILL.md +105 -0
  10. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/_skill/turbine-cli/agents/openai.yaml +4 -0
  11. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/_skill/turbine-cli/references/agent.md +81 -0
  12. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/_skill/turbine-cli/references/reference.md +1171 -0
  13. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/cli.py +106 -0
  14. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/__init__.py +58 -0
  15. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/_common.py +180 -0
  16. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/_registry.py +32 -0
  17. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/asset.py +244 -0
  18. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/auth.py +71 -0
  19. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/cert.py +40 -0
  20. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/component.py +96 -0
  21. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/credential.py +40 -0
  22. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/group.py +186 -0
  23. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/key.py +43 -0
  24. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/license.py +40 -0
  25. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/misconfig.py +43 -0
  26. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/notification.py +26 -0
  27. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/org.py +41 -0
  28. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/protection.py +40 -0
  29. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/report.py +26 -0
  30. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/search.py +49 -0
  31. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/secret.py +42 -0
  32. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/skill.py +198 -0
  33. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/user.py +97 -0
  34. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands/vuln.py +140 -0
  35. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/commands_api.py +117 -0
  36. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/completion.py +68 -0
  37. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/config.py +117 -0
  38. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/errors.py +41 -0
  39. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/fields.py +58 -0
  40. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/render.py +70 -0
  41. netrise_turbine_cli-0.1.0/src/netrise_turbine_cli/runtime.py +277 -0
@@ -0,0 +1,123 @@
1
+ Metadata-Version: 2.4
2
+ Name: netrise-turbine-cli
3
+ Version: 0.1.0
4
+ Summary: Turbine GraphQL CLI for human operators and AI agents
5
+ Author: NetRise
6
+ Author-email: anthony.feddersen@netrise.io
7
+ Requires-Python: >=3.12
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.12
10
+ Classifier: Programming Language :: Python :: 3.13
11
+ Classifier: Programming Language :: Python :: 3.14
12
+ Requires-Dist: click (>=8.1.0,<9.0.0)
13
+ Requires-Dist: netrise-turbine-sdk (>=0.1.17,<0.2.0)
14
+ Requires-Dist: pydantic (>=2.0.0,<3.0.0)
15
+ Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
16
+ Requires-Dist: rich (>=13.0.0,<15.0.0)
17
+ Requires-Dist: rich-click (>=1.8.0,<2.0.0)
18
+ Requires-Dist: typer (>=0.12.0,<1.0.0)
19
+ Description-Content-Type: text/markdown
20
+
21
+ # NetRise Turbine CLI
22
+
23
+ SDK-backed CLI for the Turbine platform — resource-oriented commands for everyday work, full GraphQL API as an escape hatch.
24
+
25
+ ## Approach
26
+
27
+ Two tiers, one runtime:
28
+
29
+ | Tier | When to use | Example |
30
+ | --- | --- | --- |
31
+ | **Curated** (default) | Everyday tasks — list assets, remediate vulns, manage groups | `turbine asset list` |
32
+ | **`api`** | Full GraphQL coverage, custom inputs, new SDK ops | `turbine api assets-relay --schema` |
33
+
34
+ Same auth and output modes for both tiers; only rendering changes:
35
+
36
+ - **TTY** — Rich tables, panels, confirmation prompts
37
+ - **`--output json` or pipe** — compact JSON on stdout (NDJSON for lists), exit codes, no prompts
38
+
39
+ | Audience | Guide |
40
+ | --- | --- |
41
+ | Human operators | [docs/human.md](docs/human.md) — runnable examples |
42
+ | AI / automation | [docs/agent.md](docs/agent.md) — loop, I/O contract, token discipline |
43
+
44
+ ## Install
45
+
46
+ Three tiers — pick how much you want:
47
+
48
+ | Tier | Command | You get |
49
+ | --- | --- | --- |
50
+ | SDK only | `pip install netrise-turbine-sdk` | Python SDK |
51
+ | SDK + CLI | `uv tool install netrise-turbine-cli` (or `pipx` / `pip`) | `turbine` command, SDK included |
52
+ | Everything | `turbine skill install` | Agent skill in Cursor, Claude Code, and Codex |
53
+
54
+ `turbine skill install` detects which agent tools you have (`~/.cursor`, `~/.claude`, `~/.agents`/`~/.codex`) and installs the bundled skill to each; use `--agent` / `--scope project` for explicit control and `turbine skill status` to inspect. Developing in this repo? `make turbine-cli-test` sets up the poetry env with the local SDK.
55
+
56
+ ## Auth
57
+
58
+ Set credentials via `TURBINE_*` env vars (legacy unprefixed names still work) or `.env`:
59
+
60
+ `TURBINE_ENDPOINT` · `TURBINE_AUDIENCE` · `TURBINE_DOMAIN` · `TURBINE_CLIENT_ID` · `TURBINE_CLIENT_SECRET` · `TURBINE_ORGANIZATION_ID`
61
+
62
+ ```bash
63
+ turbine auth status
64
+ turbine auth login --save # verify + persist non-secrets to ~/.config/turbine/config.toml
65
+ ```
66
+
67
+ ## Command map
68
+
69
+ | Resource | Commands |
70
+ | --- | --- |
71
+ | `asset` | `list`, `get`, `upload`, `files`, `status`, `activity`, `hashes` |
72
+ | `vuln` | `list`, `get`, `overview`, `remediate` |
73
+ | `group` | `list`, `members`, `create`, `update`, `delete`, `add-assets`, `remove-assets` |
74
+ | `component` | `list`, `grouped`, `crypto` |
75
+ | `secret`, `credential`, `cert`, `key`, `misconfig`, `license`, `protection` | `list` |
76
+ | `user` | `list`, `invite`, `delete`, `remove` |
77
+ | `org` | `info`, `settings` |
78
+ | `search` | full-text search |
79
+ | `api` | all 114 GraphQL ops + `catalog`, `graphql`, `schema` |
80
+
81
+ ## Quick start
82
+
83
+ Human — list assets (lite detail, default):
84
+
85
+ ```bash
86
+ turbine asset list --limit 10
87
+ ```
88
+
89
+ Agent — catalog then execute:
90
+
91
+ ```bash
92
+ turbine api catalog --json
93
+ turbine asset list --dry-run -o json
94
+ turbine api assets-relay --schema -o json
95
+ ```
96
+
97
+ `--output` / `-o` may appear before or after the subcommand.
98
+
99
+ ## Documentation
100
+
101
+ | File | What |
102
+ | --- | --- |
103
+ | [docs/human.md](docs/human.md) | Human guide + per-command examples |
104
+ | [docs/agent.md](docs/agent.md) | Agent playbook |
105
+ | [reference.md](reference.md) | Generated API index + curated mapping |
106
+ | [SKILL.md](SKILL.md) | Cursor agent skill |
107
+
108
+ ## Regenerate
109
+
110
+ From repo root:
111
+
112
+ ```bash
113
+ make turbine-python-cli
114
+ ```
115
+
116
+ Rebuilds API commands, catalog, coverage manifest, reference, SKILL auto-section, and human examples.
117
+
118
+ ## Test
119
+
120
+ ```bash
121
+ make turbine-cli-test
122
+ ```
123
+
@@ -0,0 +1,102 @@
1
+ # NetRise Turbine CLI
2
+
3
+ SDK-backed CLI for the Turbine platform — resource-oriented commands for everyday work, full GraphQL API as an escape hatch.
4
+
5
+ ## Approach
6
+
7
+ Two tiers, one runtime:
8
+
9
+ | Tier | When to use | Example |
10
+ | --- | --- | --- |
11
+ | **Curated** (default) | Everyday tasks — list assets, remediate vulns, manage groups | `turbine asset list` |
12
+ | **`api`** | Full GraphQL coverage, custom inputs, new SDK ops | `turbine api assets-relay --schema` |
13
+
14
+ Same auth and output modes for both tiers; only rendering changes:
15
+
16
+ - **TTY** — Rich tables, panels, confirmation prompts
17
+ - **`--output json` or pipe** — compact JSON on stdout (NDJSON for lists), exit codes, no prompts
18
+
19
+ | Audience | Guide |
20
+ | --- | --- |
21
+ | Human operators | [docs/human.md](docs/human.md) — runnable examples |
22
+ | AI / automation | [docs/agent.md](docs/agent.md) — loop, I/O contract, token discipline |
23
+
24
+ ## Install
25
+
26
+ Three tiers — pick how much you want:
27
+
28
+ | Tier | Command | You get |
29
+ | --- | --- | --- |
30
+ | SDK only | `pip install netrise-turbine-sdk` | Python SDK |
31
+ | SDK + CLI | `uv tool install netrise-turbine-cli` (or `pipx` / `pip`) | `turbine` command, SDK included |
32
+ | Everything | `turbine skill install` | Agent skill in Cursor, Claude Code, and Codex |
33
+
34
+ `turbine skill install` detects which agent tools you have (`~/.cursor`, `~/.claude`, `~/.agents`/`~/.codex`) and installs the bundled skill to each; use `--agent` / `--scope project` for explicit control and `turbine skill status` to inspect. Developing in this repo? `make turbine-cli-test` sets up the poetry env with the local SDK.
35
+
36
+ ## Auth
37
+
38
+ Set credentials via `TURBINE_*` env vars (legacy unprefixed names still work) or `.env`:
39
+
40
+ `TURBINE_ENDPOINT` · `TURBINE_AUDIENCE` · `TURBINE_DOMAIN` · `TURBINE_CLIENT_ID` · `TURBINE_CLIENT_SECRET` · `TURBINE_ORGANIZATION_ID`
41
+
42
+ ```bash
43
+ turbine auth status
44
+ turbine auth login --save # verify + persist non-secrets to ~/.config/turbine/config.toml
45
+ ```
46
+
47
+ ## Command map
48
+
49
+ | Resource | Commands |
50
+ | --- | --- |
51
+ | `asset` | `list`, `get`, `upload`, `files`, `status`, `activity`, `hashes` |
52
+ | `vuln` | `list`, `get`, `overview`, `remediate` |
53
+ | `group` | `list`, `members`, `create`, `update`, `delete`, `add-assets`, `remove-assets` |
54
+ | `component` | `list`, `grouped`, `crypto` |
55
+ | `secret`, `credential`, `cert`, `key`, `misconfig`, `license`, `protection` | `list` |
56
+ | `user` | `list`, `invite`, `delete`, `remove` |
57
+ | `org` | `info`, `settings` |
58
+ | `search` | full-text search |
59
+ | `api` | all 114 GraphQL ops + `catalog`, `graphql`, `schema` |
60
+
61
+ ## Quick start
62
+
63
+ Human — list assets (lite detail, default):
64
+
65
+ ```bash
66
+ turbine asset list --limit 10
67
+ ```
68
+
69
+ Agent — catalog then execute:
70
+
71
+ ```bash
72
+ turbine api catalog --json
73
+ turbine asset list --dry-run -o json
74
+ turbine api assets-relay --schema -o json
75
+ ```
76
+
77
+ `--output` / `-o` may appear before or after the subcommand.
78
+
79
+ ## Documentation
80
+
81
+ | File | What |
82
+ | --- | --- |
83
+ | [docs/human.md](docs/human.md) | Human guide + per-command examples |
84
+ | [docs/agent.md](docs/agent.md) | Agent playbook |
85
+ | [reference.md](reference.md) | Generated API index + curated mapping |
86
+ | [SKILL.md](SKILL.md) | Cursor agent skill |
87
+
88
+ ## Regenerate
89
+
90
+ From repo root:
91
+
92
+ ```bash
93
+ make turbine-python-cli
94
+ ```
95
+
96
+ Rebuilds API commands, catalog, coverage manifest, reference, SKILL auto-section, and human examples.
97
+
98
+ ## Test
99
+
100
+ ```bash
101
+ make turbine-cli-test
102
+ ```
@@ -0,0 +1,29 @@
1
+ [tool.poetry]
2
+ name = "netrise-turbine-cli"
3
+ version = "0.1.0"
4
+ description = "Turbine GraphQL CLI for human operators and AI agents"
5
+ authors = ["NetRise <anthony.feddersen@netrise.io>"]
6
+ readme = "README.md"
7
+ packages = [{ include = "netrise_turbine_cli", from = "src" }]
8
+ # Bundled agent skill (installed via `turbine skill install`)
9
+ include = [{ path = "src/netrise_turbine_cli/_skill/**/*", format = ["sdist", "wheel"] }]
10
+
11
+ [tool.poetry.dependencies]
12
+ python = ">=3.12"
13
+ netrise-turbine-sdk = ">=0.1.17,<0.2.0"
14
+ typer = ">=0.12.0,<1.0.0"
15
+ rich = ">=13.0.0,<15.0.0"
16
+ rich-click = ">=1.8.0,<2.0.0"
17
+ click = ">=8.1.0,<9.0.0"
18
+ pydantic = ">=2.0.0,<3.0.0"
19
+ python-dotenv = ">=1.0.0,<2.0.0"
20
+
21
+ [tool.poetry.group.dev.dependencies]
22
+ pytest = ">=8.0.0,<9.0.0"
23
+
24
+ [tool.poetry.scripts]
25
+ turbine = "netrise_turbine_cli.cli:main"
26
+
27
+ [build-system]
28
+ requires = ["poetry-core>=2.0.0,<3.0.0"]
29
+ build-backend = "poetry.core.masonry.api"
@@ -0,0 +1,3 @@
1
+ """NetRise Turbine CLI."""
2
+
3
+ __version__ = "0.1.0"
@@ -0,0 +1,2 @@
1
+ # Generated by generate_python_cli.py — DO NOT EDIT BY HAND
2
+