@karmaniverous/jeeves-meta-openclaw 0.8.2 → 0.9.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.
@@ -86,6 +86,17 @@ filtering to extract specific settings. Sensitive fields (e.g.
86
86
  - `path` (optional): JSONPath expression (e.g. `$.schedule`). If omitted,
87
87
  returns the full sanitized config.
88
88
 
89
+ ### meta_queue
90
+ Queue management: list pending items, clear the queue, or abort current
91
+ synthesis. The synthesis queue is single-threaded; use this tool to inspect
92
+ what's running, clear queued work, or abort a stuck synthesis.
93
+
94
+ **Parameters:**
95
+ - `action` (required): One of `list`, `clear`, `abort`.
96
+ - `list`: Show current queue state (current synthesis, pending items).
97
+ - `clear`: Remove all pending queue items.
98
+ - `abort`: Stop the currently running synthesis and release its lock.
99
+
89
100
  ## When to Use
90
101
 
91
102
  - **Checking synthesis health:** `meta_list`
@@ -99,6 +110,9 @@ filtering to extract specific settings. Sensitive fields (e.g.
99
110
  - **Checking cross-ref health:** `meta_detail` with path — `crossRefs` array shows resolved/missing status
100
111
  - **Clearing a stuck lock:** `meta_unlock` with path
101
112
  - **Inspecting service config:** `meta_config` with optional JSONPath
113
+ - **Checking queue state:** `meta_queue` with action `list`
114
+ - **Clearing queued work:** `meta_queue` with action `clear`
115
+ - **Aborting stuck synthesis:** `meta_queue` with action `abort`
102
116
  - **Reading synthesis output:** Use `watcher_search` filtered by the properties
103
117
  configured in `metaProperty` (e.g. `{ "domains": ["meta"] }` in production).
104
118
  The default properties are `{ _meta: "current" }` for live metas and
@@ -490,9 +504,13 @@ The service exposes these endpoints (default port 1938):
490
504
  | GET | `/metas/:path` | Single meta detail with optional archive |
491
505
  | GET | `/preview` | Dry-run next synthesis candidate |
492
506
  | POST | `/synthesize` | Enqueue synthesis (stalest or specific path) |
507
+ | POST | `/synthesize/abort` | Abort the currently running synthesis |
493
508
  | POST | `/seed` | Create `.meta/` directory + meta.json |
494
509
  | POST | `/unlock` | Remove `.lock` file from a meta entity |
495
510
  | GET | `/config` | Query sanitized config with optional JSONPath (`?path=$.schedule`) |
511
+ | POST | `/config/apply` | Apply a config patch (merge or replace) |
512
+ | GET | `/queue` | Current queue state (current, pending, stats) |
513
+ | POST | `/queue/clear` | Remove all pending queue items |
496
514
 
497
515
  All endpoints return JSON. The OpenClaw plugin tools are thin wrappers
498
516
  around these endpoints.
package/dist/src/cli.d.ts CHANGED
@@ -1,18 +1,12 @@
1
1
  /**
2
2
  * CLI for installing/uninstalling the jeeves-meta OpenClaw plugin.
3
3
  *
4
+ * Uses `createPluginCli` from the core SDK for standard install/uninstall.
5
+ *
4
6
  * Usage:
5
7
  * npx \@karmaniverous/jeeves-meta-openclaw install
6
8
  * npx \@karmaniverous/jeeves-meta-openclaw uninstall
7
9
  *
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
10
  * @module cli
17
11
  */
18
12
  export {};
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Custom domain-specific tool descriptors for the meta plugin.
3
+ *
4
+ * These tools supplement the standard factory-produced tools
5
+ * (meta_status, meta_config, meta_config_apply, meta_service).
6
+ *
7
+ * @module customTools
8
+ */
9
+ import { type ToolDescriptor } from '@karmaniverous/jeeves';
10
+ import type { MetaServiceClient } from './serviceClient.js';
11
+ /** Build the array of custom domain-specific tool descriptors. */
12
+ export declare function buildCustomTools(client: MetaServiceClient, baseUrl: string): ToolDescriptor[];
@@ -87,10 +87,16 @@ export declare class MetaServiceClient {
87
87
  /** POST /synthesize — enqueue synthesis. */
88
88
  synthesize(path?: string): Promise<unknown>;
89
89
  /** POST /seed — create .meta/ for a path. */
90
- seed(path: string, crossRefs?: string[]): Promise<unknown>;
90
+ seed(path: string, crossRefs?: string[], steer?: string): Promise<unknown>;
91
91
  /** POST /unlock — remove .lock from a meta entity. */
92
92
  unlock(path: string): Promise<unknown>;
93
93
  /** GET /config — query service config with optional JSONPath. */
94
94
  config(path?: string): Promise<unknown>;
95
+ /** GET /queue — current queue state. */
96
+ queue(): Promise<unknown>;
97
+ /** POST /queue/clear — remove all pending queue items. */
98
+ clearQueue(): Promise<unknown>;
99
+ /** POST /synthesize/abort — abort current synthesis. */
100
+ abort(): Promise<unknown>;
95
101
  }
96
102
  export {};
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * Meta tool registrations for OpenClaw.
3
3
  *
4
- * All tools delegate to the jeeves-meta HTTP service.
5
- * Tool names and descriptions are sourced from {@link META_TOOLS}.
4
+ * Standard tools (status, config, config_apply, service) are produced
5
+ * by `createPluginToolset()`. Custom domain-specific tools are
6
+ * registered here alongside them.
6
7
  *
7
8
  * @module tools
8
9
  */
9
- import { type PluginApi } from '@karmaniverous/jeeves';
10
+ import { type JeevesComponentDescriptor, type PluginApi } from '@karmaniverous/jeeves';
10
11
  import type { MetaServiceClient } from './serviceClient.js';
11
- /** Register all meta_* tools. */
12
- export declare function registerMetaTools(api: PluginApi, client: MetaServiceClient): void;
12
+ /** Register all meta_* tools (standard + custom). */
13
+ export declare function registerMetaTools(api: PluginApi, client: MetaServiceClient, descriptor: JeevesComponentDescriptor): void;
@@ -2,7 +2,7 @@
2
2
  "id": "jeeves-meta-openclaw",
3
3
  "name": "Jeeves Meta",
4
4
  "description": "Knowledge synthesis tools — trigger synthesis, view status, manage entities.",
5
- "version": "0.8.2",
5
+ "version": "0.9.0",
6
6
  "skills": [
7
7
  "dist/skills/jeeves-meta"
8
8
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@karmaniverous/jeeves-meta-openclaw",
3
- "version": "0.8.2",
3
+ "version": "0.9.0",
4
4
  "author": "Jason Williscroft",
5
5
  "description": "OpenClaw plugin for jeeves-meta — synthesis tools and virtual rule registration",
6
6
  "license": "BSD-3-Clause",
@@ -57,6 +57,7 @@
57
57
  "tagPrefix": "openclaw/"
58
58
  },
59
59
  "devDependencies": {
60
+ "@commander-js/extra-typings": "^14.0.0",
60
61
  "@dotenvx/dotenvx": "^1.55.1",
61
62
  "@rollup/plugin-commonjs": "^29.0.2",
62
63
  "@rollup/plugin-node-resolve": "^16.0.3",
@@ -80,7 +81,7 @@
80
81
  "test": "vitest run",
81
82
  "typecheck": "tsc",
82
83
  "diagrams": "cd diagrams && plantuml -tpng -o ../assets -r .",
83
- "build:plugin": "rimraf dist && cross-env NO_COLOR=1 rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript",
84
+ "build:plugin": "rimraf dist && cross-env NO_COLOR=1 rollup --config rollup.config.mjs",
84
85
  "build:skills": "node scripts/build-skills.mjs",
85
86
  "build:content": "node scripts/copy-content.mjs"
86
87
  },
@@ -119,6 +120,6 @@
119
120
  }
120
121
  },
121
122
  "dependencies": {
122
- "@karmaniverous/jeeves": "^0.3.0"
123
+ "@karmaniverous/jeeves": "^0.4.4"
123
124
  }
124
125
  }
@@ -1,16 +0,0 @@
1
- /**
2
- * ServiceCommands and PluginCommands implementations for the JeevesComponent
3
- * descriptor. Separated from register() for single-responsibility.
4
- *
5
- * @module serviceCommands
6
- */
7
- import type { PluginCommands, ServiceCommands } from '@karmaniverous/jeeves';
8
- import type { MetaServiceClient } from './serviceClient.js';
9
- /**
10
- * Create ServiceCommands that proxy to the meta HTTP service.
11
- *
12
- * @param client - MetaServiceClient instance.
13
- */
14
- export declare function createServiceCommands(client: MetaServiceClient): ServiceCommands;
15
- /** Create PluginCommands (uninstall handled by CLI). */
16
- export declare function createPluginCommands(): PluginCommands;
@@ -1,6 +0,0 @@
1
- /**
2
- * Tests for ServiceCommands — status mapping and error handling.
3
- *
4
- * @module serviceCommands.test
5
- */
6
- export {};
@@ -1,16 +0,0 @@
1
- /**
2
- * Tool name/description pairs — single source of truth for tool registration
3
- * and placeholder content.
4
- *
5
- * @module toolMeta
6
- */
7
- /** Metadata for a single meta_* tool. */
8
- interface ToolMeta {
9
- /** Tool name as registered with OpenClaw. */
10
- name: string;
11
- /** Human-readable description. */
12
- description: string;
13
- }
14
- /** Ordered list of meta_* tools. */
15
- export declare const META_TOOLS: readonly ToolMeta[];
16
- export {};