vmware-debug 1.12.0__tar.gz → 1.12.1__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 (94) hide show
  1. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/.claude-plugin/plugin.json +1 -1
  2. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/.mcp.json +1 -1
  3. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/PKG-INFO +2 -2
  4. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/RELEASE_NOTES.md +12 -0
  5. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/openclaw.plugin.json +1 -1
  6. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/package.json +1 -1
  7. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/pyproject.toml +2 -2
  8. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/server.json +2 -2
  9. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/skills/vmware-debug/SKILL.md +1 -1
  10. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/skills/vmware-debug/references/setup-guide.md +2 -2
  11. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/uv.lock +5 -5
  12. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/__init__.py +1 -1
  13. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/cli.py +5 -0
  14. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/.clawhubignore +0 -0
  15. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/.gitignore +0 -0
  16. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/README-CN.md +0 -0
  17. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/README.md +0 -0
  18. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/SECURITY.md +0 -0
  19. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/docs/plans/2026-08-28-investigation-layer-design.md +0 -0
  20. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/skills/vmware-debug/references/agent-guardrails.md +0 -0
  21. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/skills/vmware-debug/references/capabilities.md +0 -0
  22. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/skills/vmware-debug/references/cli-reference.md +0 -0
  23. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/skills/vmware-debug/references/event-envelope.md +0 -0
  24. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/skills/vmware-debug/references/routing.md +0 -0
  25. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/__init__.py +0 -0
  26. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/conftest.py +0 -0
  27. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/__init__.py +0 -0
  28. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/capability/__init__.py +0 -0
  29. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/capability/_family.py +0 -0
  30. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/capability/_scores.json +0 -0
  31. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/capability/_scoring.py +0 -0
  32. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/capability/_skill.py +0 -0
  33. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/capability/conftest.py +0 -0
  34. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/capability/test_entity_reachability.py +0 -0
  35. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/capability/test_error_actionability.py +0 -0
  36. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/capability/test_tool_description_quality.py +0 -0
  37. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/capability/test_tool_manifest_budget.py +0 -0
  38. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/__init__.py +0 -0
  39. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/_vsphere_event_vocabulary.py +0 -0
  40. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_audit_isolation.py +0 -0
  41. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_capability_grader.py +0 -0
  42. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_case_id_non_ascii.py +0 -0
  43. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_case_plan_max_steps.py +0 -0
  44. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_classification_against_vsphere_vocabulary.py +0 -0
  45. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_debug_regressions.py +0 -0
  46. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_environment_resolver_isolation.py +0 -0
  47. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_every_tool_parameter_is_documented.py +0 -0
  48. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_evidence_payload_contract.py +0 -0
  49. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_host_lifecycle_classification.py +0 -0
  50. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_investigation_metrics.py +0 -0
  51. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_real_alert_titles_classify.py +0 -0
  52. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_result_envelope.py +0 -0
  53. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_skill_name_aliases.py +0 -0
  54. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_spike_resolution.py +0 -0
  55. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/eval/regression/test_tool_annotations.py +0 -0
  56. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/test_case_conclusion.py +0 -0
  57. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/test_case_evidence.py +0 -0
  58. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/test_case_grading.py +0 -0
  59. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/test_case_hypotheses.py +0 -0
  60. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/test_case_ids.py +0 -0
  61. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/test_case_ledger_concurrency.py +0 -0
  62. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/test_case_plan.py +0 -0
  63. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/test_case_readiness.py +0 -0
  64. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/test_case_store.py +0 -0
  65. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/test_case_timeline_close.py +0 -0
  66. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/test_case_tools.py +0 -0
  67. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/test_knowledge.py +0 -0
  68. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/test_safe_error_passthrough.py +0 -0
  69. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/tests/test_timeline.py +0 -0
  70. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/envelope.py +0 -0
  71. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/mcp/__init__.py +0 -0
  72. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/mcp/tools.py +0 -0
  73. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/mcp_server/__init__.py +0 -0
  74. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/mcp_server/server.py +0 -0
  75. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/__init__.py +0 -0
  76. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/cases/__init__.py +0 -0
  77. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/cases/api.py +0 -0
  78. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/cases/conclusion.py +0 -0
  79. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/cases/evidence.py +0 -0
  80. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/cases/grading.py +0 -0
  81. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/cases/hypotheses.py +0 -0
  82. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/cases/ids.py +0 -0
  83. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/cases/knowledge.py +0 -0
  84. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/cases/model.py +0 -0
  85. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/cases/payloads.py +0 -0
  86. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/cases/plan.py +0 -0
  87. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/cases/readiness.py +0 -0
  88. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/cases/sources.py +0 -0
  89. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/cases/store.py +0 -0
  90. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/cases/timeline.py +0 -0
  91. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/skill_names.py +0 -0
  92. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/ops/timeline.py +0 -0
  93. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/rules/evidence_sources.yaml +0 -0
  94. {vmware_debug-1.12.0 → vmware_debug-1.12.1}/vmware_debug/rules/grading_rules.yaml +0 -0
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://anthropic.com/claude-code/plugin.schema.json",
3
3
  "name": "vmware-debug",
4
4
  "displayName": "VMware Debug",
5
- "version": "1.12.0",
5
+ "version": "1.12.1",
6
6
  "description": "VMware incident timeline, root-cause routing, local case ledger; no vSphere access. 14 MCP tools.",
7
7
  "author": {
8
8
  "name": "Wei Zhou",
@@ -5,7 +5,7 @@
5
5
  "command": "uvx",
6
6
  "args": [
7
7
  "--from",
8
- "vmware-debug==1.12.0",
8
+ "vmware-debug==1.12.1",
9
9
  "vmware-debug-mcp"
10
10
  ]
11
11
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: vmware-debug
3
- Version: 1.12.0
3
+ Version: 1.12.1
4
4
  Summary: VMware diagnostic brain — offline incident triage, log/event correlation, and root-cause routing across the VMware skill family
5
5
  Project-URL: Homepage, https://github.com/vmware-skills/VMware-Debug
6
6
  Project-URL: Repository, https://github.com/vmware-skills/VMware-Debug
@@ -18,7 +18,7 @@ Requires-Dist: mcp[cli]<2.0,>=1.10
18
18
  Requires-Dist: pyyaml<7.0,>=6.0
19
19
  Requires-Dist: rich<15.0,>=13.0
20
20
  Requires-Dist: typer<1.0,>=0.12
21
- Requires-Dist: vmware-policy<2.0,>=1.13.1
21
+ Requires-Dist: vmware-policy<2.0,>=1.15.0
22
22
  Description-Content-Type: text/markdown
23
23
 
24
24
  <!-- mcp-name: io.github.vmware-skills/vmware-debug -->
@@ -1,3 +1,15 @@
1
+ ## v1.12.1 — every CLI command declares what it reaches
2
+
3
+ Across the family, CLI reads never wrote `~/.vmware/audit.db`; they now do (`@audited`, under the
4
+ MCP tool's name). To keep that from regressing, every CLI command must declare `@guarded` (a write),
5
+ `@audited` (reaches a remote system) or `@cli_local` (reaches nothing remote), and a family gate fails
6
+ any command that declares none.
7
+
8
+ This skill's 4 CLI commands reach nothing remote; each is marked `@cli_local` with its reason.
9
+ Their behaviour does not change.
10
+
11
+ Requires `vmware-policy>=1.15.0`.
12
+
1
13
  ## v1.12.0 — real alert titles get a category
2
14
 
3
15
  Eight alerts read off a lab vCenter 8.0.3 and Aria 8.18.7 were passed through `triage`, and six
@@ -11,7 +11,7 @@
11
11
  "command": "uvx",
12
12
  "args": [
13
13
  "--from",
14
- "vmware-debug==1.12.0",
14
+ "vmware-debug==1.12.1",
15
15
  "vmware-debug-mcp"
16
16
  ]
17
17
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zw008/vmware-debug",
3
- "version": "1.12.0",
3
+ "version": "1.12.1",
4
4
  "description": "VMware incident timeline, root-cause routing, local case ledger; no vSphere access. 14 MCP tools.",
5
5
  "private": true,
6
6
  "license": "MIT",
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "vmware-debug"
7
- version = "1.12.0"
7
+ version = "1.12.1"
8
8
  description = "VMware diagnostic brain — offline incident triage, log/event correlation, and root-cause routing across the VMware skill family"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -21,7 +21,7 @@ dependencies = [
21
21
  "typer>=0.12,<1.0",
22
22
  "rich>=13.0,<15.0",
23
23
  "mcp[cli]>=1.10,<2.0",
24
- "vmware-policy>=1.13.1,<2.0",
24
+ "vmware-policy>=1.15.0,<2.0",
25
25
  # Imported directly by ops/cases/grading.py for the rules file. It has
26
26
  # always arrived transitively via vmware-policy; a package should
27
27
  # declare what it imports rather than rely on a dependency's dependency.
@@ -7,12 +7,12 @@
7
7
  "url": "https://github.com/vmware-skills/VMware-Debug",
8
8
  "source": "github"
9
9
  },
10
- "version": "1.12.0",
10
+ "version": "1.12.1",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "vmware-debug",
15
- "version": "1.12.0",
15
+ "version": "1.12.1",
16
16
  "runtimeHint": "uvx",
17
17
  "packageArguments": [
18
18
  {
@@ -51,7 +51,7 @@ write tools touch only the local case ledger.
51
51
  ## Quick Install
52
52
 
53
53
  ```bash
54
- uv tool install vmware-debug==1.12.0
54
+ uv tool install vmware-debug==1.12.1
55
55
  vmware-debug categories # see what it can diagnose
56
56
  ```
57
57
 
@@ -6,7 +6,7 @@ is a pure, offline correlation engine. There is no `config.yaml` and no `.env`.
6
6
  ## Install
7
7
 
8
8
  ```bash
9
- uv tool install vmware-debug==1.12.0
9
+ uv tool install vmware-debug==1.12.1
10
10
  vmware-debug categories # verify it runs
11
11
  ```
12
12
 
@@ -15,7 +15,7 @@ vmware-debug categories # verify it runs
15
15
  ```json
16
16
  {
17
17
  "command": "uvx",
18
- "args": ["--from", "vmware-debug==1.12.0", "vmware-debug-mcp"]
18
+ "args": ["--from", "vmware-debug==1.12.1", "vmware-debug-mcp"]
19
19
  }
20
20
  ```
21
21
 
@@ -1293,7 +1293,7 @@ wheels = [
1293
1293
 
1294
1294
  [[package]]
1295
1295
  name = "vmware-debug"
1296
- version = "1.12.0"
1296
+ version = "1.12.1"
1297
1297
  source = { editable = "." }
1298
1298
  dependencies = [
1299
1299
  { name = "mcp", extra = ["cli"] },
@@ -1316,7 +1316,7 @@ requires-dist = [
1316
1316
  { name = "pyyaml", specifier = ">=6.0,<7.0" },
1317
1317
  { name = "rich", specifier = ">=13.0,<15.0" },
1318
1318
  { name = "typer", specifier = ">=0.12,<1.0" },
1319
- { name = "vmware-policy", specifier = ">=1.13.1,<2.0" },
1319
+ { name = "vmware-policy", specifier = ">=1.15.0,<2.0" },
1320
1320
  ]
1321
1321
 
1322
1322
  [package.metadata.requires-dev]
@@ -1328,14 +1328,14 @@ dev = [
1328
1328
 
1329
1329
  [[package]]
1330
1330
  name = "vmware-policy"
1331
- version = "1.14.0"
1331
+ version = "1.15.0"
1332
1332
  source = { registry = "https://pypi.org/simple" }
1333
1333
  dependencies = [
1334
1334
  { name = "pyyaml" },
1335
1335
  { name = "rich" },
1336
1336
  { name = "typer" },
1337
1337
  ]
1338
- sdist = { url = "https://files.pythonhosted.org/packages/76/66/6ec37888b4d465c0392261f7998dec136c8339257df1484ff9d88de4a40a/vmware_policy-1.14.0.tar.gz", hash = "sha256:3bc7b657fd2e5204e23edac83233965d9bdd2ccfee6e20bdf36e20ecd5965a82", size = 177275, upload-time = "2026-09-14T15:09:39.879Z" }
1338
+ sdist = { url = "https://files.pythonhosted.org/packages/ac/0c/c7b6c9e2e82b5c8d40b0721bfc9a6428bdd9fd41d8c1c6ec492b94f183f8/vmware_policy-1.15.0.tar.gz", hash = "sha256:48e1850c434dd3f34401b1e3785c073d72b451af904cc2f8c7d3bde772309e8a", size = 181525, upload-time = "2026-09-15T05:43:38.307Z" }
1339
1339
  wheels = [
1340
- { url = "https://files.pythonhosted.org/packages/9c/cc/1bab1bbbd5f8ab90bf14ac09860357adfd69696fea47d480c912997e5542/vmware_policy-1.14.0-py3-none-any.whl", hash = "sha256:e3e31012fd7b86d723468478335af9cdb1e921d89d393362016e67a1aca7a21d", size = 68194, upload-time = "2026-09-14T15:09:38.199Z" },
1340
+ { url = "https://files.pythonhosted.org/packages/37/26/088f02325e51109cfe8e433d861c28f75f22ce26bb375944d365c46f85c4/vmware_policy-1.15.0-py3-none-any.whl", hash = "sha256:2f5a7b0e57fc084ea9083e67fb6e3c27059e6bd9c75b3eabfed58d6ee4366db4", size = 69524, upload-time = "2026-09-15T05:43:36.606Z" },
1341
1341
  ]
@@ -6,4 +6,4 @@ remediation to vmware-aiops / vmware-pilot. Never writes to any VMware system
6
6
  and never executes fixes; its only writes go to the local case ledger.
7
7
  """
8
8
 
9
- __version__ = "1.12.0"
9
+ __version__ = "1.12.1"
@@ -20,6 +20,7 @@ from rich.table import Table
20
20
 
21
21
  from vmware_debug import __version__
22
22
  from vmware_debug.mcp.tools import incident_timeline, list_symptom_categories
23
+ from vmware_policy import cli_local
23
24
 
24
25
 
25
26
  def _harden_console_encoding() -> None:
@@ -53,12 +54,14 @@ console = Console()
53
54
 
54
55
 
55
56
  @app.command()
57
+ @cli_local("prints the installed version")
56
58
  def version() -> None:
57
59
  """Print the installed version."""
58
60
  console.print(f"vmware-debug {__version__}")
59
61
 
60
62
 
61
63
  @app.command()
64
+ @cli_local("prints the built-in symptom catalogue; contacts nothing")
62
65
  def categories() -> None:
63
66
  """List the symptom categories debug recognises and what to check for each."""
64
67
  table = Table(title="vmware-debug symptom categories")
@@ -71,6 +74,7 @@ def categories() -> None:
71
74
 
72
75
 
73
76
  @app.command()
77
+ @cli_local("correlates events read from a file or stdin; contacts nothing")
74
78
  def triage(
75
79
  events_file: Optional[Path] = typer.Option(
76
80
  None, "--events", "-e", help="JSON file of event envelopes; reads stdin if omitted."
@@ -99,6 +103,7 @@ def triage(
99
103
 
100
104
 
101
105
  @app.command()
106
+ @cli_local("starts the MCP server; its tools audit themselves")
102
107
  def mcp() -> None:
103
108
  """Start the stdio MCP server (no network access; proxy-safe)."""
104
109
  from vmware_debug.mcp_server.server import main as _main
File without changes
File without changes
File without changes