@karmaniverous/jeeves-meta-openclaw 0.13.2 → 0.14.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.
@@ -202,8 +202,8 @@ Key settings:
202
202
  | `watcherUrl` | (required) | Watcher service URL (e.g. `http://localhost:1936`) |
203
203
  | `gatewayUrl` | `http://127.0.0.1:18789` | OpenClaw gateway URL for subprocess spawning |
204
204
  | `gatewayApiKey` | (optional) | API key for gateway authentication |
205
- | `metaProperty` | `{ _meta: "current" }` | Watcher metadata properties applied to live `.meta/meta.json` files. `Record<string, unknown>` — any shape accepted. |
206
- | `metaArchiveProperty` | `{ _meta: "archive" }` | Watcher metadata properties applied to `.meta/archive/**` snapshots. Same shape flexibility. |
205
+ | `metaProperty` | (required) | Watcher metadata properties applied to live `.meta/meta.json` files. `Record<string, unknown>` — any shape accepted. Avoid underscore-prefixed keys (e.g. `_meta`) — they may conflict with watcher reserved fields and break rendering. |
206
+ | `metaArchiveProperty` | (required) | Watcher metadata properties applied to `.meta/archive/**` snapshots. Same shape flexibility and underscore-prefix caveat as `metaProperty`. |
207
207
  | `architectEvery` | 10 | Re-run architect every N cycles even if structure unchanged |
208
208
  | `depthWeight` | 0.5 | Exponent for depth-based scheduling (0 = pure staleness) |
209
209
  | `maxArchive` | 20 | Max archived snapshots per meta |
@@ -213,7 +213,8 @@ Key settings:
213
213
  | `port` | 1938 | HTTP API listen port |
214
214
 
215
215
  | `schedule` | `*/30 * * * *` | Cron expression for automatic synthesis scheduling |
216
- | `serverBaseUrl` | (optional) | Public base URL of the service (e.g. `http://myhost:1938`). When set, progress reports include clickable entity links. |
216
+ | `serverUrl` | `http://127.0.0.1:1934` | jeeves-server base URL for progress report links |
217
+ | `templates` | (see docs) | Templates for phase start, end, and error progress reports |
217
218
  | `reportChannel` | (optional) | Gateway channel name (e.g. `slack`). Legacy: also used as target if `reportTarget` is unset. |
218
219
  | `reportTarget` | (optional) | Channel/user ID to send progress messages to |
219
220
  | `tier2ScanLimit` | 50 | Max all-fresh candidates to scan per tick in Tier 2 invalidation |
@@ -275,24 +276,13 @@ properties.
275
276
 
276
277
  ### Prompt System
277
278
 
278
- The service ships with built-in default architect and critic prompts. Most
279
- installations need no prompt configuration at all.
280
-
281
- **Overriding defaults:** Set `defaultArchitect` and/or `defaultCritic` in the
282
- config to replace the built-in prompts. Supports `@file:` references resolved
283
- relative to the config file's directory:
284
-
285
- ```json
286
- {
287
- "defaultArchitect": "@file:jeeves-meta/prompts/architect.md",
288
- "defaultCritic": "@file:jeeves-meta/prompts/critic.md"
289
- }
290
- ```
279
+ The service ships with built-in default architect and critic prompts. Prompts
280
+ ship with the package and cannot be overridden via config.
291
281
 
292
282
  **Per-meta overrides:** Set `_architect` or `_critic` directly in a `meta.json`
293
283
  to override the defaults for that specific entity.
294
284
 
295
- **Template variables:** All prompts (default, config-overridden, and per-meta)
285
+ **Template variables:** All prompts (built-in and per-meta)
296
286
  are compiled as Handlebars templates at synthesis time with access to:
297
287
 
298
288
  - `{{config.maxLines}}`, `{{config.architectEvery}}`, etc.
@@ -306,19 +296,20 @@ prompt is compiled.
306
296
 
307
297
  ### Minimal Config Example
308
298
 
309
- A minimum viable config file requires only `watcherUrl`:
299
+ A minimum viable config file requires `watcherUrl`, `metaProperty`, and `metaArchiveProperty`:
310
300
 
311
301
  ```json
312
302
  {
313
303
  "watcherUrl": "http://localhost:1936",
314
304
  "gatewayUrl": "http://127.0.0.1:18789",
315
- "gatewayApiKey": "your-api-key"
305
+ "gatewayApiKey": "your-api-key",
306
+ "metaProperty": { "_meta": "current" },
307
+ "metaArchiveProperty": { "_meta": "archive" }
316
308
  }
317
309
  ```
318
310
 
319
311
  All other fields use sensible defaults (port 1938, schedule every 30 min,
320
- depth weight 0.5, built-in prompts, etc). Add `reportChannel`, `metaProperty`,
321
- `logging`, etc. as needed.
312
+ depth weight 0.5, built-in prompts, etc). Add `reportChannel`, `logging`, etc. as needed.
322
313
 
323
314
  ### Adding New Metas
324
315
 
@@ -414,8 +405,6 @@ restart-required fields:
414
405
  - `watcherUrl` — watcher service URL
415
406
  - `gatewayUrl` — OpenClaw gateway URL
416
407
  - `gatewayApiKey` — gateway authentication key
417
- - `defaultArchitect` — architect system prompt
418
- - `defaultCritic` — critic system prompt
419
408
 
420
409
  Edit the config file and save; the service detects changes via `fs.watchFile`.
421
410
  When a restart-required field changes, the service logs a warning but the
@@ -461,14 +450,11 @@ Before the synthesis engine can operate:
461
450
  - Verify: `curl http://localhost:6333/healthz`
462
451
 
463
452
  4. **Config file** must exist at the path specified by `JEEVES_META_CONFIG`
464
- - Must contain valid `watcherUrl`
465
- - `defaultArchitect` and `defaultCritic` are optional (built-in defaults
466
- ship with the package). Set them only to override the defaults.
467
-
468
- 5. **Prompt files** must exist only if using `@file:` references in config
469
- - Not needed if using the built-in defaults (most installations)
453
+ - Must contain valid `watcherUrl`, `metaProperty`, and `metaArchiveProperty`
454
+ - Built-in architect and critic prompts ship with the package; no prompt
455
+ configuration is required
470
456
 
471
- 6. **`.meta/` directories** must exist and be within paths the watcher indexes
457
+ 5. **`.meta/` directories** must exist and be within paths the watcher indexes
472
458
  - Seed new metas: `jeeves-meta seed <path>`
473
459
 
474
460
  ### Installation
@@ -597,6 +583,8 @@ Recommended periodic checks:
597
583
  - **Phase health:** `/status` includes `phaseStateSummary` with aggregate
598
584
  counts per phase (`fresh`, `stale`, `pending`, `running`, `failed`) and
599
585
  `nextPhase` showing the next candidate.
586
+ - **Meta counts:** `/status` includes `health.metaCounts` with totals:
587
+ `total`, `enabled`, `disabled`, `neverSynthesized`, `stale`, `errors`, and `locked`.
600
588
  - **Service health:** `/status` endpoint (via `meta_list` summary or direct
601
589
  HTTP) includes dependency status for watcher and gateway
602
590
 
@@ -700,12 +688,11 @@ not yet indexed new files
700
688
  - First-run quality is lower — the feedback loop needs 2-3 cycles to calibrate.
701
689
  - Changing `metaProperty` requires both a meta service restart AND a watcher reindex.
702
690
  The service restart re-registers virtual rules; the reindex retags existing points.
703
- - `defaultArchitect`/`defaultCritic` are optional built-in defaults ship with
704
- the package. The `@file:` prefix (when used) is resolved relative to the config
705
- file's directory, not the working directory.
706
- - All prompts are compiled as Handlebars templates. Avoid using `{{` in prompt
707
- overrides unless you intend template variable resolution. Escape with `\{{`
708
- for literal double-braces.
691
+ - Built-in architect and critic prompts ship with the package and cannot be
692
+ overridden via config.
693
+ - All prompts (built-in and per-meta `_architect`/`_critic`) are compiled as
694
+ Handlebars templates. Avoid using `{{` in prompt text unless you intend
695
+ template variable resolution. Escape with `\{{` for literal double-braces.
709
696
  - The synthesis queue is single-threaded with three layers: `current` (the
710
697
  running phase), `overrides` (explicitly triggered entries, highest priority),
711
698
  and `automatic` (scheduler-computed candidates). Override entries are
@@ -7,5 +7,6 @@
7
7
  * @packageDocumentation
8
8
  */
9
9
  import { type PluginApi } from '@karmaniverous/jeeves';
10
+ export { type PluginConfig, pluginConfigSchema } from './pluginConfigSchema.js';
10
11
  /** Register all jeeves-meta tools with the OpenClaw plugin API. */
11
12
  export default function register(api: PluginApi): void;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Zod schema for the jeeves-meta OpenClaw plugin configuration.
3
+ *
4
+ * This is the source of truth for the plugin configSchema.
5
+ * The build-time script `scripts/generate-plugin-schema.mjs` derives
6
+ * the JSON Schema in `openclaw.plugin.json` from this definition.
7
+ *
8
+ * @module pluginConfigSchema
9
+ */
10
+ import { z } from 'zod';
11
+ /** Zod schema for the jeeves-meta OpenClaw plugin configuration. */
12
+ export declare const pluginConfigSchema: z.ZodObject<{
13
+ apiUrl: z.ZodDefault<z.ZodString>;
14
+ configRoot: z.ZodOptional<z.ZodString>;
15
+ }, z.core.$strip>;
16
+ /** Inferred type for the plugin configuration. */
17
+ export type PluginConfig = z.infer<typeof pluginConfigSchema>;
@@ -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.13.2",
5
+ "version": "0.14.0",
6
6
  "skills": [
7
7
  "dist/skills/jeeves-meta"
8
8
  ],
@@ -10,15 +10,16 @@
10
10
  "type": "object",
11
11
  "properties": {
12
12
  "apiUrl": {
13
- "type": "string",
13
+ "default": "http://127.0.0.1:1938",
14
14
  "description": "URL of the jeeves-meta HTTP service. Falls back to JEEVES_META_URL env var.",
15
- "default": "http://127.0.0.1:1938"
15
+ "type": "string"
16
16
  },
17
17
  "configRoot": {
18
- "type": "string",
19
- "description": "Absolute path to the platform config root (e.g. j:/config). Used by @karmaniverous/jeeves core for config directory resolution."
18
+ "description": "Absolute path to the platform config root (e.g. j:/config). Used by @karmaniverous/jeeves core for config directory resolution.",
19
+ "type": "string"
20
20
  }
21
- }
21
+ },
22
+ "additionalProperties": false
22
23
  },
23
24
  "contracts": {
24
25
  "tools": [
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "@karmaniverous/jeeves": "^0.5.12",
11
- "@karmaniverous/jeeves-meta-core": "^0.2.1"
11
+ "@karmaniverous/jeeves-meta-core": "^0.2.2"
12
12
  },
13
13
  "description": "OpenClaw plugin for jeeves-meta — synthesis tools and virtual rule registration",
14
14
  "devDependencies": {
@@ -96,10 +96,11 @@
96
96
  "url": "git+https://github.com/karmaniverous/jeeves-meta.git"
97
97
  },
98
98
  "scripts": {
99
- "build": "npm run build:plugin && npm run build:skills && npm run build:content",
99
+ "build": "npm run build:plugin && npm run generate-schema && npm run build:skills && npm run build:content",
100
100
  "build:content": "node scripts/copy-content.mjs",
101
101
  "build:plugin": "rimraf dist && cross-env NO_COLOR=1 rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript",
102
102
  "build:skills": "node scripts/build-skills.mjs",
103
+ "generate-schema": "node scripts/generate-plugin-schema.mjs",
103
104
  "changelog": "git-cliff -o CHANGELOG.md",
104
105
  "diagrams": "cd diagrams && plantuml -tpng -o ../assets -r .",
105
106
  "knip": "knip",
@@ -112,5 +113,5 @@
112
113
  },
113
114
  "type": "module",
114
115
  "types": "dist/index.d.ts",
115
- "version": "0.13.2"
116
+ "version": "0.14.0"
116
117
  }