dmint-cli 1.0.2__tar.gz → 1.0.3__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 (35) hide show
  1. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/CHANGELOG.md +4 -1
  2. {dmint_cli-1.0.2/src/dmint_cli.egg-info → dmint_cli-1.0.3}/PKG-INFO +5 -4
  3. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/README.md +3 -3
  4. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/pyproject.toml +2 -1
  5. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/create_policy.py +17 -27
  6. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/version.py +1 -1
  7. {dmint_cli-1.0.2 → dmint_cli-1.0.3/src/dmint_cli.egg-info}/PKG-INFO +5 -4
  8. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli.egg-info/requires.txt +1 -0
  9. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/LICENSE +0 -0
  10. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/MANIFEST.in +0 -0
  11. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/setup.cfg +0 -0
  12. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/setup.py +0 -0
  13. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/__init__.py +0 -0
  14. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/__main__.py +0 -0
  15. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/api.py +0 -0
  16. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/compile_policy.py +0 -0
  17. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/create_mcp_policy.py +0 -0
  18. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/dashboard.py +0 -0
  19. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/errors.py +0 -0
  20. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/install_skill.py +0 -0
  21. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/io_utils.py +0 -0
  22. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/limits.py +0 -0
  23. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/mcp_auth.py +0 -0
  24. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/mcp_connections.py +0 -0
  25. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/mcp_credentials.py +0 -0
  26. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/mcp_oauth.py +0 -0
  27. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/prompts/__init__.py +0 -0
  28. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/prompts/policy_skill.md +0 -0
  29. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/skills/__init__.py +0 -0
  30. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/skills/dmint-policy-manager/SKILL.md +0 -0
  31. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli/verify_policy.py +0 -0
  32. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli.egg-info/SOURCES.txt +0 -0
  33. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli.egg-info/dependency_links.txt +0 -0
  34. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli.egg-info/entry_points.txt +0 -0
  35. {dmint_cli-1.0.2 → dmint_cli-1.0.3}/src/dmint_cli.egg-info/top_level.txt +0 -0
@@ -5,7 +5,10 @@ All notable changes to `dmint-cli` will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [1.0.2] - 2026-09-17
8
+ ## [1.0.3] - 2026-09-17
9
+
10
+ ### Changed
11
+ - Bump patch version for PyPI release.
9
12
 
10
13
  ### Added
11
14
  - **Dashboard Command (`dmint dashboard`)**:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dmint-cli
3
- Version: 1.0.2
3
+ Version: 1.0.3
4
4
  Summary: CLI tooling for Dmint policy creation, compilation, and management
5
5
  Author: Dmint Authors
6
6
  License-Expression: Apache-2.0
@@ -20,11 +20,12 @@ License-File: LICENSE
20
20
  Requires-Dist: dmint<2.0.0,>=1.0.0
21
21
  Requires-Dist: mcp<3.0.0,>=2.2.0
22
22
  Requires-Dist: dmint-dashboard<2.0.0,>=1.0.0
23
+ Requires-Dist: questionary>=2.0.0
23
24
  Provides-Extra: test
24
25
  Requires-Dist: pytest>=8.0.0; extra == "test"
25
26
  Dynamic: license-file
26
27
 
27
- # dmint-cli (v1.0.2)
28
+ # dmint-cli (v1.0.3)
28
29
 
29
30
  > **Developer tooling for interactive discovery, authoring, compilation, and offline verification of Dmint security policies and MCP protection artifacts.**
30
31
 
@@ -139,7 +140,7 @@ Verify your installation and version:
139
140
 
140
141
  ```bash
141
142
  dmint --version
142
- # dmint 1.0.2
143
+ # dmint 1.0.3
143
144
  ```
144
145
 
145
146
  ### 3-Step Walkthrough
@@ -348,7 +349,7 @@ When an MCP endpoint responds with `401 Unauthorized` or `403 Forbidden`:
348
349
  1. **RFC 9728 PRM Discovery**: Looks for the `WWW-Authenticate` header and resolves Protected Resource Metadata (PRM) via `/.well-known/oauth-protected-resource`.
349
350
  2. **RFC 8414 AS Discovery**: Resolves the OAuth 2.0 Authorization Server metadata via `/.well-known/oauth-authorization-server`.
350
351
  3. **Issuer Validation**: Enforces RFC 9207 issuer matching to prevent authorization server mix-up attacks.
351
- 4. **Dynamic Client Registration**: Performs RFC 7591 Dynamic Client Registration if the server supports it, advertising `client_name="dmint-cli"` and `software_version="1.0.2"`.
352
+ 4. **Dynamic Client Registration**: Performs RFC 7591 Dynamic Client Registration if the server supports it, advertising `client_name="dmint-cli"` and `software_version="1.0.3"`.
352
353
 
353
354
  ---
354
355
 
@@ -1,4 +1,4 @@
1
- # dmint-cli (v1.0.2)
1
+ # dmint-cli (v1.0.3)
2
2
 
3
3
  > **Developer tooling for interactive discovery, authoring, compilation, and offline verification of Dmint security policies and MCP protection artifacts.**
4
4
 
@@ -113,7 +113,7 @@ Verify your installation and version:
113
113
 
114
114
  ```bash
115
115
  dmint --version
116
- # dmint 1.0.2
116
+ # dmint 1.0.3
117
117
  ```
118
118
 
119
119
  ### 3-Step Walkthrough
@@ -322,7 +322,7 @@ When an MCP endpoint responds with `401 Unauthorized` or `403 Forbidden`:
322
322
  1. **RFC 9728 PRM Discovery**: Looks for the `WWW-Authenticate` header and resolves Protected Resource Metadata (PRM) via `/.well-known/oauth-protected-resource`.
323
323
  2. **RFC 8414 AS Discovery**: Resolves the OAuth 2.0 Authorization Server metadata via `/.well-known/oauth-authorization-server`.
324
324
  3. **Issuer Validation**: Enforces RFC 9207 issuer matching to prevent authorization server mix-up attacks.
325
- 4. **Dynamic Client Registration**: Performs RFC 7591 Dynamic Client Registration if the server supports it, advertising `client_name="dmint-cli"` and `software_version="1.0.2"`.
325
+ 4. **Dynamic Client Registration**: Performs RFC 7591 Dynamic Client Registration if the server supports it, advertising `client_name="dmint-cli"` and `software_version="1.0.3"`.
326
326
 
327
327
  ---
328
328
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "dmint-cli"
7
- version = "1.0.2"
7
+ version = "1.0.3"
8
8
  description = "CLI tooling for Dmint policy creation, compilation, and management"
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"
@@ -28,6 +28,7 @@ dependencies = [
28
28
  "dmint>=1.0.0,<2.0.0",
29
29
  "mcp>=2.2.0,<3.0.0",
30
30
  "dmint-dashboard>=1.0.0,<2.0.0",
31
+ "questionary>=2.0.0",
31
32
  ]
32
33
 
33
34
  [project.optional-dependencies]
@@ -7,6 +7,7 @@ import ast
7
7
  import getpass
8
8
  import json
9
9
  import sys
10
+ import questionary
10
11
  from pathlib import Path
11
12
  from typing import Any
12
13
 
@@ -186,19 +187,22 @@ def run_create_policy_wizard(
186
187
  policy_text = f"[DISCOVERED TOOL DECLARATIONS VIA AST IN {Path(tools_file).name}]\n{tools_summary}\n\n[HUMAN SECURITY REQUIREMENTS]\n{policy_text}"
187
188
 
188
189
  # 1. Provider & Key setup
189
- selected_provider = (provider or "").lower().strip()
190
190
  if is_tty and not selected_provider:
191
- prov_in = input("Select provider (openai/gemini/groq/openrouter/ollama/custom) [default: openai]: ").strip()
192
- selected_provider = prov_in.lower() if prov_in else "openai"
191
+ selected_provider = questionary.select(
192
+ "Select provider",
193
+ choices=["openai", "gemini", "groq", "openrouter", "ollama", "custom"],
194
+ default="openai"
195
+ ).ask()
193
196
  elif not selected_provider:
194
197
  selected_provider = "openai"
195
198
 
196
199
  resolved_key = resolve_api_key(api_key, selected_provider)
197
200
  if is_tty and not resolved_key and selected_provider != "ollama":
198
- key_in = getpass.getpass(f"Enter API Key for {selected_provider} (leave blank if using env var): ").strip()
199
- if key_in:
200
- resolved_key = key_in
201
- api_key = key_in
201
+ resolved_key = questionary.password(
202
+ f"Enter API Key for {selected_provider} (leave blank if using env var):"
203
+ ).ask()
204
+ if resolved_key:
205
+ api_key = resolved_key
202
206
 
203
207
  # 2. Model Discovery & Selection
204
208
  client = OpenAICompatClient(
@@ -213,28 +217,14 @@ def run_create_policy_wizard(
213
217
  if is_tty and not selected_model:
214
218
  try:
215
219
  available_models = client.list_models()
216
- print("\n[✓] Discovered available models:")
217
- for idx, m_id in enumerate(available_models[:15], start=1):
218
- print(f" {idx}) {m_id}")
219
- if len(available_models) > 15:
220
- print(f" ... and {len(available_models) - 15} more")
221
-
222
- default_m = available_models[0]
223
- choice = input(f"\nSelect model number (1-{min(len(available_models), 15)}) or type model ID [default: {default_m}]: ").strip()
224
- if choice.isdigit():
225
- c_idx = int(choice) - 1
226
- if 0 <= c_idx < len(available_models):
227
- selected_model = available_models[c_idx]
228
- else:
229
- selected_model = default_m
230
- elif choice:
231
- selected_model = choice
232
- else:
233
- selected_model = default_m
220
+ selected_model = questionary.select(
221
+ "Select model",
222
+ choices=available_models,
223
+ default=available_models[0] if available_models else "gpt-4o-mini"
224
+ ).ask()
234
225
  except Exception as exc:
235
226
  print(f"\n[!] Could not list models: {exc}. Please enter model ID manually.")
236
- manual_m = input("Enter model ID [default: gpt-4o-mini]: ").strip()
237
- selected_model = manual_m or "gpt-4o-mini"
227
+ selected_model = questionary.text("Enter model ID [default: gpt-4o-mini]:", default="gpt-4o-mini").ask()
238
228
  elif not selected_model:
239
229
  selected_model = "gpt-4o-mini"
240
230
 
@@ -6,7 +6,7 @@ Single source of truth for package version, User-Agent strings, and client metad
6
6
  from __future__ import annotations
7
7
 
8
8
  # Canonical package version (single source of truth for runtime code)
9
- __version__ = "1.0.2"
9
+ __version__ = "1.0.3"
10
10
 
11
11
 
12
12
  def get_user_agent(component: str | None = None) -> str:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dmint-cli
3
- Version: 1.0.2
3
+ Version: 1.0.3
4
4
  Summary: CLI tooling for Dmint policy creation, compilation, and management
5
5
  Author: Dmint Authors
6
6
  License-Expression: Apache-2.0
@@ -20,11 +20,12 @@ License-File: LICENSE
20
20
  Requires-Dist: dmint<2.0.0,>=1.0.0
21
21
  Requires-Dist: mcp<3.0.0,>=2.2.0
22
22
  Requires-Dist: dmint-dashboard<2.0.0,>=1.0.0
23
+ Requires-Dist: questionary>=2.0.0
23
24
  Provides-Extra: test
24
25
  Requires-Dist: pytest>=8.0.0; extra == "test"
25
26
  Dynamic: license-file
26
27
 
27
- # dmint-cli (v1.0.2)
28
+ # dmint-cli (v1.0.3)
28
29
 
29
30
  > **Developer tooling for interactive discovery, authoring, compilation, and offline verification of Dmint security policies and MCP protection artifacts.**
30
31
 
@@ -139,7 +140,7 @@ Verify your installation and version:
139
140
 
140
141
  ```bash
141
142
  dmint --version
142
- # dmint 1.0.2
143
+ # dmint 1.0.3
143
144
  ```
144
145
 
145
146
  ### 3-Step Walkthrough
@@ -348,7 +349,7 @@ When an MCP endpoint responds with `401 Unauthorized` or `403 Forbidden`:
348
349
  1. **RFC 9728 PRM Discovery**: Looks for the `WWW-Authenticate` header and resolves Protected Resource Metadata (PRM) via `/.well-known/oauth-protected-resource`.
349
350
  2. **RFC 8414 AS Discovery**: Resolves the OAuth 2.0 Authorization Server metadata via `/.well-known/oauth-authorization-server`.
350
351
  3. **Issuer Validation**: Enforces RFC 9207 issuer matching to prevent authorization server mix-up attacks.
351
- 4. **Dynamic Client Registration**: Performs RFC 7591 Dynamic Client Registration if the server supports it, advertising `client_name="dmint-cli"` and `software_version="1.0.2"`.
352
+ 4. **Dynamic Client Registration**: Performs RFC 7591 Dynamic Client Registration if the server supports it, advertising `client_name="dmint-cli"` and `software_version="1.0.3"`.
352
353
 
353
354
  ---
354
355
 
@@ -1,6 +1,7 @@
1
1
  dmint<2.0.0,>=1.0.0
2
2
  mcp<3.0.0,>=2.2.0
3
3
  dmint-dashboard<2.0.0,>=1.0.0
4
+ questionary>=2.0.0
4
5
 
5
6
  [test]
6
7
  pytest>=8.0.0
File without changes
File without changes
File without changes
File without changes