@karmaniverous/jeeves-watcher-openclaw 0.16.1 → 0.17.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/LICENSE ADDED
@@ -0,0 +1,28 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2025, Jason Williscroft
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ 1. Redistributions of source code must retain the above copyright notice, this
9
+ list of conditions and the following disclaimer.
10
+
11
+ 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ 3. Neither the name of the copyright holder nor the names of its
16
+ contributors may be used to endorse or promote products derived from
17
+ this software without specific prior written permission.
18
+
19
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package/README.md CHANGED
@@ -31,11 +31,13 @@ Plugin config lives in `openclaw.json` under `plugins.entries.jeeves-watcher-ope
31
31
  ```json
32
32
  {
33
33
  "apiUrl": "http://127.0.0.1:1936",
34
+ "apiKey": "<the service api.apiKey>",
34
35
  "configRoot": "/srv/jeeves/config"
35
36
  }
36
37
  ```
37
38
 
38
39
  - **`apiUrl`**: jeeves-watcher API base URL (default: `http://127.0.0.1:1936`; env fallback `JEEVES_WATCHER_URL`).
40
+ - **`apiKey`** (optional): bearer key sent as `Authorization: Bearer <key>` on every watcher API request; it must match the service's `api.apiKey`. Env fallback `JEEVES_WATCHER_API_KEY`. Resolved on every call and never logged. Unset (the default): no header is sent, exactly as before. If the service requires a key and it is missing or wrong, tools return an `HTTP 401 unauthorized` error naming both ways to set it. Every other API error reads `HTTP <status> <code>: <message>`, with the server's error code. Only `watcher_status` (`GET /status` is always open) and `watcher_service` (no HTTP) do not use it.
39
41
  - **`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
42
 
41
43
  `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.
@@ -46,7 +48,7 @@ Plugin config lives in `openclaw.json` under `plugins.entries.jeeves-watcher-ope
46
48
 
47
49
  ## Jeeves Platform Integration
48
50
 
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:
51
+ The plugin builds on [`@karmaniverous/jeeves`](https://www.npmjs.com/package/@karmaniverous/jeeves) 0.7 (static-content core since 0.6). It writes **no** workspace files and starts no timers:
50
52
 
51
53
  - **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
54
  - **Live state**: served by tools (`watcher_status`, `watcher_config`) rather than a refreshed file.
@@ -61,12 +63,12 @@ The plugin builds on [`@karmaniverous/jeeves`](https://www.npmjs.com/package/@ka
61
63
  | `watcher_search` | Semantic search across indexed documents |
62
64
  | `watcher_enrich` | Set or update document metadata by file path |
63
65
  | `watcher_config` | Query the effective runtime config via JSONPath |
64
- | `watcher_walk` | Walk watched filesystem paths with glob intersection |
65
- | `watcher_validate` | Validate a watcher configuration |
66
- | `watcher_config_apply` | Apply a new configuration |
66
+ | `watcher_walk` | List watched files matching globs |
67
+ | `watcher_validate` | Validate a candidate config, optionally testing file paths |
68
+ | `watcher_config_apply` | Apply a config patch (response config redacted) |
67
69
  | `watcher_reindex` | Trigger a scoped reindex with blast area plan |
68
70
  | `watcher_scan` | Filter-only point query with cursor pagination |
69
- | `watcher_issues` | List indexing issues and errors |
71
+ | `watcher_issues` | List processing issues (file paths and source references) |
70
72
  | `watcher_service` | Manage watcher background service (install/uninstall/start/stop/restart/status) |
71
73
  | `watcher_vcs_status` | Version tracking health: enabled state, tracked roots, remote status |
72
74
  | `watcher_vcs_history` | Query change history by path or glob with optional date range |