vmware-debug 1.8.0__tar.gz → 1.8.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 (30) hide show
  1. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/PKG-INFO +1 -1
  2. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/RELEASE_NOTES.md +21 -0
  3. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/pyproject.toml +1 -1
  4. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/server.json +2 -2
  5. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/skills/vmware-debug/SKILL.md +12 -0
  6. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/skills/vmware-debug/references/capabilities.md +5 -0
  7. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/skills/vmware-debug/references/setup-guide.md +40 -0
  8. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/vmware_debug/__init__.py +1 -1
  9. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/.gitignore +0 -0
  10. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/README-CN.md +0 -0
  11. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/README.md +0 -0
  12. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/SECURITY.md +0 -0
  13. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/mcp_server/__init__.py +0 -0
  14. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/mcp_server/server.py +0 -0
  15. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/skills/vmware-debug/references/cli-reference.md +0 -0
  16. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/skills/vmware-debug/references/event-envelope.md +0 -0
  17. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/skills/vmware-debug/references/routing.md +0 -0
  18. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/tests/eval/regression/__init__.py +0 -0
  19. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/tests/eval/regression/test_debug_regressions.py +0 -0
  20. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/tests/eval/regression/test_declared_environment.py +0 -0
  21. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/tests/eval/regression/test_read_only_mode.py +0 -0
  22. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/tests/eval/regression/test_result_envelope.py +0 -0
  23. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/tests/test_timeline.py +0 -0
  24. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/uv.lock +0 -0
  25. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/vmware_debug/cli.py +0 -0
  26. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/vmware_debug/envelope.py +0 -0
  27. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/vmware_debug/mcp/__init__.py +0 -0
  28. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/vmware_debug/mcp/tools.py +0 -0
  29. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/vmware_debug/ops/__init__.py +0 -0
  30. {vmware_debug-1.8.0 → vmware_debug-1.8.1}/vmware_debug/ops/timeline.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vmware-debug
3
- Version: 1.8.0
3
+ Version: 1.8.1
4
4
  Summary: VMware diagnostic brain — read-only incident triage, log/event correlation, and root-cause routing across the VMware skill family
5
5
  Author-email: Wei Zhou <wei-wz.zhou@broadcom.com>
6
6
  License-Expression: MIT
@@ -1,3 +1,24 @@
1
+ ## v1.8.1 (2026-07-19) — read-only mode reaches the surfaces that teach it
2
+
3
+ v1.8.0 put read-only mode in the code and documented it in the README only.
4
+ Every other layer was empty, and each serves a different reader: SKILL.md is what
5
+ the agent loads, setup-guide is what an operator reads while configuring, `doctor`
6
+ is where they verify it took. The gap had two concrete costs.
7
+
8
+ An agent read SKILL.md, called a write tool the gate had withheld, and got nothing
9
+ back — with no way to learn that the absence was a deliberate lockdown rather than
10
+ a fault. It reads as a broken tool, so the model retries or hunts for a workaround.
11
+
12
+ An operator who set the switch had no way to confirm it. The only signal was a line
13
+ in the MCP server's start-up log.
14
+
15
+ ### Added — the feature is now documented where each reader looks
16
+
17
+ SKILL.md, setup-guide and capabilities now cover read-only mode. Both tools here
18
+ are reads, so nothing is withheld — the gate instead verifies that at start-up
19
+ rather than taking this documentation's word for it. Env vars are the only switch;
20
+ this package has no config file.
21
+
1
22
  ## v1.8.0 (2026-07-18) — read-only mode, working policy defaults, declared environments
2
23
 
3
24
  Family release driven by [VMware-AIops#31](https://github.com/zw008/VMware-AIops/issues/31),
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "vmware-debug"
7
- version = "1.8.0"
7
+ version = "1.8.1"
8
8
  description = "VMware diagnostic brain — read-only incident triage, log/event correlation, and root-cause routing across the VMware skill family"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -7,12 +7,12 @@
7
7
  "url": "https://github.com/zw008/VMware-Debug",
8
8
  "source": "github"
9
9
  },
10
- "version": "1.8.0",
10
+ "version": "1.8.1",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "vmware-debug",
15
- "version": "1.8.0",
15
+ "version": "1.8.1",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  }
@@ -113,6 +113,18 @@ a recommended plan.
113
113
  See `references/event-envelope.md`. The agent normalises each source's events into this
114
114
  shape; debug stays source-agnostic and has no dependency on the other packages.
115
115
 
116
+ ## Read-Only Mode
117
+
118
+ Both tools here are reads, so read-only mode withholds nothing — but
119
+ `VMWARE_DEBUG_READ_ONLY=true` or the family-wide `VMWARE_READ_ONLY=true` still applies, and
120
+ the gate verifies at start-up that zero write tools are exposed rather than taking this
121
+ document's word for it. Debug has no config file, so the env vars are the only switch. The
122
+ same family variable withholds write tools across every companion skill, so a whole-estate
123
+ audit posture is one setting — and when you route a fix to vmware-aiops or vmware-pilot and
124
+ the tool is missing from *their* `list_tools()`, that is the lockdown, not a fault. Do not
125
+ retry or hunt for another route: name the blocked operation and say an operator must clear
126
+ the switch and restart that server.
127
+
116
128
  ## CLI Quick Reference
117
129
 
118
130
  ```bash
@@ -7,6 +7,11 @@ Read-only, offline incident correlation. No network, no credentials, no writes.
7
7
  | `incident_timeline` | `{event_count, window, spikes:[{start,end,count,zscore}], hypotheses:[{category, score, summary, evidence_count, first_seen, last_seen, sample_text, suggested_check}], next_checks:[...]}` | 300–2000 (scales with hypotheses) |
8
8
  | `list_symptom_categories` | `{items: [{category, example_keywords, suggested_check}], returned, limit, total, truncated, hint}` | ~400 |
9
9
 
10
+ > Read-only mode (`VMWARE_DEBUG_READ_ONLY=true` or the family-wide `VMWARE_READ_ONLY=true`;
11
+ > debug has no config file) removes nothing from this table — both tools are `[READ]`, and
12
+ > the gate proves that at start-up rather than trusting the marker. Classification comes
13
+ > from the `[READ]`/`[WRITE]` docstring marker — see README.
14
+
10
15
  `list_symptom_categories` returns the family list envelope — read the rows from
11
16
  `items`. It has no `limit` parameter, which is exactly why the envelope matters:
12
17
  `truncated: false` states that this is every category there is, rather than
@@ -26,6 +26,46 @@ For full cross-skill diagnosis, also install the data-source skills it correlate
26
26
  (vmware-monitor, vmware-log-insight, vmware-aria, vmware-nsx) and the executors it
27
27
  routes fixes to (vmware-aiops, vmware-pilot).
28
28
 
29
+ ## Read-Only Mode
30
+
31
+ Off by default. Both of debug's tools are reads, so turning it on withholds nothing here —
32
+ the value is that the gate *verifies* at start-up that no write tool is exposed, instead of
33
+ trusting this document, and that the same family variable locks down every other installed
34
+ skill in one setting.
35
+
36
+ **Debug has no config file, so the environment is the only switch.** There is no
37
+ `read_only:` setting to write. Precedence:
38
+
39
+ | Priority | Signal | Scope |
40
+ |---|---|---|
41
+ | 1 | `VMWARE_DEBUG_READ_ONLY` | This skill only |
42
+ | 2 | `VMWARE_READ_ONLY` | Every installed VMware skill |
43
+ | 3 | (nothing set) | Off |
44
+
45
+ ```json
46
+ {
47
+ "mcpServers": {
48
+ "vmware-debug": {
49
+ "command": "vmware-debug",
50
+ "args": ["mcp"],
51
+ "env": { "VMWARE_READ_ONLY": "true" }
52
+ }
53
+ }
54
+ }
55
+ ```
56
+
57
+ **Fail-closed.** If the mode is requested but cannot be *proven*, the server refuses to
58
+ start with `ReadOnlyGateError`: the FastMCP tool registry cannot be enumerated (usually an
59
+ incompatible `mcp` version), or a removal did not take effect. One case does *not* abort —
60
+ an unparseable value (`VMWARE_DEBUG_READ_ONLY=ture`) resolves to **on** with a warning
61
+ naming the accepted values, so a typo locks the deployment down rather than leaving it
62
+ open.
63
+
64
+ **Verifying.** Debug ships no `doctor` command; the start-up log is the record — the server
65
+ logs every withheld tool when the mode engages, and logs nothing to withhold here. Skills
66
+ that do ship one (e.g. `vmware-log-insight doctor`) report their resolved state and where it
67
+ came from.
68
+
29
69
  ## Security
30
70
 
31
71
  > **Disclaimer**: Community-maintained open-source project, **not affiliated with,
@@ -5,4 +5,4 @@ into a unified timeline, detect spikes, rank root-cause hypotheses, and route
5
5
  remediation to vmware-aiops / vmware-pilot. Never writes; never executes fixes.
6
6
  """
7
7
 
8
- __version__ = "1.8.0"
8
+ __version__ = "1.8.1"
File without changes
File without changes
File without changes
File without changes
File without changes