@karmaniverous/jeeves-watcher-openclaw 0.12.1 → 0.13.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.
@@ -16,7 +16,7 @@ The watcher is an HTTP API running as a background service (typically NSSM on Wi
16
16
  **Default port:** 1936 (configurable via `api.port` in watcher config)
17
17
  **Non-default port:** If the watcher runs on a different port, the user must set `plugins.entries.jeeves-watcher.config.apiUrl` in `openclaw.json`. The plugin cannot auto-discover a non-default port.
18
18
 
19
- **Health check:** `GET /status` returns uptime, point count, collection dimensions, and reindex status.
19
+ **Health check:** `GET /status` returns `name`, `version`, `uptime`, `status` (`healthy`/`degraded`/`unhealthy`), and a `health` object containing `collection` (point count, dimensions), `reindex` status, and `initialScan` progress.
20
20
 
21
21
  **Mental model:** The `watcher_*` tools are thin HTTP wrappers. Each tool call translates to an HTTP request to the watcher API. When tools are available, use them. When they're not (e.g., different session, plugin not loaded), you can hit the API directly. Replace `<PORT>` below with the configured port (default 1936; check `plugins.entries.jeeves-watcher.config.apiUrl` in `openclaw.json` if overridden):
22
22
 
@@ -267,7 +267,7 @@ Then generate a starter config file. Example minimal config:
267
267
  },
268
268
  "vectorStore": {
269
269
  "url": "http://localhost:6333",
270
- "collection": "jeeves_archive"
270
+ "collectionName": "jeeves_archive"
271
271
  },
272
272
  "search": {
273
273
  "scoreThresholds": { "strong": 0.75, "relevant": 0.5, "noise": 0.25 },
@@ -364,9 +364,9 @@ Set or update metadata on a document.
364
364
  - `metadata` (object, required) — key-value metadata to merge
365
365
 
366
366
  ### `watcher_status`
367
- Service health check. Returns uptime, version, collection stats, reindex status, and initial scan progress.
367
+ Service health check. Returns `name`, `version`, `uptime`, `status`, and `health` object with collection stats, reindex status, and initial scan progress.
368
368
 
369
- After a service restart, the `initialScan` field shows scan progress:
369
+ After a service restart, the `health.initialScan` field shows scan progress:
370
370
  - `active: true` — filesystem walk in progress; `filesMatched` and `filesEnqueued` grow until chokidar completes
371
371
  - `active: false` with `completedAt`/`durationMs` — scan finished
372
372
 
package/dist/src/cli.d.ts CHANGED
@@ -5,14 +5,6 @@
5
5
  * npx \@karmaniverous/jeeves-watcher-openclaw install
6
6
  * npx \@karmaniverous/jeeves-watcher-openclaw uninstall
7
7
  *
8
- * Bypasses OpenClaw's `plugins install` command, which has a known
9
- * spawn EINVAL bug on Windows (https://github.com/openclaw/openclaw/issues/9224).
10
- *
11
- * Supports non-default installations via:
12
- * - OPENCLAW_CONFIG env var (path to openclaw.json)
13
- * - OPENCLAW_HOME env var (path to .openclaw directory)
14
- * - Default: ~/.openclaw/openclaw.json
15
- *
16
8
  * @module cli
17
9
  */
18
10
  export {};
@@ -6,16 +6,20 @@
6
6
  * Imported by both the plugin bundle (`index.ts`) and the CLI bundle
7
7
  * (`cli.ts`). Rollup inlines these into each output independently.
8
8
  */
9
+ /** Component name shared across service and plugin descriptors. */
10
+ export declare const COMPONENT_NAME = "watcher";
9
11
  /** Plugin identifier used in OpenClaw config and extensions directory. */
10
12
  export declare const PLUGIN_ID = "jeeves-watcher-openclaw";
13
+ /** npm package name for the service. */
14
+ export declare const SERVICE_PACKAGE = "@karmaniverous/jeeves-watcher";
15
+ /** npm package name for the plugin. */
16
+ export declare const PLUGIN_PACKAGE = "@karmaniverous/jeeves-watcher-openclaw";
17
+ /** Default watcher API port. */
18
+ export declare const DEFAULT_PORT = 1936;
11
19
  /** Default watcher API base URL. */
12
- export declare const DEFAULT_API_URL = "http://127.0.0.1:1936";
20
+ export declare const DEFAULT_API_URL: string;
13
21
  /** Default platform config root path. */
14
22
  export declare const DEFAULT_CONFIG_ROOT = "j:/config";
15
- /** Default Qdrant health check URL (used in diagnostic output). */
16
- export declare const DEFAULT_QDRANT_URL = "http://127.0.0.1:6333";
17
- /** Timeout in milliseconds for service health probes. */
18
- export declare const PROBE_TIMEOUT_MS = 1500;
19
23
  /**
20
24
  * Timeout in milliseconds for menu generation fetch calls.
21
25
  *
@@ -5,5 +5,9 @@
5
5
  * @remarks
6
6
  * We intentionally do NOT embed catalogues (rules, watched paths, ignored
7
7
  * paths). Those are available live via `watcher_config` on demand.
8
+ *
9
+ * When the watcher is unreachable, this function throws — the caller
10
+ * (`createAsyncContentCache`) retains the previous successful result.
11
+ * Core's `ComponentWriter` handles unreachable-state alerts independently.
8
12
  */
9
13
  export declare function generateWatcherMenu(apiUrl: string): Promise<string>;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @module plugin/watcherComponent
3
- * Jeeves component integration for the watcher OpenClaw plugin.
3
+ * Jeeves component descriptor for the watcher OpenClaw plugin.
4
4
  *
5
5
  * @remarks
6
6
  * Uses `createAsyncContentCache()` from core to bridge the sync/async gap:
@@ -8,7 +8,7 @@
8
8
  * async HTTP calls. The cache triggers a background refresh on each call and
9
9
  * returns the most recent successful result.
10
10
  */
11
- import { type JeevesComponent } from '@karmaniverous/jeeves';
11
+ import { type JeevesComponentDescriptor } from '@karmaniverous/jeeves';
12
12
  /** Options for creating the watcher component descriptor. */
13
13
  interface CreateWatcherComponentOptions {
14
14
  /** Base URL of the jeeves-watcher HTTP API. */
@@ -17,10 +17,17 @@ interface CreateWatcherComponentOptions {
17
17
  pluginVersion: string;
18
18
  }
19
19
  /**
20
- * Create the watcher `JeevesComponent` descriptor.
20
+ * Create the watcher component descriptor.
21
+ *
22
+ * @remarks
23
+ * Returns a `JeevesComponentDescriptor` conforming to the core Zod schema,
24
+ * ready for `createComponentWriter()`. The service descriptor
25
+ * (`packages/service/src/descriptor.ts`) is the canonical source for
26
+ * config schema and CLI commands; this plugin-side descriptor carries only
27
+ * the fields `ComponentWriter` needs (identity, content generation).
21
28
  *
22
29
  * @param options - API URL and plugin version.
23
- * @returns A fully configured component descriptor ready for `createComponentWriter()`.
30
+ * @returns A validated component descriptor.
24
31
  */
25
- export declare function createWatcherComponent(options: CreateWatcherComponentOptions): JeevesComponent;
32
+ export declare function createWatcherComponent(options: CreateWatcherComponentOptions): JeevesComponentDescriptor;
26
33
  export {};
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * @module plugin/watcherComponent.test
3
- * Unit tests for the watcher JeevesComponent implementation.
3
+ * Unit tests for the watcher JeevesComponentDescriptor.
4
4
  */
5
5
  export {};
@@ -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.12.1",
5
+ "version": "0.13.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.12.1",
3
+ "version": "0.13.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",
@@ -57,21 +57,21 @@
57
57
  "hideCredit": true
58
58
  },
59
59
  "dependencies": {
60
- "@karmaniverous/jeeves": "^0.3.0"
60
+ "@karmaniverous/jeeves": "^0.4.4"
61
61
  },
62
62
  "devDependencies": {
63
- "@dotenvx/dotenvx": "^1.55.1",
63
+ "@dotenvx/dotenvx": "^1.59.1",
64
64
  "@rollup/plugin-commonjs": "^29.0.2",
65
65
  "@rollup/plugin-json": "^6.1.0",
66
66
  "@rollup/plugin-node-resolve": "^16.0.3",
67
67
  "@rollup/plugin-typescript": "^12.3.0",
68
68
  "auto-changelog": "^2.5.0",
69
69
  "cross-env": "^10.1.0",
70
- "knip": "^5.87.0",
70
+ "knip": "^6.1.0",
71
71
  "release-it": "^19.2.4",
72
- "rollup": "^4.59.0",
72
+ "rollup": "^4.60.1",
73
73
  "tslib": "^2.8.1",
74
- "vitest": "^4.1.0"
74
+ "vitest": "^4.1.2"
75
75
  },
76
76
  "scripts": {
77
77
  "build:plugin": "rimraf dist && cross-env NO_COLOR=1 rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript",