@karmaniverous/jeeves-watcher-openclaw 0.15.6 → 0.16.0-0

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.
package/README.md CHANGED
@@ -8,43 +8,37 @@ A running [jeeves-watcher](https://www.npmjs.com/package/@karmaniverous/jeeves-w
8
8
 
9
9
  ## Installation
10
10
 
11
- ### Standard (OpenClaw CLI)
11
+ The plugin is a standard OpenClaw plugin with no installer of its own. On a Jeeves box, `jeeves install` (from [`@karmaniverous/jeeves`](https://www.npmjs.com/package/@karmaniverous/jeeves) 0.6+) installs it and writes its config:
12
12
 
13
13
  ```bash
14
- openclaw plugins install @karmaniverous/jeeves-watcher-openclaw
14
+ jeeves install watcher --config-root /srv/jeeves/config
15
15
  ```
16
16
 
17
- ### Self-Installer (Windows workaround)
18
-
19
- OpenClaw's `plugins install` command has a known [`spawn EINVAL`](https://github.com/openclaw/openclaw/issues/9224) bug on Windows. This package includes a self-installer that bypasses the issue:
20
-
21
- ```bash
22
- npx @karmaniverous/jeeves-watcher-openclaw install
23
- ```
24
-
25
- This copies the plugin into OpenClaw's extensions directory and patches the config. To remove:
17
+ Or install it directly with the OpenClaw CLI and set the config yourself:
26
18
 
27
19
  ```bash
28
- npx @karmaniverous/jeeves-watcher-openclaw uninstall
20
+ openclaw plugins install npm:@karmaniverous/jeeves-watcher-openclaw@<version> --pin --accept-capabilities
29
21
  ```
30
22
 
31
- **Non-default installations:** Set `OPENCLAW_CONFIG` (path to `openclaw.json`) or `OPENCLAW_HOME` (path to `.openclaw` directory) if OpenClaw is not installed at the default location.
23
+ The plugin registers an always-in-context rule set through OpenClaw's `before_prompt_build` hook, so it needs `plugins.entries.jeeves-watcher-openclaw.hooks.allowConversationAccess: true`. `jeeves install` / `jeeves update` grant this automatically (the hook is declared in `package.json` under `jeeves.conversationHooks`).
32
24
 
33
- After install or uninstall, restart the OpenClaw gateway to apply changes.
25
+ Restart the OpenClaw gateway to apply changes.
34
26
 
35
27
  ## Configuration
36
28
 
37
- Set the plugin config in `openclaw.json` under `plugins.entries.jeeves-watcher-openclaw.config`:
29
+ Plugin config lives in `openclaw.json` under `plugins.entries.jeeves-watcher-openclaw.config`:
38
30
 
39
31
  ```json
40
32
  {
41
33
  "apiUrl": "http://127.0.0.1:1936",
42
- "configRoot": "j:/config"
34
+ "configRoot": "/srv/jeeves/config"
43
35
  }
44
36
  ```
45
37
 
46
- - **`apiUrl`** — jeeves-watcher API base URL (default: `http://127.0.0.1:1936`)
47
- - **`configRoot`** — platform config root path, used by `@karmaniverous/jeeves` core to derive `{configRoot}/jeeves-watcher/` for component config (default: `j:/config`)
38
+ - **`apiUrl`**: jeeves-watcher API base URL (default: `http://127.0.0.1:1936`; env fallback `JEEVES_WATCHER_URL`).
39
+ - **`configRoot`**: platform config root path, used by `@karmaniverous/jeeves` core to derive `{configRoot}/jeeves-watcher/`. **No default.** Set it in plugin config or via the `JEEVES_CONFIG_ROOT` env var.
40
+
41
+ `configRoot` is resolved lazily. The plugin always registers, even before its config is written (`openclaw plugins install` activates a plugin before `jeeves install` writes `plugins.entries.<id>.config`). While `configRoot` is unset the plugin logs one warning at registration. Gating is per call: only invocations that actually read `configRoot` are gated. Today that is exactly `watcher_service` with `action: "install"` (it derives the service config path from `configRoot`); it returns an error naming both ways to set it. Other `watcher_service` actions (`uninstall`, `start`, `stop`, `restart`, `status`) address the OS service by name, and every other tool only calls the watcher HTTP API, so they keep working without `configRoot`. Core is initialized on the first gated call after it resolves.
48
42
 
49
43
  ## Architecture
50
44
 
@@ -52,17 +46,17 @@ Set the plugin config in `openclaw.json` under `plugins.entries.jeeves-watcher-o
52
46
 
53
47
  ## Jeeves Platform Integration
54
48
 
55
- This plugin integrates with [`@karmaniverous/jeeves`](https://www.npmjs.com/package/@karmaniverous/jeeves) to manage workspace content:
49
+ The plugin builds on [`@karmaniverous/jeeves`](https://www.npmjs.com/package/@karmaniverous/jeeves) 0.6 (the static-content core). It writes **no** workspace files and starts no timers:
56
50
 
57
- - **TOOLS.md** — writes a `## Watcher` section with a live menu of indexed content, score thresholds, and escalation rules (refreshes every 71 seconds)
58
- - **SOUL.md / AGENTS.md** — maintains shared platform content via managed sections
59
- - **Service commands** — exposes `stop`, `uninstall`, and `status` for the watcher service
60
- - **Plugin commands** — exposes `uninstall` for the plugin itself
51
+ - **Always-in-context rules**: the watcher escalation, scan-first and search-first rules and score guidance are injected on every turn via `before_prompt_build` (`registerPromptContext`). They replace the v0.x TOOLS.md `## Watcher` section.
52
+ - **Live state**: served by tools (`watcher_status`, `watcher_config`) rather than a refreshed file.
53
+ - **Skill**: `jeeves-watcher` ships in the package and is declared in `openclaw.plugin.json` (`skills`).
54
+ - **Static platform content** (SOUL.md / AGENTS.md blocks) is rendered only by `jeeves install`.
61
55
 
62
56
  ## Tools
63
57
 
64
58
  | Tool | Description |
65
- |------|-------------|
59
+ | --- | --- |
66
60
  | `watcher_status` | Service health, uptime, and collection stats |
67
61
  | `watcher_search` | Semantic search across indexed documents |
68
62
  | `watcher_enrich` | Set or update document metadata by file path |