Files
HarborForge.OpenclawPlugin/openclaw.plugin.json
zhi a148c11e50 feat: implement HarborForge Monitor OpenClaw Plugin
Architecture:
- openclaw.plugin.json: Plugin manifest with config schema
- index.mjs: Plugin entry, lifecycle hooks (gateway:start/stop)
- sidecar/server.mjs: Independent Node process for telemetry

Features:
- Collects system metrics (CPU, memory, disk, load, uptime)
- Collects OpenClaw status (version, agents)
- HTTP heartbeat to HarborForge Monitor
- Config via ~/.openclaw/openclaw.json
- Sidecar auto-starts/stops with Gateway

Config options:
- enabled, backendUrl, identifier
- challengeUuid (required, from Monitor registration)
- reportIntervalSec, httpFallbackIntervalSec
- logLevel

Provides tool: harborforge_monitor_status
2026-03-19 13:37:11 +00:00

49 lines
1.4 KiB
JSON

{
"id": "harborforge-monitor",
"name": "HarborForge Monitor",
"version": "0.1.0",
"description": "Server monitoring plugin for HarborForge - streams telemetry to Monitor",
"entry": "./index.mjs",
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean",
"default": true,
"description": "Enable the monitor plugin"
},
"backendUrl": {
"type": "string",
"default": "https://monitor.hangman-lab.top",
"description": "HarborForge Monitor backend URL"
},
"identifier": {
"type": "string",
"description": "Server identifier (auto-detected from hostname if not set)"
},
"challengeUuid": {
"type": "string",
"description": "Registration challenge UUID from Monitor"
},
"reportIntervalSec": {
"type": "number",
"default": 30,
"description": "How often to report metrics (seconds)"
},
"httpFallbackIntervalSec": {
"type": "number",
"default": 60,
"description": "HTTP heartbeat interval when WS unavailable"
},
"logLevel": {
"type": "string",
"enum": ["debug", "info", "warn", "error"],
"default": "info",
"description": "Logging level"
}
},
"required": ["challengeUuid"]
}
}