@karmaniverous/jeeves-watcher-openclaw 0.13.2 → 0.14.1

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.
@@ -48,7 +48,14 @@ curl http://127.0.0.1:<PORT>/config
48
48
  | `/issues` | GET | Runtime embedding failures |
49
49
  | `/rules/register` | POST | Register virtual inference rules (auto-triggers rules reindex) |
50
50
  | `/rules/unregister` | DELETE | Remove virtual rules by source |
51
+ | `/rules/unregister/:source` | DELETE | Remove virtual rules by source (parameterized) |
52
+ | `/rules/reapply` | POST | Re-apply rules to points |
51
53
  | `/points/delete` | POST | Delete points matching a Qdrant filter |
54
+ | `/render` | POST | Render a template for a document |
55
+ | `/search/facets` | GET | Get search facet values |
56
+ | `/rebuild-metadata` | POST | Rebuild enrichment metadata from Qdrant |
57
+ | `/config/schema` | GET | Get config JSON schema |
58
+ | `/config/match` | POST | Match config paths against rules |
52
59
 
53
60
  **If the watcher is unreachable:** Check the service status (`nssm status jeeves-watcher` on Windows), check the configured port in the watcher config file, and check logs for startup errors.
54
61
 
@@ -119,12 +126,12 @@ When the plugin loads and the watcher service is NOT yet set up, drive the entir
119
126
 
120
127
  ### Step 1: Check Node.js
121
128
 
122
- Verify Node.js is installed and version ≥ 20:
129
+ Verify Node.js is installed and version ≥ 22:
123
130
  ```bash
124
131
  node --version
125
132
  ```
126
133
 
127
- If missing or too old, guide the user to install Node.js 20+ from https://nodejs.org or via their package manager.
134
+ If missing or too old, guide the user to install Node.js 22+ from https://nodejs.org or via their package manager.
128
135
 
129
136
  ### Step 2: Install Qdrant
130
137
 
@@ -461,6 +468,12 @@ do {
461
468
  } while (cursor);
462
469
  ```
463
470
 
471
+ ### `watcher_service`
472
+ Manage the watcher background service (install, uninstall, start, stop, restart, check status).
473
+ - `action` (string, required) — one of: `install`, `uninstall`, `start`, `stop`, `restart`, `status`
474
+
475
+ Returns the service manager's response. On Windows uses NSSM, on Linux uses systemd.
476
+
464
477
  ### `watcher_issues`
465
478
  Get runtime embedding failures. Returns `{ filePath: IssueRecord }` showing files that failed and why.
466
479
 
@@ -777,6 +790,27 @@ $.mapHelpers — JsonMap helper namespaces with exports
777
790
  $.templateHelpers — Handlebars helper namespaces with exports
778
791
  ```
779
792
 
793
+ ### Built-in JsonMap Helpers
794
+
795
+ The following helpers are available in every JsonMap `lib` context without any helper config:
796
+
797
+ #### `fetchSiblings(filePath, options?)`
798
+ Retrieve extracted text from neighboring files in the same directory. Useful for contextual embedding — e.g., injecting surrounding email messages into a thread member's embedding for better semantic search.
799
+
800
+ **Parameters:**
801
+ - `filePath` (string) — the current file path (typically `$file_path`)
802
+ - `options` (object, optional):
803
+ - `before` (number, default 3) — number of preceding siblings to include
804
+ - `after` (number, default 1) — number of following siblings to include
805
+ - `sort` (`"name"` | `"mtime"`, default `"name"`) — sort order for determining neighbor position
806
+
807
+ **Returns:** `string[]` — extracted text from sibling files, in sort order. Files that fail extraction are silently skipped.
808
+
809
+ **Example** (in a JsonMap `$set` expression):
810
+ ```json
811
+ { "context": { "$fn": "fetchSiblings", "$args": ["$file_path", { "before": 2, "after": 1 }] } }
812
+ ```
813
+
780
814
  ---
781
815
 
782
816
  ## Enrichment
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @module plugin/configApplyIntegration.test
3
+ * Cross-cutting integration test: exercises the factory-generated
4
+ * watcher_config_apply tool against a mock /config/apply handler to verify
5
+ * the `patch` envelope round-trip works end-to-end.
6
+ */
7
+ export {};
@@ -15,7 +15,7 @@ export declare const SERVICE_PACKAGE = "@karmaniverous/jeeves-watcher";
15
15
  /** npm package name for the plugin. */
16
16
  export declare const PLUGIN_PACKAGE = "@karmaniverous/jeeves-watcher-openclaw";
17
17
  /** Default watcher API port. */
18
- export declare const DEFAULT_PORT = 1936;
18
+ export declare const DEFAULT_PORT: number;
19
19
  /** Default watcher API base URL. */
20
20
  export declare const DEFAULT_API_URL: string;
21
21
  /** Default platform config root path. */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module plugin/watcherTools
3
- * Watcher tool registrations (watcher_* tools) for the OpenClaw plugin.
3
+ * Domain-specific watcher tool registrations (7 tools) for the OpenClaw plugin.
4
4
  */
5
5
  import { type PluginApi } from '@karmaniverous/jeeves';
6
- /** Register all 9 watcher_* tools with the OpenClaw plugin API. */
6
+ /** Register the 7 domain-specific watcher_* tools with the OpenClaw plugin API. */
7
7
  export declare function registerWatcherTools(api: PluginApi, baseUrl: string): void;
@@ -2,7 +2,7 @@
2
2
  "id": "jeeves-watcher-openclaw",
3
3
  "name": "Jeeves Watcher",
4
4
  "description": "Semantic search, metadata enrichment, and instance administration for a jeeves-watcher deployment.",
5
- "version": "0.13.2",
5
+ "version": "0.14.1",
6
6
  "skills": [
7
7
  "dist/skills/jeeves-watcher"
8
8
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@karmaniverous/jeeves-watcher-openclaw",
3
- "version": "0.13.2",
3
+ "version": "0.14.1",
4
4
  "author": "Jason Williscroft",
5
5
  "description": "OpenClaw plugin for jeeves-watcher — semantic search and metadata enrichment tools",
6
6
  "license": "BSD-3-Clause",
@@ -42,7 +42,7 @@
42
42
  "semantic-search"
43
43
  ],
44
44
  "engines": {
45
- "node": ">=20"
45
+ "node": ">=22"
46
46
  },
47
47
  "openclaw": {
48
48
  "extensions": [
@@ -57,7 +57,7 @@
57
57
  "hideCredit": true
58
58
  },
59
59
  "dependencies": {
60
- "@karmaniverous/jeeves": "^0.4.6"
60
+ "@karmaniverous/jeeves": "^0.5.3"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@dotenvx/dotenvx": "^1.59.1",
@@ -67,7 +67,7 @@
67
67
  "@rollup/plugin-typescript": "^12.3.0",
68
68
  "auto-changelog": "^2.5.0",
69
69
  "cross-env": "^10.1.0",
70
- "knip": "^6.1.0",
70
+ "knip": "^6.3.0",
71
71
  "release-it": "^19.2.4",
72
72
  "rollup": "^4.60.1",
73
73
  "tslib": "^2.8.1",