postgres-aiops 0.10.0__tar.gz → 0.10.2__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 (110) hide show
  1. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/.claude-plugin/plugin.json +1 -1
  2. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/.mcp.json +1 -1
  3. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/CHANGELOG.md +23 -0
  4. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/PKG-INFO +21 -1
  5. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/README.md +20 -0
  6. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/openclaw.plugin.json +1 -1
  7. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/package.json +2 -2
  8. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/pyproject.toml +1 -1
  9. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/server.json +2 -2
  10. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/skills/postgres-aiops/SKILL.md +9 -0
  11. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/uv.lock +1 -1
  12. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/.github/workflows/mcp-publish.yml +0 -0
  13. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/.github/workflows/publish.yml +0 -0
  14. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/.gitignore +0 -0
  15. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/Dockerfile +0 -0
  16. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/LICENSE +0 -0
  17. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/RELEASE_NOTES.md +0 -0
  18. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/SECURITY.md +0 -0
  19. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/docs/VERIFICATION.md +0 -0
  20. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/glama.json +0 -0
  21. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/mcp_server/__init__.py +0 -0
  22. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/mcp_server/_shared.py +0 -0
  23. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/mcp_server/server.py +0 -0
  24. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/mcp_server/tools/__init__.py +0 -0
  25. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/mcp_server/tools/activity.py +0 -0
  26. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/mcp_server/tools/analysis.py +0 -0
  27. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/mcp_server/tools/indexes.py +0 -0
  28. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/mcp_server/tools/queries.py +0 -0
  29. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/mcp_server/tools/remediation.py +0 -0
  30. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/mcp_server/tools/replication.py +0 -0
  31. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/mcp_server/tools/server.py +0 -0
  32. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/mcp_server/tools/tables.py +0 -0
  33. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/mcp_server/tools/undo.py +0 -0
  34. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/__init__.py +0 -0
  35. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/__init__.py +0 -0
  36. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/_common.py +0 -0
  37. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/_root.py +0 -0
  38. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/activity.py +0 -0
  39. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/analyze.py +0 -0
  40. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/doctor.py +0 -0
  41. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/index.py +0 -0
  42. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/init.py +0 -0
  43. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/overview.py +0 -0
  44. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/query.py +0 -0
  45. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/remediate.py +0 -0
  46. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/replication.py +0 -0
  47. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/secret.py +0 -0
  48. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/server.py +0 -0
  49. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/table.py +0 -0
  50. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/cli/undo.py +0 -0
  51. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/config.py +0 -0
  52. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/connection.py +0 -0
  53. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/doctor.py +0 -0
  54. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/governance/__init__.py +0 -0
  55. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/governance/audit.py +0 -0
  56. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/governance/budget.py +0 -0
  57. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/governance/decorators.py +0 -0
  58. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/governance/outcome.py +0 -0
  59. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/governance/paths.py +0 -0
  60. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/governance/patterns.py +0 -0
  61. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/governance/policy.py +0 -0
  62. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/governance/sanitize.py +0 -0
  63. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/governance/undo.py +0 -0
  64. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/ops/__init__.py +0 -0
  65. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/ops/_util.py +0 -0
  66. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/ops/activity.py +0 -0
  67. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/ops/analysis.py +0 -0
  68. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/ops/indexes.py +0 -0
  69. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/ops/overview.py +0 -0
  70. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/ops/queries.py +0 -0
  71. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/ops/remediation.py +0 -0
  72. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/ops/replication.py +0 -0
  73. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/ops/server.py +0 -0
  74. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/ops/tables.py +0 -0
  75. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/postgres_aiops/secretstore.py +0 -0
  76. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/skills/postgres-aiops/references/agent-guardrails.md +0 -0
  77. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/skills/postgres-aiops/references/capabilities.md +0 -0
  78. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/skills/postgres-aiops/references/cli-reference.md +0 -0
  79. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/skills/postgres-aiops/references/setup-guide.md +0 -0
  80. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/smithery.yaml +0 -0
  81. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/conftest.py +0 -0
  82. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_analysis.py +0 -0
  83. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_cli_governed_exit.py +0 -0
  84. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_cli_reads.py +0 -0
  85. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_cli_remediate.py +0 -0
  86. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_cli_secret.py +0 -0
  87. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_cli_writes.py +0 -0
  88. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_config.py +0 -0
  89. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_connection.py +0 -0
  90. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_connection_lost.py +0 -0
  91. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_connection_more.py +0 -0
  92. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_doctor.py +0 -0
  93. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_gov_audit.py +0 -0
  94. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_gov_decorators.py +0 -0
  95. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_gov_patterns.py +0 -0
  96. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_gov_policy.py +0 -0
  97. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_governance_persistence.py +0 -0
  98. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_init.py +0 -0
  99. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_mcp_tools.py +0 -0
  100. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_ops_more.py +0 -0
  101. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_optional_fields.py +0 -0
  102. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_reads.py +0 -0
  103. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_secretstore.py +0 -0
  104. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_secretstore_more.py +0 -0
  105. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_self_lockout.py +0 -0
  106. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_smoke.py +0 -0
  107. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_truncation.py +0 -0
  108. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_undo_executor.py +0 -0
  109. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_undo_replay.py +0 -0
  110. {postgres_aiops-0.10.0 → postgres_aiops-0.10.2}/tests/test_writes.py +0 -0
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://anthropic.com/claude-code/plugin.schema.json",
3
3
  "name": "postgres-aiops",
4
4
  "displayName": "Postgres AIops",
5
- "version": "0.10.0",
5
+ "version": "0.10.2",
6
6
  "description": "Governed PostgreSQL DBA ops: slow-query RCA, bloat/vacuum & blocking-lock analysis; 35 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
- "postgres-aiops==0.10.0",
8
+ "postgres-aiops==0.10.2",
9
9
  "postgres-aiops-mcp"
10
10
  ]
11
11
  }
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.10.2 — 2026-09-12
4
+
5
+ ### Changed
6
+ - **The ClawHub bundle plugin moved from `@aiops-tools/postgres-aiops` to
7
+ `@zw008/postgres-aiops`**, matching the publisher the skill has always been under.
8
+ ClawHub cannot move a package between scopes — the scope is the publisher
9
+ identity — so this is a republish under the new name; the old name is
10
+ withdrawn. Install with:
11
+ `openclaw plugins install clawhub:@zw008/postgres-aiops`. Nothing about the Python
12
+ package, the CLI, the MCP server or the Claude Code plugin changes.
13
+
14
+ ## v0.10.1 — 2026-09-12
15
+
16
+ ### Added
17
+ - **The OpenClaw install path is documented.** The ClawHub bundle channel went
18
+ live but neither the README nor this skill said how to install from it:
19
+ `openclaw plugins install clawhub:@aiops-tools/postgres-aiops`. States the `uvx`
20
+ prerequisite (without it the skill installs but reports `Visible to model:
21
+ no`) and that the MCP server is pinned to this exact release.
22
+ - **Where an exported master password lives** is now stated next to the
23
+ instruction to export it: readable by every process the shell starts, and
24
+ kept in shell history.
25
+
3
26
  ## v0.10.0 — 2026-09-12
4
27
 
5
28
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: postgres-aiops
3
- Version: 0.10.0
3
+ Version: 0.10.2
4
4
  Summary: Governed AI-ops for PostgreSQL DBA operations: slow-query RCA, bloat/vacuum & blocking-lock analysis with a built-in governance harness (audit, budget, undo, risk tiers)
5
5
  Author-email: Wei Zhou <zhouwei008@gmail.com>
6
6
  License-Expression: MIT
@@ -110,6 +110,21 @@ The MCP server is fetched with [uv](https://docs.astral.sh/uv/) and pinned to th
110
110
  package version this plugin declares, so an audit row can be traced back to the
111
111
  code that wrote it. Credentials are still configured with `postgres-aiops init` — see below.
112
112
 
113
+ ### As an OpenClaw plugin
114
+
115
+ The same bundle is published on [ClawHub](https://clawhub.ai/plugins), where one
116
+ install delivers the skill and its MCP server together:
117
+
118
+ ```bash
119
+ openclaw plugins install clawhub:@zw008/postgres-aiops
120
+ openclaw skills info postgres-aiops # expect: Visible to model: yes
121
+ ```
122
+
123
+ Restart the OpenClaw gateway afterwards so it loads the plugin. The MCP server is
124
+ fetched with [uv](https://docs.astral.sh/uv/), pinned to this exact release, so
125
+ `uvx` has to be on `PATH` — without it the skill still installs but reports
126
+ `Visible to model: no`. Credentials are configured exactly as below.
127
+
113
128
  ### As a CLI or standalone MCP server
114
129
 
115
130
  ```bash
@@ -128,6 +143,11 @@ export POSTGRES_AIOPS_MASTER_PASSWORD=... # unlock secrets non-interactively
128
143
  postgres-aiops-mcp
129
144
  ```
130
145
 
146
+ > **Where that password then lives**: an exported variable is readable by
147
+ > every process this shell starts and is recorded by shell history. On a
148
+ > shared or long-lived host, prefer the interactive prompt, or inject it from
149
+ > a secret manager for the life of the one command that needs it.
150
+
131
151
  ## Governance
132
152
 
133
153
  Every MCP tool passes through the bundled `@governed_tool` harness:
@@ -94,6 +94,21 @@ The MCP server is fetched with [uv](https://docs.astral.sh/uv/) and pinned to th
94
94
  package version this plugin declares, so an audit row can be traced back to the
95
95
  code that wrote it. Credentials are still configured with `postgres-aiops init` — see below.
96
96
 
97
+ ### As an OpenClaw plugin
98
+
99
+ The same bundle is published on [ClawHub](https://clawhub.ai/plugins), where one
100
+ install delivers the skill and its MCP server together:
101
+
102
+ ```bash
103
+ openclaw plugins install clawhub:@zw008/postgres-aiops
104
+ openclaw skills info postgres-aiops # expect: Visible to model: yes
105
+ ```
106
+
107
+ Restart the OpenClaw gateway afterwards so it loads the plugin. The MCP server is
108
+ fetched with [uv](https://docs.astral.sh/uv/), pinned to this exact release, so
109
+ `uvx` has to be on `PATH` — without it the skill still installs but reports
110
+ `Visible to model: no`. Credentials are configured exactly as below.
111
+
97
112
  ### As a CLI or standalone MCP server
98
113
 
99
114
  ```bash
@@ -112,6 +127,11 @@ export POSTGRES_AIOPS_MASTER_PASSWORD=... # unlock secrets non-interactively
112
127
  postgres-aiops-mcp
113
128
  ```
114
129
 
130
+ > **Where that password then lives**: an exported variable is readable by
131
+ > every process this shell starts and is recorded by shell history. On a
132
+ > shared or long-lived host, prefer the interactive prompt, or inject it from
133
+ > a secret manager for the life of the one command that needs it.
134
+
115
135
  ## Governance
116
136
 
117
137
  Every MCP tool passes through the bundled `@governed_tool` harness:
@@ -11,7 +11,7 @@
11
11
  "command": "uvx",
12
12
  "args": [
13
13
  "--from",
14
- "postgres-aiops==0.10.0",
14
+ "postgres-aiops==0.10.2",
15
15
  "postgres-aiops-mcp"
16
16
  ]
17
17
  }
@@ -1,6 +1,6 @@
1
1
  {
2
- "name": "@aiops-tools/postgres-aiops",
3
- "version": "0.10.0",
2
+ "name": "@zw008/postgres-aiops",
3
+ "version": "0.10.2",
4
4
  "description": "Governed PostgreSQL DBA ops: slow-query RCA, bloat/vacuum & blocking-lock analysis; 35 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 = "postgres-aiops"
7
- version = "0.10.0"
7
+ version = "0.10.2"
8
8
  description = "Governed AI-ops for PostgreSQL DBA operations: slow-query RCA, bloat/vacuum & blocking-lock analysis with a built-in governance harness (audit, budget, undo, risk tiers)"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -7,12 +7,12 @@
7
7
  "url": "https://github.com/AIops-tools/Postgres-AIops",
8
8
  "source": "github"
9
9
  },
10
- "version": "0.10.0",
10
+ "version": "0.10.2",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "postgres-aiops",
15
- "version": "0.10.0",
15
+ "version": "0.10.2",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  }
@@ -63,6 +63,15 @@ postgres-aiops init # interactive wizard: connection + encrypted password
63
63
  postgres-aiops doctor
64
64
  ```
65
65
 
66
+ Or as an OpenClaw plugin, which installs this skill and its MCP server together:
67
+
68
+ ```bash
69
+ openclaw plugins install clawhub:@zw008/postgres-aiops
70
+ openclaw skills info postgres-aiops # expect: Visible to model: yes
71
+ ```
72
+
73
+ Needs `uvx` on `PATH`: the MCP server is fetched with uv, pinned to this release.
74
+
66
75
  ## When to Use This Skill
67
76
 
68
77
  - Triage a cluster (`overview`): version/uptime, connections by state, idle-in-transaction, longest query, worst bloat, replica lag
@@ -492,7 +492,7 @@ wheels = [
492
492
 
493
493
  [[package]]
494
494
  name = "postgres-aiops"
495
- version = "0.10.0"
495
+ version = "0.10.2"
496
496
  source = { editable = "." }
497
497
  dependencies = [
498
498
  { name = "cryptography" },
File without changes