queue-aiops 0.8.0__tar.gz → 0.9.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.
- queue_aiops-0.9.1/.claude-plugin/plugin.json +21 -0
- queue_aiops-0.9.1/.mcp.json +13 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/CHANGELOG.md +34 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/PKG-INFO +32 -2
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/README.md +30 -0
- queue_aiops-0.9.1/openclaw.plugin.json +24 -0
- queue_aiops-0.9.1/package.json +20 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/pyproject.toml +1 -1
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/governance/decorators.py +4 -4
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/server.json +2 -2
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/skills/queue-aiops/SKILL.md +10 -1
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/uv.lock +1 -1
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/.github/workflows/mcp-publish.yml +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/.github/workflows/publish.yml +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/.gitignore +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/Dockerfile +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/LICENSE +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/RELEASE_NOTES.md +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/SECURITY.md +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/docs/VERIFICATION.md +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/glama.json +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/mcp_server/__init__.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/mcp_server/_shared.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/mcp_server/server.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/mcp_server/tools/__init__.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/mcp_server/tools/analysis.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/mcp_server/tools/overview.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/mcp_server/tools/rabbit_reads.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/mcp_server/tools/redis_reads.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/mcp_server/tools/undo.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/mcp_server/tools/writes.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/__init__.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/cli/__init__.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/cli/_common.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/cli/_root.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/cli/analyze.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/cli/doctor.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/cli/init.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/cli/overview.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/cli/rabbit_cmds.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/cli/redis_cmds.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/cli/secret.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/cli/undo.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/config.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/connection.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/doctor.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/governance/__init__.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/governance/audit.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/governance/budget.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/governance/outcome.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/governance/paths.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/governance/patterns.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/governance/policy.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/governance/sanitize.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/governance/undo.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/ops/__init__.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/ops/_util.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/ops/analysis.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/ops/overview.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/ops/rabbit_reads.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/ops/redis_reads.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/ops/writes.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/platform.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/queue_aiops/secretstore.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/skills/queue-aiops/references/agent-guardrails.md +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/skills/queue-aiops/references/capabilities.md +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/skills/queue-aiops/references/cli-reference.md +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/skills/queue-aiops/references/setup-guide.md +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/smithery.yaml +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/conftest.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/fakes.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_analysis.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_cli_governed_exit.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_cli_rabbit_writes.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_cli_reads.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_cli_secret.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_cli_writes.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_connection.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_doctor.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_gov_audit.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_gov_decorators.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_gov_patterns.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_gov_policy.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_governance_persistence.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_init.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_int_fidelity.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_mcp_reads.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_optional_fields.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_platform.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_reads.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_secretstore.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_self_kill.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_self_lockout.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_smoke.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_undo_executor.py +0 -0
- {queue_aiops-0.8.0 → queue_aiops-0.9.1}/tests/test_writes.py +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://anthropic.com/claude-code/plugin.schema.json",
|
|
3
|
+
"name": "queue-aiops",
|
|
4
|
+
"displayName": "Queue AIops",
|
|
5
|
+
"version": "0.9.1",
|
|
6
|
+
"description": "Governed redis + rabbitmq ops: memory/latency/backlog/churn RCA, policies. 28 tools.",
|
|
7
|
+
"author": {
|
|
8
|
+
"name": "Wei Zhou",
|
|
9
|
+
"email": "zhouwei008@gmail.com",
|
|
10
|
+
"url": "https://github.com/AIops-tools"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/AIops-tools/Queue-AIops",
|
|
13
|
+
"repository": "https://github.com/AIops-tools/Queue-AIops",
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"keywords": [
|
|
16
|
+
"aiops",
|
|
17
|
+
"mcp",
|
|
18
|
+
"governance",
|
|
19
|
+
"queue"
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v0.9.1 — 2026-09-12
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **The OpenClaw install path is documented.** The ClawHub bundle channel went
|
|
7
|
+
live but neither the README nor this skill said how to install from it:
|
|
8
|
+
`openclaw plugins install clawhub:@aiops-tools/queue-aiops`. States the `uvx`
|
|
9
|
+
prerequisite (without it the skill installs but reports `Visible to model:
|
|
10
|
+
no`) and that the MCP server is pinned to this exact release.
|
|
11
|
+
- **Where an exported master password lives** is now stated next to the
|
|
12
|
+
instruction to export it: readable by every process the shell starts, and
|
|
13
|
+
kept in shell history.
|
|
14
|
+
|
|
15
|
+
## v0.9.0 — 2026-09-12
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- **Installable as a Claude Code plugin.** `.claude-plugin/plugin.json` plus a
|
|
19
|
+
root `.mcp.json` make this repo a plugin, so `/plugin install queue-aiops@aiops-tools`
|
|
20
|
+
delivers the skill and registers the MCP server in one step. The server is
|
|
21
|
+
pinned to the exact package version the manifest declares, so an audit row
|
|
22
|
+
stays traceable to the code that produced it. Nothing about the tool itself
|
|
23
|
+
changed — the CLI and the standalone MCP server work exactly as before.
|
|
24
|
+
- **Installable from ClawHub as an OpenClaw bundle plugin** (`@aiops-tools/queue-aiops`): one install delivers the skill *and* its MCP
|
|
25
|
+
server, pinned to this exact release. `clawhub.ai/plugins`.
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
- **The skill was invisible to the model in OpenClaw.** Its metadata
|
|
29
|
+
declared `requires.config` (OpenClaw reads that as config *keys*, not file
|
|
30
|
+
paths, so it can never be satisfied), `requires.env` and `requires.bins`
|
|
31
|
+
naming our own CLI — which a plugin user never has on PATH — plus a
|
|
32
|
+
`primaryEnv` that turned a config path into an API-key prompt. Measured on
|
|
33
|
+
OpenClaw 2026.6.35: `Visible to model: no`. It now requires
|
|
34
|
+
`anyBins: [queue-aiops, uvx]` — either one suffices — with every variable kept
|
|
35
|
+
in `optional.env` (still declared, no longer a load gate), which the same
|
|
36
|
+
command reports as `Visible to model: yes`.
|
|
3
37
|
## v0.8.0 — 2026-08-10
|
|
4
38
|
|
|
5
39
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: queue-aiops
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.1
|
|
4
4
|
Summary: Governed AI-ops for redis + rabbitmq: memory-pressure/latency/queue-backlog/connection-churn RCAs, slowlog and SCAN-budgeted big-key sampling, queues/policies/nodes, and governed writes (config set, client kill, purge/delete queue, policies) 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
|
|
@@ -40,6 +40,36 @@ by the built-in governance harness.
|
|
|
40
40
|
|
|
41
41
|
## Quick start
|
|
42
42
|
|
|
43
|
+
### As a Claude Code plugin
|
|
44
|
+
|
|
45
|
+
One install gives an agent both the skill and the MCP server:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
/plugin marketplace add AIops-tools/marketplace
|
|
49
|
+
/plugin install queue-aiops@aiops-tools
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The MCP server is fetched with [uv](https://docs.astral.sh/uv/) and pinned to the
|
|
53
|
+
package version this plugin declares, so an audit row can be traced back to the
|
|
54
|
+
code that wrote it. Credentials are still configured with `queue-aiops init` — see below.
|
|
55
|
+
|
|
56
|
+
### As an OpenClaw plugin
|
|
57
|
+
|
|
58
|
+
The same bundle is published on [ClawHub](https://clawhub.ai/plugins), where one
|
|
59
|
+
install delivers the skill and its MCP server together:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
openclaw plugins install clawhub:@aiops-tools/queue-aiops
|
|
63
|
+
openclaw skills info queue-aiops # expect: Visible to model: yes
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Restart the OpenClaw gateway afterwards so it loads the plugin. The MCP server is
|
|
67
|
+
fetched with [uv](https://docs.astral.sh/uv/), pinned to this exact release, so
|
|
68
|
+
`uvx` has to be on `PATH` — without it the skill still installs but reports
|
|
69
|
+
`Visible to model: no`. Credentials are configured exactly as below.
|
|
70
|
+
|
|
71
|
+
### As a CLI or standalone MCP server
|
|
72
|
+
|
|
43
73
|
```bash
|
|
44
74
|
uv tool install queue-aiops
|
|
45
75
|
|
|
@@ -23,6 +23,36 @@ by the built-in governance harness.
|
|
|
23
23
|
|
|
24
24
|
## Quick start
|
|
25
25
|
|
|
26
|
+
### As a Claude Code plugin
|
|
27
|
+
|
|
28
|
+
One install gives an agent both the skill and the MCP server:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
/plugin marketplace add AIops-tools/marketplace
|
|
32
|
+
/plugin install queue-aiops@aiops-tools
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The MCP server is fetched with [uv](https://docs.astral.sh/uv/) and pinned to the
|
|
36
|
+
package version this plugin declares, so an audit row can be traced back to the
|
|
37
|
+
code that wrote it. Credentials are still configured with `queue-aiops init` — see below.
|
|
38
|
+
|
|
39
|
+
### As an OpenClaw plugin
|
|
40
|
+
|
|
41
|
+
The same bundle is published on [ClawHub](https://clawhub.ai/plugins), where one
|
|
42
|
+
install delivers the skill and its MCP server together:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
openclaw plugins install clawhub:@aiops-tools/queue-aiops
|
|
46
|
+
openclaw skills info queue-aiops # expect: Visible to model: yes
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Restart the OpenClaw gateway afterwards so it loads the plugin. The MCP server is
|
|
50
|
+
fetched with [uv](https://docs.astral.sh/uv/), pinned to this exact release, so
|
|
51
|
+
`uvx` has to be on `PATH` — without it the skill still installs but reports
|
|
52
|
+
`Visible to model: no`. Credentials are configured exactly as below.
|
|
53
|
+
|
|
54
|
+
### As a CLI or standalone MCP server
|
|
55
|
+
|
|
26
56
|
```bash
|
|
27
57
|
uv tool install queue-aiops
|
|
28
58
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "queue-aiops",
|
|
3
|
+
"name": "Queue AIops",
|
|
4
|
+
"description": "Governed redis + rabbitmq ops: memory/latency/backlog/churn RCA, policies. 28 tools.",
|
|
5
|
+
"skills": [
|
|
6
|
+
"./skills"
|
|
7
|
+
],
|
|
8
|
+
"mcpServers": {
|
|
9
|
+
"queue-aiops": {
|
|
10
|
+
"transport": "stdio",
|
|
11
|
+
"command": "uvx",
|
|
12
|
+
"args": [
|
|
13
|
+
"--from",
|
|
14
|
+
"queue-aiops==0.9.1",
|
|
15
|
+
"queue-aiops-mcp"
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"configSchema": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"additionalProperties": false,
|
|
22
|
+
"properties": {}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@aiops-tools/queue-aiops",
|
|
3
|
+
"version": "0.9.4",
|
|
4
|
+
"description": "Governed redis + rabbitmq ops: memory/latency/backlog/churn RCA, policies. 28 tools.",
|
|
5
|
+
"private": true,
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"homepage": "https://github.com/AIops-tools/Queue-AIops",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/AIops-tools/Queue-AIops.git"
|
|
11
|
+
},
|
|
12
|
+
"openclaw": {
|
|
13
|
+
"compat": {
|
|
14
|
+
"pluginApi": ">=2026.3.24-beta.2"
|
|
15
|
+
},
|
|
16
|
+
"build": {
|
|
17
|
+
"openclawVersion": "2026.3.24-beta.2"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "queue-aiops"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.9.1"
|
|
8
8
|
description = "Governed AI-ops for redis + rabbitmq: memory-pressure/latency/queue-backlog/connection-churn RCAs, slowlog and SCAN-budgeted big-key sampling, queues/policies/nodes, and governed writes (config set, client kill, purge/delete queue, policies) with a built-in governance harness (audit, budget, undo, risk tiers)"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -384,10 +384,10 @@ def _finalize(state: _CallState) -> None:
|
|
|
384
384
|
# so the row must not assert a failure the tool cannot actually vouch for.
|
|
385
385
|
if state.status == "ok" and isinstance(state.result, dict):
|
|
386
386
|
# is_unknown is checked FIRST and independently of ``error``. A write
|
|
387
|
-
# can be undetermined while looking perfectly successful —
|
|
388
|
-
# task that has not finished yet returns a normal payload — and
|
|
389
|
-
# this on ``error`` audited those as 'ok', re-creating the very
|
|
390
|
-
# unknown verdict exists to prevent.
|
|
387
|
+
# can be undetermined while looking perfectly successful — an upstream
|
|
388
|
+
# async task that has not finished yet returns a normal payload — and
|
|
389
|
+
# gating this on ``error`` audited those as 'ok', re-creating the very
|
|
390
|
+
# lie the unknown verdict exists to prevent.
|
|
391
391
|
if is_unknown(state.result):
|
|
392
392
|
state.status = "unknown"
|
|
393
393
|
elif state.result.get("error"):
|
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"url": "https://github.com/AIops-tools/Queue-AIops",
|
|
8
8
|
"source": "github"
|
|
9
9
|
},
|
|
10
|
-
"version": "0.
|
|
10
|
+
"version": "0.9.1",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "pypi",
|
|
14
14
|
"identifier": "queue-aiops",
|
|
15
|
-
"version": "0.
|
|
15
|
+
"version": "0.9.1",
|
|
16
16
|
"transport": {
|
|
17
17
|
"type": "stdio"
|
|
18
18
|
}
|
|
@@ -17,7 +17,7 @@ installer:
|
|
|
17
17
|
argument-hint: "[a queue/key/client id, or describe your cache/broker task]"
|
|
18
18
|
allowed-tools:
|
|
19
19
|
- Bash
|
|
20
|
-
metadata: {"openclaw":{"requires":{"
|
|
20
|
+
metadata: {"openclaw":{"requires":{"anyBins":["queue-aiops","uvx"]},"optional":{"env":["QUEUE_AIOPS_CONFIG","QUEUE_AIOPS_MASTER_PASSWORD"]},"homepage":"https://github.com/AIops-tools/Queue-AIops","emoji":"📬","os":["macos","linux"]}}
|
|
21
21
|
compatibility: >
|
|
22
22
|
Standalone, self-governed broker operations across redis (RESP wire protocol via the redis Python client; password optional — auth-less lab instances are supported — TLS optional) and rabbitmq (management HTTP API /api/..., HTTP Basic auth with a monitoring/management-tagged user). Each target in the config names its own platform, and a name-keyed platform registry selects the protocol shape, so one config can span a mixed estate. The governance harness (audit, policy, token/runaway budget, undo, risk-tiers) is bundled in the package — no external skill-family dependency.
|
|
23
23
|
All write operations are audited to a local SQLite DB under ~/.queue-aiops/ (relocatable via QUEUE_AIOPS_HOME).
|
|
@@ -75,6 +75,15 @@ queue-aiops init # wizard: pick platform (redis/rabbitmq) + encrypted secr
|
|
|
75
75
|
queue-aiops doctor
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
+
Or as an OpenClaw plugin, which installs this skill and its MCP server together:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
openclaw plugins install clawhub:@aiops-tools/queue-aiops
|
|
82
|
+
openclaw skills info queue-aiops # expect: Visible to model: yes
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Needs `uvx` on `PATH`: the MCP server is fetched with uv, pinned to this release.
|
|
86
|
+
|
|
78
87
|
## When to Use This Skill
|
|
79
88
|
|
|
80
89
|
- Get a one-shot snapshot (`overview` / `redis_server_info` / `rabbitmq_overview`)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|