docs: add hf plugin and monitor integration requirements
This commit is contained in:
@@ -40,6 +40,133 @@ This CLI should work well in two environments:
|
||||
|
||||
---
|
||||
|
||||
## OpenClaw Plugin / Monitor Integration Requirements
|
||||
|
||||
This CLI plan now also carries **cross-project integration constraints** for:
|
||||
|
||||
- `HarborForge.OpenclawPlugin`
|
||||
- `HarborForge.Monitor`
|
||||
- `HarborForge.Cli`
|
||||
|
||||
These requirements should be treated as part of the same roadmap because the CLI, plugin installation flow, and monitor data path are now coupled.
|
||||
|
||||
### 1. OpenClaw plugin registration name
|
||||
|
||||
The plugin currently known as HarborForge.OpenclawPlugin should register under the plugin name:
|
||||
|
||||
```text
|
||||
harbor-forge
|
||||
```
|
||||
|
||||
This should replace the old plugin registration name used previously.
|
||||
|
||||
### 2. Remove plugin sidecar server
|
||||
|
||||
The plugin should no longer keep a separate `server/` sidecar process for telemetry collection.
|
||||
|
||||
That means:
|
||||
- remove the plugin-side `server` component
|
||||
- remove the architecture where plugin telemetry is uploaded by a dedicated sidecar process
|
||||
- any OpenClaw-specific monitor data should instead be served directly by the plugin via the plugin/runtime communication path described below
|
||||
|
||||
### 3. Plugin install script: `--install-cli`
|
||||
|
||||
The OpenClaw plugin install script should support:
|
||||
|
||||
```bash
|
||||
--install-cli
|
||||
```
|
||||
|
||||
If present, the installer should:
|
||||
|
||||
1. build `HarborForge.Cli`
|
||||
2. produce the `hf` binary
|
||||
3. copy the binary into the OpenClaw profile `bin` directory
|
||||
4. `chmod +x` the installed binary
|
||||
|
||||
Default target location:
|
||||
|
||||
```text
|
||||
~/.openclaw/bin/hf
|
||||
```
|
||||
|
||||
The implementation should allow profile-aware resolution, but default to:
|
||||
|
||||
```text
|
||||
~/.openclaw/bin
|
||||
```
|
||||
|
||||
### 4. Plugin config: add `monitor_port`
|
||||
|
||||
The OpenClaw plugin configuration should add a new field:
|
||||
|
||||
```text
|
||||
monitor_port
|
||||
```
|
||||
|
||||
This port is used for **local communication between HarborForge.Monitor and the plugin**.
|
||||
|
||||
### 5. HarborForge.Monitor Docker env: `MONITOR_PORT`
|
||||
|
||||
`HarborForge.Monitor` should add a Docker environment variable:
|
||||
|
||||
```text
|
||||
MONITOR_PORT
|
||||
```
|
||||
|
||||
Behavior:
|
||||
- Monitor listens on `127.0.0.1:<MONITOR_PORT>`
|
||||
- docker-compose should expose this port to the host on `127.0.0.1`
|
||||
- the OpenClaw plugin communicates with Monitor through this local port
|
||||
|
||||
This communication channel is specifically for supplementing OpenClaw-related telemetry, such as:
|
||||
- OpenClaw version
|
||||
- plugin version
|
||||
- agent information
|
||||
- other OpenClaw runtime metadata that used to come from the plugin-side sidecar telemetry path
|
||||
|
||||
### 6. Monitor heartbeat behavior stays independent
|
||||
|
||||
`HarborForge.Monitor` startup / heartbeat / telemetry upload must **not depend** on successful communication with the plugin over `MONITOR_PORT`.
|
||||
|
||||
Required behavior:
|
||||
- if no plugin communication happens, Monitor should behave exactly like it does now
|
||||
- if plugin communication succeeds, Monitor should enrich uploaded telemetry with:
|
||||
- OpenClaw version
|
||||
- plugin version
|
||||
- agent list / agent metadata
|
||||
- related OpenClaw-side monitor fields
|
||||
|
||||
In other words:
|
||||
- hardware/host telemetry path remains primary and independent
|
||||
- OpenClaw-side metadata becomes optional enrichment
|
||||
|
||||
### 7. Plugin `skills/` folder deployment
|
||||
|
||||
`HarborForge.OpenclawPlugin` should include a `skills/` directory.
|
||||
|
||||
During plugin installation, installer logic should copy everything under that directory into the OpenClaw profile skills directory.
|
||||
|
||||
Default target location:
|
||||
|
||||
```text
|
||||
~/.openclaw/skills
|
||||
```
|
||||
|
||||
The implementation should be profile-aware, but default to the standard OpenClaw profile path above.
|
||||
|
||||
### 8. Implication for implementation planning
|
||||
|
||||
This means the CLI plan is no longer only about `hf` command syntax.
|
||||
It also implies follow-up implementation work in:
|
||||
|
||||
- `HarborForge.Cli`
|
||||
- `HarborForge.OpenclawPlugin`
|
||||
- `HarborForge.Monitor`
|
||||
- Docker / install scripts / plugin packaging
|
||||
|
||||
---
|
||||
|
||||
## Binary / Config Model
|
||||
|
||||
## CLI name
|
||||
@@ -846,13 +973,32 @@ The backend should support:
|
||||
- meeting commands
|
||||
- support commands
|
||||
|
||||
## Phase 6 — Hardening
|
||||
## Phase 6 — Plugin / Install Integration
|
||||
|
||||
- rename OpenClaw plugin registration to `harbor-forge`
|
||||
- remove plugin-side telemetry `server/` sidecar architecture
|
||||
- add plugin config field `monitor_port`
|
||||
- add plugin installer flag `--install-cli`
|
||||
- build and install `hf` into OpenClaw profile `bin/`
|
||||
- copy plugin `skills/` into OpenClaw profile `skills/`
|
||||
|
||||
## Phase 7 — Monitor / Plugin Local Bridge
|
||||
|
||||
- add `MONITOR_PORT` to HarborForge.Monitor Docker runtime
|
||||
- expose `127.0.0.1:<MONITOR_PORT>` to host in compose
|
||||
- let Monitor query plugin over this local port for OpenClaw metadata
|
||||
- keep hardware heartbeat / telemetry upload independent of plugin communication
|
||||
- enrich Monitor uploads with OpenClaw version / plugin version / agent metadata when available
|
||||
|
||||
## Phase 8 — Hardening
|
||||
|
||||
- tests for config-path behavior
|
||||
- tests for mode switching (`pass_mgr` present / absent)
|
||||
- tests for exact stderr messages
|
||||
- tests for help and help-brief rendering
|
||||
- tests for permission-aware help visibility
|
||||
- tests for plugin installer behavior (`--install-cli`, skills copy)
|
||||
- tests for monitor local bridge behavior with and without plugin connectivity
|
||||
- binary packaging / release pipeline
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user